逆向攻防世界CTF系列43-gametime

做了好久,收获很多,参考了很多题解,这是比较适合初学者的攻防世界 gametime 使用IDA pro+OD动调 - C4emc1oudy - 博客园

首先,32位无壳,载入IDA

首先发现代码很长,运行了一下是个游戏类的题

image-20241202115021851

出现s的时候按空格,m按m,x按x,但是后面会很快,而且会出现莫名其妙直接退出的情况,反应不过来

IDA动调

image-20241202115128664

每次运行到都不输出401A73处的东西,我一直怀疑是不是反调试或者混淆还是啥,而且会出现退出的情况,总之,这部分类似是让你了解游戏规则的训练,到下面这块是实战,根本反应不过来

image-20241202115304833

这个题目就是个生成flag的题目,我们可以动调去解决它

image-20241202115400132

这一块是关键:

image-20241202115422470

我们必须满足才能进到下一步,因此我们可以把jnz改成je或jz

keypatch改完之后IDA动调,一直没反应,还是会退出,我不太明白???

我以为没生效的原因,给它apply了也一样,我开始换一种方法

直接修改al为1,在实际动调的时候发现太麻烦,要一个个改很多次,放弃了

后来使用了OD,这次真真正正体会到了为什么动调要用专业的OD,IDA不太行,而且有BUG

载入后,F9

image-20241202115907867

这里输出了IDA刚才没输出的那部分,而且程序停了,没有直接退出

好,刚才已经理清楚逻辑,我们开始改,这时又有个问题,IDA的地址和OD不一样

OD中ALT+E找到基地址

image-20241202120044514

复制下来到IDA,Edit–>Segments–>Rebase program–>Value修改为0x00B60000

这样就对了

image-20241202120229561

然后把两处判断地址在od中ctrl+g搜索定位

双击修改

然后F9运行得flag

image-20241202114714176