小编scy*_*cy8的帖子

拆解二元炸弹第三阶段逻辑难理解

我有来自二进制炸弹实验室的以下汇编程序。目标是确定在不触发explode_bomb函数的情况下运行二进制文件所需的关键字。我评论了我对这个程序的程序集的分析,但我无法将所有内容拼凑在一起。

我相信我有我需要的所有信息,但我仍然无法看到实际的底层逻辑,因此我被卡住了。我将不胜感激任何帮助!

以下是反汇编的程序本身:

0x08048c3c <+0>:     push   %edi
   0x08048c3d <+1>:     push   %esi
   0x08048c3e <+2>:     sub    $0x14,%esp
   0x08048c41 <+5>:     movl   $0x804a388,(%esp)
   0x08048c48 <+12>:    call   0x80490ab <string_length>
   0x08048c4d <+17>:    add    $0x1,%eax
   0x08048c50 <+20>:    mov    %eax,(%esp)
   0x08048c53 <+23>:    call   0x8048800 <malloc@plt>
   0x08048c58 <+28>:    mov    $0x804a388,%esi
   0x08048c5d <+33>:    mov    $0x13,%ecx
   0x08048c62 <+38>:    mov    %eax,%edi
   0x08048c64 <+40>:    rep movsl %ds:(%esi),%es:(%edi)
   0x08048c66 <+42>:    movzwl (%esi),%edx
   0x08048c69 <+45>:    mov    %dx,(%edi)
   0x08048c6c <+48>:    movzbl 0x11(%eax),%edx
   0x08048c70 <+52>:    mov    %dl,0x10(%eax)
   0x08048c73 <+55>:    mov    %eax,0x4(%esp)
   0x08048c77 <+59>:    mov    0x20(%esp),%eax …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly reverse-engineering att

8
推荐指数
1
解决办法
578
查看次数

标签 统计

assembly ×1

att ×1

c ×1

reverse-engineering ×1

x86 ×1