【发布时间】:2014-10-18 00:05:08
【问题描述】:
希望您能帮助我了解如何找出这六个数字。尝试了几组我认为是正确的数字,但我猜我理解不正确。
首先,我正在寻找的这六个数字,是不是作为结果的数字或我输入以适合代码的数字?
我是否必须浏览所有代码,或者只有几行代码可以找出这些数字?开始认为我想多了,找到这些数字比我尝试的方法容易得多。
08048b74 <phase_2>:
8048b74: 53 push %ebx
8048b75: 83 ec 38 sub $0x38,%esp
8048b78: 8d 44 24 18 lea 0x18(%esp),%eax
8048b7c: 89 44 24 04 mov %eax,0x4(%esp)
8048b80: 8b 44 24 40 mov 0x40(%esp),%eax
8048b84: 89 04 24 mov %eax,(%esp)
8048b87: e8 28 07 00 00 call 80492b4 <read_six_numbers>
8048b8c: 83 7c 24 18 00 cmpl $0x0,0x18(%esp)
8048b91: 79 22 jns 8048bb5 <phase_2+0x41>
8048b93: e8 dd 06 00 00 call 8049275 <explode_bomb>
8048b98: eb 1b jmp 8048bb5 <phase_2+0x41>
8048b9a: 89 d8 mov %ebx,%eax
8048b9c: 03 44 9c 14 add 0x14(%esp,%ebx,4),%eax
8048ba0: 39 44 9c 18 cmp %eax,0x18(%esp,%ebx,4)
8048ba4: 74 05 je 8048bab <phase_2+0x37>
8048ba6: e8 ca 06 00 00 call 8049275 <explode_bomb>
8048bab: 83 c3 01 add $0x1,%ebx
8048bae: 83 fb 06 cmp $0x6,%ebx
8048bb1: 75 e7 jne 8048b9a <phase_2+0x26>
8048bb3: eb 07 jmp 8048bbc <phase_2+0x48>
8048bb5: bb 01 00 00 00 mov $0x1,%ebx
8048bba: eb de jmp 8048b9a <phase_2+0x26>
8048bbc: 83 c4 38 add $0x38,%esp
8048bbf: 5b pop %ebx
8048bc0: c3 ret
【问题讨论】:
-
不清楚你在问什么。
-
我在 ssh 中使用 gdb,我试图找到正确的 6 个数字,这样我的炸弹就不会爆炸,我应该从这个汇编代码中找到这 6 个数字。如果不清楚,我很抱歉,但我正在尝试自己理解它,并且已经坚持了 2 天它是如何工作的。
-
这不是很多代码。是的,您应该尝试弄清楚它在做什么。重要的部分在
8048b9a。使用反汇编旁边的伪代码或 C 代码更新您的问题。请注意,以下阶段会更难,所以请尝试学习。