buuctf刷题记录15 [FlareOn6]Overlong

这道题挺迷的,看了别人的wp才知道有这种出题方式

没有加壳,ida打开只有三个函数

buuctf刷题记录15 [FlareOn6]Overlong_第1张图片

main函数也特别简单,就是v4先读取unk_402008这个地址的数据,读28位,经过sub_401160函数的运算

然后给了text,最后输出text

然而问题点就是unk_402008不止28个buuctf刷题记录15 [FlareOn6]Overlong_第2张图片

一共有175个数据(b7-08)

再结合

buuctf刷题记录15 [FlareOn6]Overlong_第3张图片

怀疑他没有处理后面的数据,于是想到去修改这个程序,让他读175位

这里没有用ida,因为改完以后我不会保存

用od去改,相对应的机械码,直接修改二进制码

buuctf刷题记录15 [FlareOn6]Overlong_第4张图片

机械码为 6A 1C

buuctf刷题记录15 [FlareOn6]Overlong_第5张图片

运行得到

buuctf刷题记录15 [FlareOn6]Overlong_第6张图片

flag为:flag{[email protected]}

你可能感兴趣的:(ctf,逆向)