好友
阅读权限40
听众
最后登录1970-1-1
|
用esp定律然后单步
003F157B >/$BD 082A3F00 mov ebp,UnPackMe.003F2A08
003F1580|.C745 00 2C013>mov dword ptr ss:[ebp],UnPackMe.00>
003F1587|.FF4D 08 dec dword ptr ss:[ebp+8]
003F158A|.C645 0C 05mov byte ptr ss:[ebp+C],5
003F158E|.8D7D 14 lea edi,dword ptr ss:[ebp+14]
003F1591|.31C0xor eax,eax
003F1593|.B4 04 mov ah,4
003F1595|.89C1mov ecx,eax
003F1597|.F3:AB rep stos dword ptr es:[edi]
003F1599|.BF E4FC3F00 mov edi,UnPackMe.003FFCE4
003F159E|.57push edi
003F159F|.BE 6C163F00 mov esi,UnPackMe.003F166C//这里用一次esp定律
003F15A4|>31C9xor ecx,ecx
003F15A6|.41inc ecx
来到这里:
003FFCE4BF 00104000 mov edi,UnPackMe.00401000//来到这里。F8单步向下。
003FFCE989FBmov ebx,edi
003FFCEB81EB 04000000 sub ebx,4
003FFCF1895D 58 mov dword ptr ss:[ebp+58],ebx
003FFCF431C0xor eax,eax
003FFCF68945 5C mov dword ptr ss:[ebp+5C],eax
003FFCF98945 64 mov dword ptr ss:[ebp+64],eax
003FFCFC40inc eax
003FFCFD8945 60 mov dword ptr ss:[ebp+60],eax
003FFD008945 68 mov dword ptr ss:[ebp+68],eax
003FFD038D5E 58 lea ebx,dword ptr ds:[esi+58]
003FFD0631C9xor ecx,ecx
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
003FFD0F41inc ecx
003FFD1080F9 16 cmp cl,16
003FFD13^ 75 F3 jnz short UnPackMe.003FFD08 //这里向回跳,在下面的代码处F4
003FFD158B75 04 mov esi,dword ptr ss:[ebp+4]//这里F4
003FFD188775 00 xchg dword ptr ss:[ebp],esi
003FFD1B57push edi
003FFD1C8DBD 68040000 lea edi,dword ptr ss:[ebp+468]
003FFD22AClods byte ptr ds:[esi]
003FFD230FB6C8movzx ecx,al
003FFD26BB 3DFF3F00 mov ebx,UnPackMe.003FFF3D
003FFD2B89F0mov eax,esi
003FFD2DABstos dword ptr es:[edi]
003FFD2E31C0xor eax,eax
003FFD30AClods byte ptr ds:[esi]
003FFD313C 66 cmp al,66
003FFD3375 01 jnz short UnPackMe.003FFD36
003FFD35AClods byte ptr ds:[esi]
003FFD363C 0F cmp al,0F
003FFD3875 03 jnz short UnPackMe.003FFD3D
003FFD3AAClods byte ptr ds:[esi]
003FFD3BB4 01 mov ah,1
003FFD3DD1E8shr eax,1
003FFD3FD7xlat byte ptr ds:[ebx+al]
003FFD4073 03 jnb short UnPackMe.003FFD45
003FFD42C0E8 04 shr al,4
003FFD45A8 02 test al,2
003FFD4774 01 je short UnPackMe.003FFD4A
003FFD4946inc esi
003FFD4A^ E2 DF loopd short UnPackMe.003FFD2B//这里向上循环,在下面的代码F4
003FFD4C5Fpop edi//F4
003FFD4D31C0xor eax,eax
003FFD4F3945 64 cmp dword ptr ss:[ebp+64],eax
003FFD5274 04 je short UnPackMe.003FFD58
003FFD548745 64 xchg dword ptr ss:[ebp+64],eax
003FFD5796xchg eax,esi
003FFD583B75 00 cmp esi,dword ptr ss:[ebp]
003FFD5B0F84 9F190000 je UnPackMe.00401700//看到这里是大的跳转,跨区段的。当跳转实现的时候,就跳向OEP了。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
跳不跳关键在于esi与dword ptr ss:[ebp] 的值是不是相等,相等的话就跳,所以我们下条件断点:shift+f4
esi==[ebp] 为条件,断下后,调单步,就到oep了。
。。。。。。。。。。。。。。。。。。。。。
0040170055push ebp ; UnPackMe.003F2A08 //这里就是OEP
004017018BECmov ebp,esp
004017036A FF push -1
0040170568 00254000 push UnPackMe.00402500
0040170A68 86184000 push UnPackMe.00401886 ; jmp to msvcrt._except_handler3
0040170F64:A1 00000000mov eax,dword ptr fs:[0]
0040171550push eax
0040171664:8925 0000000>mov dword ptr fs:[0],esp |
-
-
unp_.rar
17 KB, 下载次数: 57, 下载积分: 吾爱币 -1 CB
|