本文接 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_5)写。关注bomb程序炸弹实验的最后一个关卡phase_6。
找到phase_6的代码,比前面几关都要长很多:
08048c89 <phase_6>:
8048c89: 55 push %ebp
8048c8a: 89 e5 mov %esp,%ebp
8048c8c: 57 push %edi
8048c8d: 56 push %esi
8048c8e: 53 push %ebx
8048c8f: 83 ec 5c sub $0x5c,%esp
8048c92: 8d 45 d0 lea -0x30(%ebp),%eax
8048c95: 89 44 24 04 mov %eax,0x4(%esp)
8048c99: 8b 45 08 mov 0x8(%ebp),%eax
8048c9c: 89 04 24 mov %eax,(%esp)
8048c9f: e8 67 04 00 00 call 804910b <read_six_numbers>
8048ca4: be 00 00 00 00 mov $0x0,%esi
8048ca9: 8d 7d d0 lea -0x30(%ebp),%edi
8048cac: 8b 04 b7 mov (%edi,%esi,4),%eax
8048caf: 83 e8 01 sub $0x1,%eax
8048cb2: 83 f8 05 cmp $0x5,%eax
8048cb5: 76 05 jbe 8048cbc <phase_6+0x33>
8048cb7: e8 15 04 00 00 call 80490d1 <explode_bomb>
8048cbc: 83 c6 01 add $0x1,%esi
8048cbf: 83 fe 06 cmp $0x6,%esi
8048cc2: 74 22 je 8048ce6 <phase_6+0x5d>
8048cc4: 8d 1c b7 lea (%edi,%esi,4),%ebx
8048cc7: 89 75 b4 mov %esi,-0x4c(%ebp)
8048cca: 8b 44 b7 fc mov -0x4(%edi,%esi,4),%eax
8048cce: 3b 03 cmp (%ebx),%eax
8048cd0: 75 05 jne 8048cd7 <phase_6+0x4e>
8048cd2: e8 fa 03 00 00 call 80490d1 <explode_bomb>
8048cd7: 83 45