我正在制作一个二元炸弹,这个炸弹需要三个以上的论据,这里是我不理解的炸弹的一部分:
0x08048db2 <+0>: sub $0x3c,%esp
0x08048db5 <+3>: lea 0x2c(%esp),%eax
0x08048db9 <+7>: mov %eax,0x10(%esp)
0x08048dbd <+11>: lea 0x27(%esp),%eax
0x08048dc1 <+15>: mov %eax,0xc(%esp)
0x08048dc5 <+19>: lea 0x28(%esp),%eax
0x08048dc9 <+23>: mov %eax,0x8(%esp)
0x08048dcd <+27>: movl $0x804a56d,0x4(%esp)
0x08048dd5 <+35>: mov 0x40(%esp),%eax
0x08048dd9 <+39>: mov %eax,(%esp)
0x08048ddc <+42>: call 0x8048900 <__isoc99_sscanf@plt>
0x08048de1 <+47>: cmp $0x2,%eax
0x08048de4 <+50>: jg 0x8048deb <phase_5+57>
0x08048de6 <+52>: call 0x8049535 <explode_bomb>
后来炸弹将0x27(%esp)的内容与数字进行比较。但是在0x08048ddc&lt; + 42&gt;,0x27(%esp)的内容被更新,即使我查看该函数,我也无法弄清楚它是如何做到的。
如果我的输入为&#34; 1 -997 1 2 301&#34;,则0x27(%esp)的内容为301
如果我的输入为&#34; 0 7 817 8 9&#34;,则0x27(%esp)的内容为55
炸弹还用&lt; __ isoc99_sscanf @ plt&gt;更新了0x2c(%esp)的内容。功能。我无法弄清楚0x2c(%esp)的内容是什么。 谢谢!