phase_4的密码应该是多少呢
我已经把语句的含义基本上写在后面了。
08048cbf <func4>:
8048cbf:57 push %edi
8048cc0:56 push %esi;assuming varible--a
8048cc1:53 push %ebx;assuming varible--b
8048cc2:83 ec 10 sub $0x10,%esp
8048cc5:8b 5c 24 20 mov 0x20(%esp),%ebx
8048cc9:8b 74 24 24 mov 0x24(%esp),%esi
8048ccd:85 db test %ebx,%ebx
8048ccf:7e 2c jle 8048cfd <func4+0x3e>; fd <=跳到最后
8048cd1:89 f0 mov %esi,%eax
8048cd3:83 fb 01 cmp $0x1,%ebx
8048cd6:74 2a je 8048d02 <func4+0x43>;结束
8048cd8:89 74 24 04 mov %esi,0x4(%esp)
8048cdc:8d 43 ff lea -0x1(%ebx),%eax;b-1
8048cdf:89 04 24 mov %eax,(%esp)
8048ce2:e8 d8 ff ff ff call 8048cbf <func4>; 递归
8048ce7:8d 3c 30 lea (%eax,%esi,1),%edi; edi=eax+esi=a+a
8048cea:89 74 24 04 mov %esi,0x4(%esp)
8048cee:83 eb 02 sub $0x2,%ebx;b-2
8048cf1:89 1c 24 mov %ebx,(%esp)
8048cf4:e8 c6 ff ff ff call 8048cbf <func4>;递归
8048cf9:01 f8 add %edi,%eax
8048cfb:eb 05 jmp 8048d02 <func4+0x43>
8048cfd:b8 00 00 00 00 mov $0x0,%eax
8048d02:83 c4 10 add $0x10,%esp
8048d05:5b pop %ebx
8048d06:5e pop %esi
8048d07:5f pop %edi
8048d08:c3 ret
08048d09 <phase_4>:
8048d09:83 ec 2c sub $0x2c,%esp
8048d0c:8d 44 24 18 lea 0x18(%esp),%eax
8048d10:89 44 24 0c mov %eax,0xc(%esp)
8048d14:8d 44 24 1c lea 0x1c(%esp),%eax
8048d18:89 44 24 08 mov %eax,0x8(%esp)
8048d1c:c7 44 24 04 71 a5 04 movl $0x804a571,0x4(%esp); %d %d
8048d23:08
8048d24:8b 44 24 30 mov 0x30(%esp),%eax;2
8048d28:89 04 24 mov %eax,(%esp);2
8048d2b:e8 30 fb ff ff call 8048860 <__isoc99_sscanf@plt>
8048d30:83 f8 02 cmp $0x2,%eax; MUST argu==2
8048d33:75 0c jne 8048d41 <phase_4+0x38>;bomb
8048d35:8b 44 24 18 mov 0x18(%esp),%eax;4
8048d39:83 e8 02 sub $0x2,%eax
8048d3c:83 f8 02 cmp $0x2,%eax
8048d3f:76 05 jbe 8048d46 <phase_4+0x3d>;<=
8048d41:e8 4f 05 00 00 call 8049295 <explode_bomb>
8048d46:8b 44 24 18 mov 0x18(%esp),%eax; 2
8048d4a:89 44 24 04 mov %eax,0x4(%esp); 0x4(esp)=4
8048d4e:c7 04 24 05 00 00 00 movl $0x5,(%esp)
8048d55:e8 65 ff ff ff call 8048cbf <func4>
8048d5a:3b 44 24 1c cmp 0x1c(%esp),%eax
8048d5e:74 05 je 8048d65 <phase_4+0x5c>
8048d60:e8 30 05 00 00 call 8049295 <explode_bomb>
8048d65:83 c4 2c add $0x2c,%esp
8048d68:c3 ret
我已经把语句的含义基本上写在后面了。
08048cbf <func4>:
8048cbf:57 push %edi
8048cc0:56 push %esi;assuming varible--a
8048cc1:53 push %ebx;assuming varible--b
8048cc2:83 ec 10 sub $0x10,%esp
8048cc5:8b 5c 24 20 mov 0x20(%esp),%ebx
8048cc9:8b 74 24 24 mov 0x24(%esp),%esi
8048ccd:85 db test %ebx,%ebx
8048ccf:7e 2c jle 8048cfd <func4+0x3e>; fd <=跳到最后
8048cd1:89 f0 mov %esi,%eax
8048cd3:83 fb 01 cmp $0x1,%ebx
8048cd6:74 2a je 8048d02 <func4+0x43>;结束
8048cd8:89 74 24 04 mov %esi,0x4(%esp)
8048cdc:8d 43 ff lea -0x1(%ebx),%eax;b-1
8048cdf:89 04 24 mov %eax,(%esp)
8048ce2:e8 d8 ff ff ff call 8048cbf <func4>; 递归
8048ce7:8d 3c 30 lea (%eax,%esi,1),%edi; edi=eax+esi=a+a
8048cea:89 74 24 04 mov %esi,0x4(%esp)
8048cee:83 eb 02 sub $0x2,%ebx;b-2
8048cf1:89 1c 24 mov %ebx,(%esp)
8048cf4:e8 c6 ff ff ff call 8048cbf <func4>;递归
8048cf9:01 f8 add %edi,%eax
8048cfb:eb 05 jmp 8048d02 <func4+0x43>
8048cfd:b8 00 00 00 00 mov $0x0,%eax
8048d02:83 c4 10 add $0x10,%esp
8048d05:5b pop %ebx
8048d06:5e pop %esi
8048d07:5f pop %edi
8048d08:c3 ret
08048d09 <phase_4>:
8048d09:83 ec 2c sub $0x2c,%esp
8048d0c:8d 44 24 18 lea 0x18(%esp),%eax
8048d10:89 44 24 0c mov %eax,0xc(%esp)
8048d14:8d 44 24 1c lea 0x1c(%esp),%eax
8048d18:89 44 24 08 mov %eax,0x8(%esp)
8048d1c:c7 44 24 04 71 a5 04 movl $0x804a571,0x4(%esp); %d %d
8048d23:08
8048d24:8b 44 24 30 mov 0x30(%esp),%eax;2
8048d28:89 04 24 mov %eax,(%esp);2
8048d2b:e8 30 fb ff ff call 8048860 <__isoc99_sscanf@plt>
8048d30:83 f8 02 cmp $0x2,%eax; MUST argu==2
8048d33:75 0c jne 8048d41 <phase_4+0x38>;bomb
8048d35:8b 44 24 18 mov 0x18(%esp),%eax;4
8048d39:83 e8 02 sub $0x2,%eax
8048d3c:83 f8 02 cmp $0x2,%eax
8048d3f:76 05 jbe 8048d46 <phase_4+0x3d>;<=
8048d41:e8 4f 05 00 00 call 8049295 <explode_bomb>
8048d46:8b 44 24 18 mov 0x18(%esp),%eax; 2
8048d4a:89 44 24 04 mov %eax,0x4(%esp); 0x4(esp)=4
8048d4e:c7 04 24 05 00 00 00 movl $0x5,(%esp)
8048d55:e8 65 ff ff ff call 8048cbf <func4>
8048d5a:3b 44 24 1c cmp 0x1c(%esp),%eax
8048d5e:74 05 je 8048d65 <phase_4+0x5c>
8048d60:e8 30 05 00 00 call 8049295 <explode_bomb>
8048d65:83 c4 2c add $0x2c,%esp
8048d68:c3 ret