标题:手动脱壳入门第十一篇PEDiminishe 0.1

-------------------------------------------------------------------------------------------------------------------------------

时间:2006/8/28 17:16:56

-------------------------------------------------------------------------------------------------------------------------------

内容:

xTiNt
 手动脱壳入门第十一篇PEDiminishe 0.1  
手动脱壳入门第十一篇PEDiminishe 0.1
【脱文标题】 手动脱壳入门第十一篇PEDiminishe 0.1
【脱文作者】 weiyi75[Dfcg] 
【作者邮箱】 weiyi75@sohu.com 
【作者主页】 Dfcg官方大本营 
【使用工具】 Peid,Ollydbg
【脱壳平台】 Win2K/XP
【软件名称】 PEDiminishe0.1主程序
【软件简介】 PE Diminisher is a simple PE packer. Just run it, open the file you want to pack, and select Encrypt File! This software was written in learning purpose only. So, don't tell me it sucks, cause I already know Anyway, the GUI is pretty nice PE Diminisher uses the aplib compression/decompression library,(C) 1998 Jibz. Also, thanks to Stone, without whom, I would had a rough time coding this. This software has borrowed code fragments from his softwares.
【软件大小】 14 KB
【加壳方式】 PEDiminisher 0.1 -> Teraphy
【保护方式】 PEDiminisher
【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:
软件截图:
 
界面很朴素,奇怪的是我在Win2000和Xp系统用它加壳任何程序均无法运行。选择几个加密选项和一个都不选一样,不能运行,难道是For Win98的。
脱壳目标,PEDiminishe0.1主程序。
本地下载
软件后用Fi测ped.exe的壳为PEDiminisher 0.1 -> Teraphy
手动脱壳建议大家用Ollydbg,工作平台Win2000,WinXp,Win9x不推荐。
手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。不要用Peid查入口,单步跟踪,提高手动找入口能力。
用OD载入程序后。
确定一个入口点警告。
停在这里
00417000 > 53 PUSH EBX
00417001 51 PUSH ECX
00417002 52 PUSH EDX
00417003 56 PUSH ESI
00417004 57 PUSH EDI
00417005 55 PUSH EBP
00417006 E8 00000000 CALL ped.0041700B F7步过。
0041700B 5D POP EBP
0041700C 8BD5 MOV EDX,EBP
0041700E 81ED A2304000 SUB EBP,ped.004030A2
00417014 2B95 91334000 SUB EDX,DWORD PTR SS:[EBP+403391]
0041701A 81EA 0B000000 SUB EDX,0B
00417020 8995 9A334000 MOV DWORD PTR SS:[EBP+40339A],EDX
00417026 80BD 99334000 0>CMP BYTE PTR SS:[EBP+403399],0
0041702D 74 50 JE SHORT ped.0041707F 好大一个循环,有可能是循环出口。
0041702F E8 02010000 CALL ped.00417136 F7步过。
00417034 8BFD MOV EDI,EBP
00417036 8D9D 9A334000 LEA EBX,DWORD PTR SS:[EBP+40339A]
0041703C 8B1B MOV EBX,DWORD PTR DS:[EBX]
0041703E 8D87 9E334000 LEA EAX,DWORD PTR DS:[EDI+40339E]
00417044 8B00 MOV EAX,DWORD PTR DS:[EAX]
00417046 03D8 ADD EBX,EAX
00417048 8D8F A2334000 LEA ECX,DWORD PTR DS:[EDI+4033A2]
0041704E 8B09 MOV ECX,DWORD PTR DS:[ECX]
00417050 66:8B85 8F33400>MOV AX,WORD PTR SS:[EBP+40338F]
00417057 8003 10 ADD BYTE PTR DS:[EBX],10
0041705A 3003 XOR BYTE PTR DS:[EBX],AL
0041705C 3023 XOR BYTE PTR DS:[EBX],AH
0041705E 8003 AA ADD BYTE PTR DS:[EBX],0AA
00417061 66:C1C0 03 ROL AX,3
00417065 86E0 XCHG AL,AH
00417067 43 INC EBX
00417068 ^ E2 ED LOOPD SHORT ped.00417057 循环。
0041706A E8 FF000000 CALL ped.0041716E F4到这里,F8步过远程Call。
0041706F 83C7 08 ADD EDI,8
00417072 FE8D 99334000 DEC BYTE PTR SS:[EBP+403399]
00417078 ^ 75 BC JNZ SHORT ped.00417036 往回跳。
0041707A E8 16000000 CALL ped.00417095 F4到这里,F8步过远程Call。
0041707F 8B85 95334000 MOV EAX,DWORD PTR SS:[EBP+403395] Eax=00001000
00417085 8B9D 9A334000 MOV EBX,DWORD PTR SS:[EBP+40339A] Ebx=00400000
0041708B 03C3 ADD EAX,EBX EAX=00001000 + 00400000=00401000 
0041708D 5D POP EBP
0041708E 5F POP EDI
0041708F 5E POP ESI
00417090 5A POP EDX
00417091 59 POP ECX
00417092 5B POP EBX
00417093 FFE0 JMP EAX 跨段跳跃跳到入口401000处。
00401000 E8 DB E8 经过跨段跳跃到入口,我们在这里用Od的Dump插件直接脱壳。
00401001 85 DB 85
00401002 25 DB 25 ; CHAR '%'
00401003 00 DB 00
00401004 00 DB 00
00401005 6A DB 6A ; CHAR 'j'
00401006 00 DB 00
00401007 E8 DB E8
00401008 D6 DB D6
00401009 24 DB 24 ; CHAR '$'
重建输入表时,插件有两个选项。Method2重建输入表很快,脱壳后运行率高。Method1重建输入表慢,脱壳后
运行率较低。本程序用Method1重建输入表后程序可直接运行。
"手动脱壳入门第十一篇"脱壳动画!

  
 

  

xTiNt
 手动脱壳入门第十一篇PEDiminishe 0.1  
手动脱壳入门第十一篇PEDiminishe 0.1
【脱文标题】 手动脱壳入门第十一篇PEDiminishe 0.1
【脱文作者】 weiyi75[Dfcg] 
【作者邮箱】 weiyi75@sohu.com 
【作者主页】 Dfcg官方大本营 
【使用工具】 Peid,Ollydbg
【脱壳平台】 Win2K/XP
【软件名称】 PEDiminishe0.1主程序
【软件简介】 PE Diminisher is a simple PE packer. Just run it, open the file you want to pack, and select Encrypt File! This software was written in learning purpose only. So, don't tell me it sucks, cause I already know Anyway, the GUI is pretty nice PE Diminisher uses the aplib compression/decompression library,(C) 1998 Jibz. Also, thanks to Stone, without whom, I would had a rough time coding this. This software has borrowed code fragments from his softwares.
【软件大小】 14 KB
【加壳方式】 PEDiminisher 0.1 -> Teraphy
【保护方式】 PEDiminisher
【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:
软件截图:
 
界面很朴素,奇怪的是我在Win2000和Xp系统用它加壳任何程序均无法运行。选择几个加密选项和一个都不选一样,不能运行,难道是For Win98的。
脱壳目标,PEDiminishe0.1主程序。
本地下载
软件后用Fi测ped.exe的壳为PEDiminisher 0.1 -> Teraphy
手动脱壳建议大家用Ollydbg,工作平台Win2000,WinXp,Win9x不推荐。
手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。不要用Peid查入口,单步跟踪,提高手动找入口能力。
用OD载入程序后。
确定一个入口点警告。
停在这里
00417000 > 53 PUSH EBX
00417001 51 PUSH ECX
00417002 52 PUSH EDX
00417003 56 PUSH ESI
00417004 57 PUSH EDI
00417005 55 PUSH EBP
00417006 E8 00000000 CALL ped.0041700B F7步过。
0041700B 5D POP EBP
0041700C 8BD5 MOV EDX,EBP
0041700E 81ED A2304000 SUB EBP,ped.004030A2
00417014 2B95 91334000 SUB EDX,DWORD PTR SS:[EBP+403391]
0041701A 81EA 0B000000 SUB EDX,0B
00417020 8995 9A334000 MOV DWORD PTR SS:[EBP+40339A],EDX
00417026 80BD 99334000 0>CMP BYTE PTR SS:[EBP+403399],0
0041702D 74 50 JE SHORT ped.0041707F 好大一个循环,有可能是循环出口。
0041702F E8 02010000 CALL ped.00417136 F7步过。
00417034 8BFD MOV EDI,EBP
00417036 8D9D 9A334000 LEA EBX,DWORD PTR SS:[EBP+40339A]
0041703C 8B1B MOV EBX,DWORD PTR DS:[EBX]
0041703E 8D87 9E334000 LEA EAX,DWORD PTR DS:[EDI+40339E]
00417044 8B00 MOV EAX,DWORD PTR DS:[EAX]
00417046 03D8 ADD EBX,EAX
00417048 8D8F A2334000 LEA ECX,DWORD PTR DS:[EDI+4033A2]
0041704E 8B09 MOV ECX,DWORD PTR DS:[ECX]
00417050 66:8B85 8F33400>MOV AX,WORD PTR SS:[EBP+40338F]
00417057 8003 10 ADD BYTE PTR DS:[EBX],10
0041705A 3003 XOR BYTE PTR DS:[EBX],AL
0041705C 3023 XOR BYTE PTR DS:[EBX],AH
0041705E 8003 AA ADD BYTE PTR DS:[EBX],0AA
00417061 66:C1C0 03 ROL AX,3
00417065 86E0 XCHG AL,AH
00417067 43 INC EBX
00417068 ^ E2 ED LOOPD SHORT ped.00417057 循环。
0041706A E8 FF000000 CALL ped.0041716E F4到这里,F8步过远程Call。
0041706F 83C7 08 ADD EDI,8
00417072 FE8D 99334000 DEC BYTE PTR SS:[EBP+403399]
00417078 ^ 75 BC JNZ SHORT ped.00417036 往回跳。
0041707A E8 16000000 CALL ped.00417095 F4到这里,F8步过远程Call。
0041707F 8B85 95334000 MOV EAX,DWORD PTR SS:[EBP+403395] Eax=00001000
00417085 8B9D 9A334000 MOV EBX,DWORD PTR SS:[EBP+40339A] Ebx=00400000
0041708B 03C3 ADD EAX,EBX EAX=00001000 + 00400000=00401000 
0041708D 5D POP EBP
0041708E 5F POP EDI
0041708F 5E POP ESI
00417090 5A POP EDX
00417091 59 POP ECX
00417092 5B POP EBX
00417093 FFE0 JMP EAX 跨段跳跃跳到入口401000处。
00401000 E8 DB E8 经过跨段跳跃到入口,我们在这里用Od的Dump插件直接脱壳。
00401001 85 DB 85
00401002 25 DB 25 ; CHAR '%'
00401003 00 DB 00
00401004 00 DB 00
00401005 6A DB 6A ; CHAR 'j'
00401006 00 DB 00
00401007 E8 DB E8
00401008 D6 DB D6
00401009 24 DB 24 ; CHAR '$'
重建输入表时,插件有两个选项。Method2重建输入表很快,脱壳后运行率高。Method1重建输入表慢,脱壳后
运行率较低。本程序用Method1重建输入表后程序可直接运行。
"手动脱壳入门第十一篇"脱壳动画!