所以我正在反汇编一些代码(二进制炸弹实验室),需要一些帮助来弄清楚发生了什么。
这是 IDA 屏幕截图:
(下面有一些跳表的东西和另一个比较,但我对这些东西感觉更舒服(我想))
现在,我想我知道这个阶段发生了什么,正如我所读到的:
http://teamterradactyl.blogspot.com/2007/10/binary-bomb.html(向下滚动到第 3 阶段)
但是,我习惯了不同形式的程序集。
我不明白的最大的事情是顶部的所有这些 var_28 = dword ptr -28h 东西。
当 sscanf 被调用时,它如何知道将每个令牌放在哪里?并且只会有三个标记(这就是上面的链接所说的,虽然我看到一个 %d、%d ......所以也许两个,但我认为是三个)。基本上,谁能告诉我在调用 sscanf 后这些 var_x(和 arg_0)将指向什么?
它们只是对堆栈指针的相对寻址,对吧......?但是这些地址是如何被来自 sscanf 的令牌填充的呢?
注意:这是作业,但它说不要添加作业标签,因为它已经过时了。作业是找出通过命令行输入的密码短语以通过每个阶段。
NOTE2:我真的不知道怎么用IDA,我朋友只是告诉我在IDA中打开炸弹文件。也许有一种简单的方法可以让我在 IDA 中进行实验并找出答案,但我不知道如何。