2020/5/30 [FlareOn6]Overlong

Flare-on第六届挑战赛的题,

挺迷的,这个挑战赛的题都挺有水平。

IDA打开就仨函数:

Main函数也挺简单:

对v4处理,存到text,输出,没了。

然而疑惑的地方是,v4有这么长:

(比这个还长)

但是这里指处理了28,即0x1C的长度。

结合他运行时跑出的数据:

数了数算上空格正好是这么长,我有理由怀疑他没有处理后面的字符。

所以我们要做的就是把处理长度从0x1C延长到整个长度,数了数是0xAF个字符。

从:

B6 – 08 + 1= B8 – 08 - 1 = B0 – 1 = AF

所以我下意识打开OD去改数据。

为什么不用IDA改?因为我改了之后不会保存成二进制文件。

然鹅打开OD之后我发现,根本找不到这段数据,好像直接进入dll了:

然后我想了想,怎么修改呢?

文件的本质就是二进制啊!那我直接找个十六进制修改器,找到对应的机器码不就行了:

这里本来是6A 1C 68 ,改成了6A AF 68,再次运行:

(其实也可以按照程序逻辑写一遍代码,但是我觉得太麻烦了)

 

 

posted @ 2020-05-30 18:33  DorinXL  阅读(466)  评论(0编辑  收藏  举报
👨‍💼