1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| Dump of assembler code for function phase_6: 0x080499bf <+0>: endbr32 0x080499c3 <+4>: push ebp 0x080499c4 <+5>: mov ebp,esp 0x080499c6 <+7>: sub esp,0x68 0x080499c9 <+10>: mov eax,DWORD PTR [ebp+0x8] 0x080499cc <+13>: mov DWORD PTR [ebp-0x5c],eax 0x080499cf <+16>: mov eax,gs:0x14 0x080499d5 <+22>: mov DWORD PTR [ebp-0xc],eax 0x080499d8 <+25>: xor eax,eax 0x080499da <+27>: mov DWORD PTR [ebp-0x48],0x804d19c 0x080499e1 <+34>: sub esp,0x4 0x080499e4 <+37>: push 0x7 # 读取7个输入的数 0x080499e6 <+39>: lea eax,[ebp-0x44] 0x080499e9 <+42>: push eax 0x080499ea <+43>: push DWORD PTR [ebp-0x5c] 0x080499ed <+46>: call 0x8049d2f <read_n_numbers> 0x080499f2 <+51>: add esp,0x10
0x080499f5 <+54>: test eax,eax # 判断输入的数是否为0,如果是则爆炸 0x080499f7 <+56>: jne 0x8049a03 <phase_6+68> 0x080499f9 <+58>: mov eax,0x0 0x080499fe <+63>: jmp 0x8049b3a <phase_6+379>
0x08049a03 <+68>: mov DWORD PTR [ebp-0x50],0x0 0x08049a0a <+75>: jmp 0x8049a6c <phase_6+173> # 如果不是0则跳转,继续执行程序
0x08049a0c <+77>: mov eax,DWORD PTR [ebp-0x50] 0x08049a0f <+80>: mov eax,DWORD PTR [ebp+eax*4-0x44] 0x08049a13 <+84>: test eax,eax 0x08049a15 <+86>: jle 0x8049a23 <phase_6+100> # 输入的数是否小于等于0,如果是则跳转爆炸,不是则继续运行
0x08049a17 <+88>: mov eax,DWORD PTR [ebp-0x50] 0x08049a1a <+91>: mov eax,DWORD PTR [ebp+eax*4-0x44] # 循环遍历输入的数,如果小于等于7则继续,如果大于7则跳转爆炸 0x08049a1e <+95>: cmp eax,0x7 0x08049a21 <+98>: jle 0x8049a32 <phase_6+115> 0x08049a23 <+100>: call 0x804a071 <explode_bomb> 0x08049a28 <+105>: mov eax,0x0 0x08049a2d <+110>: jmp 0x8049b3a <phase_6+379>
0x08049a32 <+115>: mov eax,DWORD PTR [ebp-0x50] 0x08049a35 <+118>: add eax,0x1 0x08049a38 <+121>: mov DWORD PTR [ebp-0x4c],eax 0x08049a3b <+124>: jmp 0x8049a62 <phase_6+163>
0x08049a3d <+126>: mov eax,DWORD PTR [ebp-0x50] 0x08049a40 <+129>: mov edx,DWORD PTR [ebp+eax*4-0x44] 0x08049a44 <+133>: mov eax,DWORD PTR [ebp-0x4c] 0x08049a47 <+136>: mov eax,DWORD PTR [ebp+eax*4-0x44] 0x08049a4b <+140>: cmp edx,eax # 判断当前输入的数是否和已经输入的数重复,如果是则爆炸,如果不是则继续运行 0x08049a4d <+142>: jne 0x8049a5e <phase_6+159> 0x08049a4f <+144>: call 0x804a071 <explode_bomb> 0x08049a54 <+149>: mov eax,0x0 0x08049a59 <+154>: jmp 0x8049b3a <phase_6+379> 0x08049a5e <+159>: add DWORD PTR [ebp-0x4c],0x1
0x08049a62 <+163>: cmp DWORD PTR [ebp-0x4c],0x6 # 判断当前遍历下标是否小于等于6,如果是则继续遍历,如果不是则循环结束 0x08049a66 <+167>: jle 0x8049a3d <phase_6+126> 0x08049a68 <+169>: add DWORD PTR [ebp-0x50],0x1 0x08049a6c <+173>: cmp DWORD PTR [ebp-0x50],0x6 0x08049a70 <+177>: jle 0x8049a0c <phase_6+77> 0x08049a72 <+179>: mov DWORD PTR [ebp-0x50],0x0 0x08049a79 <+186>: jmp 0x8049ab1 <phase_6+242> 0x08049a7b <+188>: mov eax,DWORD PTR [ebp-0x48] 0x08049a7e <+191>: mov DWORD PTR [ebp-0x54],eax 0x08049a81 <+194>: mov DWORD PTR [ebp-0x4c],0x1 0x08049a88 <+201>: jmp 0x8049a97 <phase_6+216> 0x08049a8a <+203>: mov eax,DWORD PTR [ebp-0x54] 0x08049a8d <+206>: mov eax,DWORD PTR [eax+0x8] 0x08049a90 <+209>: mov DWORD PTR [ebp-0x54],eax 0x08049a93 <+212>: add DWORD PTR [ebp-0x4c],0x1 0x08049a97 <+216>: mov eax,DWORD PTR [ebp-0x50] 0x08049a9a <+219>: mov eax,DWORD PTR [ebp+eax*4-0x44] 0x08049a9e <+223>: cmp DWORD PTR [ebp-0x4c],eax 0x08049aa1 <+226>: jl 0x8049a8a <phase_6+203> 0x08049aa3 <+228>: mov eax,DWORD PTR [ebp-0x50] 0x08049aa6 <+231>: mov edx,DWORD PTR [ebp-0x54] 0x08049aa9 <+234>: mov DWORD PTR [ebp+eax*4-0x28],edx 0x08049aad <+238>: add DWORD PTR [ebp-0x50],0x1 0x08049ab1 <+242>: cmp DWORD PTR [ebp-0x50],0x6 0x08049ab5 <+246>: jle 0x8049a7b <phase_6+188> 0x08049ab7 <+248>: mov eax,DWORD PTR [ebp-0x28] 0x08049aba <+251>: mov DWORD PTR [ebp-0x48],eax 0x08049abd <+254>: mov eax,DWORD PTR [ebp-0x48] 0x08049ac0 <+257>: mov DWORD PTR [ebp-0x54],eax 0x08049ac3 <+260>: mov DWORD PTR [ebp-0x50],0x1 0x08049aca <+267>: jmp 0x8049ae6 <phase_6+295> 0x08049acc <+269>: mov eax,DWORD PTR [ebp-0x50] 0x08049acf <+272>: mov edx,DWORD PTR [ebp+eax*4-0x28] 0x08049ad3 <+276>: mov eax,DWORD PTR [ebp-0x54] 0x08049ad6 <+279>: mov DWORD PTR [eax+0x8],edx 0x08049ad9 <+282>: mov eax,DWORD PTR [ebp-0x54] 0x08049adc <+285>: mov eax,DWORD PTR [eax+0x8] 0x08049adf <+288>: mov DWORD PTR [ebp-0x54],eax 0x08049ae2 <+291>: add DWORD PTR [ebp-0x50],0x1 0x08049ae6 <+295>: cmp DWORD PTR [ebp-0x50],0x6 0x08049aea <+299>: jle 0x8049acc <phase_6+269> 0x08049aec <+301>: mov eax,DWORD PTR [ebp-0x54] 0x08049aef <+304>: mov DWORD PTR [eax+0x8],0x0 0x08049af6 <+311>: mov eax,DWORD PTR [ebp-0x48] 0x08049af9 <+314>: mov DWORD PTR [ebp-0x54],eax 0x08049afc <+317>: mov DWORD PTR [ebp-0x50],0x0 0x08049b03 <+324>: jmp 0x8049b2f <phase_6+368> 0x08049b05 <+326>: mov eax,DWORD PTR [ebp-0x54] 0x08049b08 <+329>: mov edx,DWORD PTR [eax] 0x08049b0a <+331>: mov eax,DWORD PTR [ebp-0x54] 0x08049b0d <+334>: mov eax,DWORD PTR [eax+0x8] 0x08049b10 <+337>: mov eax,DWORD PTR [eax] 0x08049b12 <+339>: cmp edx,eax 0x08049b14 <+341>: jle 0x8049b22 <phase_6+355> 0x08049b16 <+343>: call 0x804a071 <explode_bomb> 0x08049b1b <+348>: mov eax,0x0 0x08049b20 <+353>: jmp 0x8049b3a <phase_6+379> 0x08049b22 <+355>: mov eax,DWORD PTR [ebp-0x54] 0x08049b25 <+358>: mov eax,DWORD PTR [eax+0x8] 0x08049b28 <+361>: mov DWORD PTR [ebp-0x54],eax 0x08049b2b <+364>: add DWORD PTR [ebp-0x50],0x1 0x08049b2f <+368>: cmp DWORD PTR [ebp-0x50],0x5 0x08049b33 <+372>: jle 0x8049b05 <phase_6+326> 0x08049b35 <+374>: mov eax,0x1 0x08049b3a <+379>: mov ecx,DWORD PTR [ebp-0xc] 0x08049b3d <+382>: xor ecx,DWORD PTR gs:0x14 0x08049b44 <+389>: je 0x8049b4b <phase_6+396> 0x08049b46 <+391>: call 0x8049190 <__stack_chk_fail@plt> 0x08049b4b <+396>: leave 0x08049b4c <+397>: ret End of assembler dump.
|