0086A0B6 60 pushad
0086A0B7 0F8A 00000000 jpe Lin_test.0086A0BD
0086A0BD 0F89 00000000 jns Lin_test.0086A0C3
0086A0C3 50 push eax
0086A0C4 50 push eax
0086A0C5 0F014C24 FE sidt fword ptr ss:[esp-2]
0086A0CA 58 pop eax
0086A0CB 58 pop eax
0086A0CC 0F81 00000000 jno Lin_test.0086A0D2
0086A0D2 61 popad
0086A0D3 66:BE 9485 mov si,8594
0086A0D7 5A pop edx
0086A0D8 81C7 503A0512 add edi,12053A50
0086A0DE 66:BE DDF0 mov si,0F0DD
0086A0E2 /E9 06000000 jmp Lin_test.0086A0ED
.....
.....
跳到这里
0086A0ED 81EB 01000000 sub ebx,1
0086A0F3 ^\0F85 30FFFFFF jnz Lin_test.0086A029
跳上去了
0086A029 FF37 push dword ptr ds:[edi]
0086A02B 66:81F6 451B xor si,1B45
0086A030 59 pop ecx
0086A031 51 push ecx
0086A032 51 push ecx
0086A033 51 push ecx
0086A034 8AC1 mov al,cl
0086A036 0F81 00000000 jno Lin_test.0086A03C
0086A03C 5A pop edx
0086A03D 66:81D2 955D adc dx,5D95
0086A042 0F014C24 FE sidt fword ptr ss:[esp-2]
0086A047 59 pop ecx
0086A048 66:BA 3AD2 mov dx,0D23A
0086A04C 52 push edx
0086A04D 52 push edx
0086A04E 0F82 00000000 jb Lin_test.0086A054
0086A054 0F014C24 FE sidt fword ptr ss:[esp-2]
0086A059 5A pop edx
0086A05A B2 16 mov dl,16
0086A05C 5A pop edx
0086A05D 59 pop ecx
0086A05E 81C1 B6340063 add ecx,630034B6
0086A064 81C1 9D06E853 add ecx,53E8069D
0086A06A E9 10000000 jmp Lin_test.0086A07F
转下来
0086A07F 0F88 11000000 js Lin_test.0086A096
0086A085 FC cld
0086A086 E9 0B000000 jmp Lin_test.0086A096
一个小跳
0086A096 81C1 64942C1F add ecx,1F2C9464
0086A09C 66:8BF1 mov si,cx
0086A09F 890F mov dword ptr ds:[edi],ecx
0086A0A1 0FB7F0 movzx esi,ax
0086A0A4 81EF 543A0512 sub edi,12053A54
0086A0AA E8 07000000 call Lin_test.0086A0B6 ;--这里有跳回开头进行循环
数值也随之进行循环,郁闷,本以为会走出循环f4产生循环,f8会陷入一个异常处理的dll循环中,f9甚至
回报错“不知如何在地址0088530d处绕过命令,请尝试更改eip或是跳过异常执行程序”
00885308 33DB xor ebx,ebx
0088530A 33C0 xor eax,eax
0088530C 40 inc eax
0088530D 0F3F ??? ; 这就是od如何绕过的地址
0088530F 07 pop es
00885310 0B648F 05 or esp,dword ptr ds:[edi+ecx*4+5]
00885314 0000 add byte ptr ds:[eax],al
请高手指点如何调试下去,感谢了!!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)