0%

buuctf_overlong

overlong

用PEid显示有壳,但是ExInfo不是,直接拖到IDA看看

image-20211025101621373

我们转到sub_401160函数看一下,图中的\x1c是十进制的28

image-20211025104708760

image-20211025104824155

unk_402008指针指向的内容与TEXT(a1)一共进行了28次的一些字符操作。但是该指针指向的内容不止28个字符,点击进去查看有175个

exe一开始运行是这样的,说从未破坏编码,那就直接将其改为读取175个

image-20211025105732834

image-20211025110224330

这样直接修改会有错误,提示Invalid operand,可能是吧修改的数据会覆盖掉后面的一些数据,我们拖进OD试试,发现改了以后后面的代码也变了

image-20211025111317713

image-20211025111342988

直接修改二进制码

image-20211025113152358

运行后如图,得到flag

image-20211025113214588

总结

​ 这道题目的收获主要是关于修改代码,一般都是直接修改,还没有考虑过会改变后面的数据。以后修改代码最好用OD,可以看到后面代码是否被修改