映射人物炸弹阶段_5

时间:2017-05-18 02:10:21

标签: debugging assembly x86 gdb reverse-engineering

好的家伙我知道Stack上已经存在类似的问题,但我仍然不明白如何将字符映射到数组表。

此炸弹阶段采用长度为6的字符串。我知道程序使用的6个字符需要添加到0x24行< + 53&gt ;.

因此,如果我输入类似tttttt的东西,ascii值为116或01110100,如果你得到二进制的最后4个,它将等于4.所以4 * 6个字符= 0x24或36个十进制。

我仍然对如何映射它感到困惑。有人可以帮助我解决它。或者告诉我如何映射它。

由于

Dump of assembler code for function phase_5:
   0x0000000000401123 <+0>:     push   %rbx
   0x0000000000401124 <+1>:     mov    %rdi,%rbx
   0x0000000000401127 <+4>:     callq  0x401361 <string_length>
   0x000000000040112c <+9>:     cmp    $0x6,%eax
   0x000000000040112f <+12>:    je     0x401136 <phase_5+19>
   0x0000000000401131 <+14>:    callq  0x4015e4 <explode_bomb>
   0x0000000000401136 <+19>:    mov    $0x0,%eax
   0x000000000040113b <+24>:    mov    $0x0,%edx
   0x0000000000401140 <+29>:    movzbl (%rbx,%rax,1),%ecx
   0x0000000000401144 <+33>:    and    $0xf,%ecx
=> 0x0000000000401147 <+36>:    add    0x4025e0(,%rcx,4),%edx
   0x000000000040114e <+43>:    add    $0x1,%rax
   0x0000000000401152 <+47>:    cmp    $0x6,%rax
   0x0000000000401156 <+51>:    jne    0x401140 <phase_5+29>
   0x0000000000401158 <+53>:    cmp    $0x24,%edx
   0x000000000040115b <+56>:    je     0x401162 <phase_5+63>
   0x000000000040115d <+58>:    callq  0x4015e4 <explode_bomb>
   0x0000000000401162 <+63>:    pop    %rbx
   0x0000000000401163 <+64>:    retq

   End of assembler dump.
   (gdb) x/16 0x4025e0
   0x4025e0 <array.3161>:          2       10      6       1
   0x4025f0 <array.3161+16>:       12      16      9       3
   0x402600 <array.3161+32>:       4       7       14      5
   0x402610 <array.3161+48>:       11      8       15      13

1 个答案:

答案 0 :(得分:0)

我还想知道如何找到实际的字符