最初由 kcarhc 发布
看了一些脱壳教程
可能是本人愚钝
我还是搞不定
我在41637A处DUMP
分别用OLLYDBG和LOADPE
........
451000 PUSHAD
451001 CALL FreeTige.00451006
451006 POP EBP
451007 SUB EBP,6
45100A CMP BYTE PTR SS:[EBP+53E],1
451011 JE FreeTige.0045125F
451017 MOV BYTE PTR SS:[EBP+53E],1
45101E MOV EAX,EBP
451020 SUB EAX,DWORD PTR SS:[EBP+54B]
451026 MOV DWORD PTR SS:[EBP+514],EBP
45102C MOV DWORD PTR SS:[EBP+58B],EAX
451032 MOV EAX,DWORD PTR SS:[EBP+58B]
451038 ADD EAX,DWORD PTR SS:[EBP+56F]
45103E MOV DWORD PTR SS:[EBP+543],EAX // EAX 寄存器存放 IAT 函数表 VA .
451044 CMP BYTE PTR SS:[EBP+53C],1
45104B JNZ SHORT FreeTige.00451069
45104D MOV EBX,DWORD PTR SS:[EBP+567]
451053 ADD EBX,DWORD PTR SS:[EBP+58B]
451059 MOV DWORD PTR SS:[EBP+567],EBX
45105F MOV EAX,DWORD PTR DS:[EBX]
451061 XCHG DWORD PTR SS:[EBP+573],EAX
451067 MOV DWORD PTR DS:[EBX],EAX
451069 PUSH 4
45106B PUSH 1000
451070 PUSH DWORD PTR SS:[EBP+55F]
451076 PUSH 0
451078 CALL FreeTige.0045151C
45107D OR EAX,EAX
45107F JE FreeTige.004512CA
451085 MOV DWORD PTR SS:[EBP+563],EAX
45108B MOV ESI,DWORD PTR SS:[EBP+55B]
451091 ADD ESI,EBP
451093 LODS DWORD PTR DS:[ESI]
451094 OR EAX,EAX
451096 JE FreeTige.0045111D
45109C MOV EDI,EAX
45109E ADD EDI,DWORD PTR SS:[EBP+58B]
4510A4 LODS DWORD PTR DS:[ESI]
4510A5 MOV ECX,EAX
4510A7 LODS DWORD PTR DS:[ESI]
4510A8 OR EAX,EAX
4510AA JE SHORT FreeTige.00451093
4510AC PUSH ESI
4510AD PUSH EDI
4510AE MOV ESI,EDI
4510B0 MOV EDI,DWORD PTR SS:[EBP+563]
4510B6 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
4510B8 POP EDI
4510B9 PUSH EDI
4510BA PUSH EDI
4510BB PUSH DWORD PTR SS:[EBP+563]
4510C1 CALL FreeTige.0045134F //第二次过此 CALL 时回复原 IAT 函数表.
4510C6 ADD ESP,8
4510C9 POP EDI
4510CA SUB EAX,5
4510CD XOR ECX,ECX
4510CF PUSH EDX
4510D0 PUSH EBX
4510D1 XOR EDX,EDX
4510D3 CLC
4510D4 JNB SHORT FreeTige.0045110E
4510D6 DEC EAX
4510D7 JE SHORT FreeTige.0045110E
4510D9 JS SHORT FreeTige.0045110E
4510DB MOV BX,WORD PTR DS:[ECX+EDI]
4510DF CMP BL,0E8
4510E2 JE SHORT FreeTige.004510F3
4510E4 CMP BL,0E9
4510E7 JE SHORT FreeTige.004510F3
4510E9 CMP BX,25FF
4510EE JE SHORT FreeTige.004510FF
4510F0 INC ECX
4510F1 JMP SHORT FreeTige.004510D6
4510F3 SUB DWORD PTR DS:[ECX+EDI+1],ECX
4510F7 ADD ECX,5
4510FA SUB EAX,4
4510FD JMP SHORT FreeTige.004510D6
4510FF SUB DWORD PTR DS:[ECX+EDI+2],EDX
451103 ADD ECX,6
451106 SUB EDX,4
451109 SUB EAX,5
45110C JMP SHORT FreeTige.004510D6
45110E MOV BYTE PTR SS:[EBP+D3],0F8
451115 POP EBX
451116 POP EDX
451117 POP ESI
451118 JMP FreeTige.00451093
45111D PUSH 4 //到此处时代码已解开,此时已可 DUMP ,用 LOADPE 修改相关数值.
PS:你在 OEP 处 DUMP ,壳代码已将原程序引入函数表复原又破坏了,所以无法用 LOADPE 修改.