![]() |
【软件名称】:EncryptPE1.0 V1.2003.5.18加壳的某程序 【软件限制】:INT3异常、过期限制、数据附加 【脱壳声明】:感谢fly、loveboom等高手的帮助! 【操作系统】:WIN2K 【脱壳工具】:OD等 ————————————————————————————— |
【脱壳过程】: 壳中加了INT3异常,还有过期限制,还有数据附加。 对INT3异常只要象脱EncryptPE V1.2003.5.1 Preview一样把INT3异常NOP掉就行了。过期限制用bp GetLocalTime下断。下面是脱壳和修复过程: 一、脱壳 用OD载入,隐藏OD,忽略所有异常,同时添加忽略0EEDFADF和C0000008异常。载入后停在: 0044D000 > 60 PUSHAD=====>停在这儿。 0044D001 9C PUSHFD 0044D002 64:FF35 0000000>PUSH DWORD PTR FS:[0] 0044D009 E8 79010000 CALL 脫2.0044D187 0044D00E 0000 ADD BYTE PTR DS:[EAX],AL 0044D010 0000 ADD BYTE PTR DS:[EAX],AL 0044D012 0000 ADD BYTE PTR DS:[EAX],AL 0044D014 0000 ADD BYTE PTR DS:[EAX],AL F9运行异常在: 77F813A2 FF75 0C PUSH DWORD PTR SS:[EBP+C] 77F813A5 FF75 08 PUSH DWORD PTR SS:[EBP+8] 77F813A8 E8 ECEC0000 CALL ntdll.77F90099 77F813AD 5D POP EBP 77F813AE C2 1800 RETN 18 77F813B1 > CC INT3======>NOP掉! 77F813B2 C3 RETN=======>停在此处。 77F813B3 33C9 XOR ECX,ECX 77F813B5 E9 A5BE0000 JMP ntdll.77F8D25F 77F813BA > 55 PUSH EBP 77F813BB 8BEC MOV EBP,ESP 77F813BD 56 PUSH ESI 77F813BE 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8] 77F813C1 8A06 MOV AL,BYTE PTR DS:[ESI] 77F813C3 3C 02 CMP AL,2 下断bp GetLocalTime后SHIFT+F9运行程序,断在: 77E649B6 > 55 PUSH EBP=====>断在此处。取消断点。看看堆栈区数据。 77E649B7 8BEC MOV EBP,ESP 77E649B9 83EC 18 SUB ESP,18 77E649BC 56 PUSH ESI 77E649BD A1 1800FE7F MOV EAX,DWORD PTR DS:[7FFE0018] 77E649C2 8B0D 1400FE7F MOV ECX,DWORD PTR DS:[7FFE0014] 77E649C8 3B05 1C00FE7F CMP EAX,DWORD PTR DS:[7FFE001C] 77E649CE ^ 75 ED JNZ SHORT kernel32.77E649BD 77E649D0 8B15 2400FE7F MOV EDX,DWORD PTR DS:[7FFE0024] 77E649D6 8B35 2000FE7F MOV ESI,DWORD PTR DS:[7FFE0020] 77E649DC 3B15 2800FE7F CMP EDX,DWORD PTR DS:[7FFE0028] 77E649E2 ^ 75 EC JNZ SHORT kernel32.77E649D0 77E649E4 2BCE SUB ECX,ESI 77E649E6 1BC2 SBB EAX,EDX 77E649E8 894D F8 MOV DWORD PTR SS:[EBP-8],ECX |