【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,再次运行:

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

发表了74篇文章 · 总计107.96k字
本博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 设计