第4阶段二进制炸弹

时间:2015-05-01 15:57:05

标签: assembly

我和我的伙伴一直致力于二元炸弹实验室的第四阶段并且已经陷入困境。我们已经提到过先前的帖子,但是他们都没有澄清我们的问题,这是关于第81行的。我们已经发现这个阶段需要两个双输入,并且函数4返回位置(数字,可能是第二个输入) ?)在Fibonnaci序列中。我们可以使用输入(2,4)到达第84行,但自然它会被引导到explode_bomb。我们很感激任何帮助/指导,因为我们超级卡住!谢谢!

Dump of assembler code for function phase_4:
   0x08048dad <+0>: push   %ebp
   0x08048dae <+1>: mov    %esp,%ebp
   0x08048db0 <+3>: sub    $0x28,%esp
=> 0x08048db3 <+6>: lea    -0xc(%ebp),%eax
   0x08048db6 <+9>: mov    %eax,0xc(%esp)
   0x08048dba <+13>:    lea    -0x10(%ebp),%eax
   0x08048dbd <+16>:    mov    %eax,0x8(%esp)
   0x08048dc1 <+20>:    movl   $0x804a1ca,0x4(%esp)
   0x08048dc9 <+28>:    mov    0x8(%ebp),%eax
   0x08048dcc <+31>:    mov    %eax,(%esp)
   0x08048dcf <+34>:    call   0x8048758 <__isoc99_sscanf@plt>
   0x08048dd4 <+39>:    cmp    $0x2,%eax
   0x08048dd7 <+42>:    jne    0x8048de6 <phase_4+57>
   0x08048dd9 <+44>:    mov    -0xc(%ebp),%eax
   0x08048ddc <+47>:    cmp    $0x1,%eax
   0x08048ddf <+50>:    jle    0x8048de6 <phase_4+57>
   0x08048de1 <+52>:    cmp    $0x4,%eax
   0x08048de4 <+55>:    jle    0x8048deb <phase_4+62>
   0x08048de6 <+57>:    call   0x8049108 <explode_bomb>
   0x08048deb <+62>:    mov    -0xc(%ebp),%eax
   0x08048dee <+65>:    mov    %eax,0x4(%esp)
   0x08048df2 <+69>:    movl   $0x8,(%esp)
   0x08048df9 <+76>:    call   0x8048af0 <func4>
   0x08048dfe <+81>:    cmp    -0x10(%ebp),%eax
   0x08048e01 <+84>:    je     0x8048e08 <phase_4+91>
   0x08048e03 <+86>:    call   0x8049108 <explode_bomb>
   0x08048e08 <+91>:    leave  
   0x08048e09 <+92>:    ret    
End of assembler dump.



Dump of assembler code for function func4:
=> 0x08048af0 <+0>: push   %ebp
   0x08048af1 <+1>: mov    %esp,%ebp
   0x08048af3 <+3>: sub    $0x28,%esp
   0x08048af6 <+6>: mov    %ebx,-0xc(%ebp)
   0x08048af9 <+9>: mov    %esi,-0x8(%ebp)
   0x08048afc <+12>:    mov    %edi,-0x4(%ebp)
   0x08048aff <+15>:    mov    0x8(%ebp),%esi
   0x08048b02 <+18>:    mov    0xc(%ebp),%ebx
   0x08048b05 <+21>:    test   %esi,%esi
   0x08048b07 <+23>:    jg     0x8048b10 <func4+32>
   0x08048b09 <+25>:    mov    $0x0,%ebx
   0x08048b0e <+30>:    jmp    0x8048b39 <func4+73>
   0x08048b10 <+32>:    cmp    $0x1,%esi
   0x08048b13 <+35>:    je     0x8048b39 <func4+73>
   0x08048b15 <+37>:    mov    %ebx,0x4(%esp)
   0x08048b19 <+41>:    lea    -0x1(%esi),%eax
   0x08048b1c <+44>:    mov    %eax,(%esp)
   0x08048b1f <+47>:    call   0x8048af0 <func4>
   0x08048b24 <+52>:    mov    %eax,%edi
   0x08048b26 <+54>:    mov    %ebx,0x4(%esp)
   0x08048b2a <+58>:    sub    $0x2,%esi
   0x08048b2d <+61>:    mov    %esi,(%esp)
   0x08048b30 <+64>:    call   0x8048af0 <func4>
   0x08048b35 <+69>:    add    %eax,%edi
   0x08048b37 <+71>:    add    %edi,%ebx
   0x08048b39 <+73>:    mov    %ebx,%eax
   0x08048b3b <+75>:    mov    -0xc(%ebp),%ebx
   0x08048b3e <+78>:    mov    -0x8(%ebp),%esi
   0x08048b41 <+81>:    mov    -0x4(%ebp),%edi
   0x08048b44 <+84>:    mov    %ebp,%esp
   0x08048b46 <+86>:    pop    %ebp
   0x08048b47 <+87>:    ret

0 个答案:

没有答案