- UID
- 20765
注册时间2006-8-25
阅读权限30
最后登录1970-1-1
龙战于野
该用户从未签到
|
发表于 2006-9-13 14:31:59
|
显示全部楼层
找到了Fly大侠的一篇文章,希望能对你有帮助:
- 标 题:Thinstall V2.501脱壳——Win98的Notepad
- 发信人:fly
- 时 间:2004-12-08,17:54
- 详细信息:
- 软件类别: 国外软件 / 共享版 / 安装制作
- 应用平台: Win9x/NT/2000/XP
- 实例下载:点击此下载
- 推荐等级: ****
- 开 发 商: http://thinstall.com/
- 软件介绍: 它可以把程序所需要的DLL和OCX都打到一个EXE中,然后在运行的时候自动将DLL、OCX释放出来。这个工具看起来不错,比较方便,但损失了一些性能,而且做成的EXE体积很大。只有当你的用户希望运行你的程序,而又不希望安装它(例如编写一个演示程序),你可以考虑这个工具。
-
- 【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
-
- 【调试环境】:WinXP、Ollydbg V1.10、PEiD、LordPE、WinHex
-
- —————————————————————————————————
- 【脱壳过程】:
-
-
- Thinstall其实是捆绑壳,但是比PEBundle之类要强。Thinstall可以包装.NET、Java、VB等程序。
- 新版的Thinstall不对外提供公开下载,运行时需要连接License Server或者使用USB Key。
- 用Thinstall加壳Win98的Notepad作为试炼品吧。
- 放个PEiD的sign:
- [Thinstall V2.4X-2.5X -> Jitit]
- signature = 55 8B EC B8 ?? ?? ?? ?? BB ?? ?? ?? ?? 50 E8 00 00 00 00 58 2D ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? BD ?? ?? ?? ?? 03 E8
- ep_only = true
- —————————————————————————————————
- 一、前奏
-
-
- 设置Ollydbg忽略所有异常选项。老规矩:用IsDebug V1.4插件去掉Ollydbg的调试器标志。
- 00401A95 55 push ebp
- //进入Ollydbg后暂停在这
- 00401A96 8BEC mov ebp,esp
- 00401A98 B8 3C1A4A7D mov eax,7D4A1A3C
- 00401A9D BB ED08B7F0 mov ebx,F0B708ED
- 00401AA2 50 push eax
- 00401AA3 E8 00000000 call Notepad.00401AA8
- 下断:BP GetModuleHandleA
- 中断后取消断点,Alt+F9返回
- 00401A66 FF15 E4534000 call dword ptr ds:[<&KERNEL32.GetModuleHandleA>]
- //返回这里
- 00401A6C 50 push eax ; Notepad.00400000
- Ctrl+F搜索命令:jmp eax
- 00401A8B 8B45 FC mov eax,dword ptr ss:[ebp-4]
- 00401A8E FFE0 jmp eax ; 7FF79E04
- //找到这里,F4过来
- 现在来到Thinstall的核心处理段:
- 7FF79E04 55 push ebp
- 7FF79E05 8BEC mov ebp,esp
- 7FF79E07 6A FF push -1
- 7FF79E09 68 70BEF87F push 7FF8BE70
- 7FF79E0E 68 A09BF77F push 7FF79BA0
- 7FF79E13 64:A1 00000000 mov eax,dword ptr fs:[0]
- 7FF79E19 50 push eax
- 7FF79E1A 64:8925 00000000 mov dword ptr fs:[0],esp
- 7FF79E21 83EC 10 sub esp,10
- 7FF79E24 53 push ebx
- 7FF79E25 56 push esi
- 7FF79E26 57 push edi
- 7FF79E27 8965 E8 mov dword ptr ss:[ebp-18],esp
- 7FF79E2A FF15 7062F87F call dword ptr ds:[7FF86270] ; kernel32.GetVersion
- —————————————————————————————————
- 二、获取加壳前程序的PE Header等数据
- Ctrl+S 搜索命令序列:
- mov eax,dword ptr ds:[eax+3C]
- mov ecx,dword ptr ss:[ebp-118]
- 找到在7FF427BA处,直接F4过去
- 7FF427A5 8B85 D4FDFFFF mov eax,dword ptr ss:[ebp-22C]
- 7FF427AB 8B40 18 mov eax,dword ptr ds:[eax+18]
- 7FF427AE 8985 E8FEFFFF mov dword ptr ss:[ebp-118],eax
- 7FF427B4 8B85 E8FEFFFF mov eax,dword ptr ss:[ebp-118]
- 7FF427BA 8B40 3C mov eax,dword ptr ds:[eax+3C]
- //F4到这里
- 7FF427BD 8B8D E8FEFFFF mov ecx,dword ptr ss:[ebp-118]
- 7FF427C3 8D4401 18 lea eax,dword ptr ds:[ecx+eax+18]
- 7FF427C7 8985 D0FDFFFF mov dword ptr ss:[ebp-230],eax ; Notepad.004000E8
- //在这里可以得到PE Header和The Section Table数据 ★
- 7FF427CD C705 D05DF97F 020>mov dword ptr ds:[7FF95DD0],2
- PE Header:
- 004000D0 50 45 00 00 4C 01 01 00 D6 57 5A 35 00 00 00 00 PE..L.諻Z5....
- 004000E0 00 00 00 00 E0 00 0E 01 0B 01 03 0A 00 40 00 00 ....?..@..
- 004000F0 00 70 00 00 00 00 00 00 CC 10 00 00 00 10 00 00 .p......?.....
- 00400100 00 50 00 00 00 00 40 00 00 10 00 00 00 10 00 00 .P....@.......
- 00400110 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ..............
- 00400120 C6 CA 00 00 00 04 00 00 00 00 00 00 02 00 00 00 剖............
- 00400130 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 ............
- 00400140 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ...............
- 00400150 00 60 00 00 8C 00 00 00 00 70 00 00 C8 42 00 00 .`..?...p..菳..
- …… ……
- 毕竟只是捆绑壳,此时代码已经解压,现在dump则IAT等信息都是未加密的,正是脱壳的最佳时机!
- —————————————————————————————————
- 三、Dump、PE修正
- 如果你用LordPE来dump,会发现得到的dumped.exe连图标也没有了,别急,用WinHex把上面得到的PE Header和The Section Table等数据写入相应部分,这样就可以运行啦。你也可以用插件OllyDump先生去掉“重建输入表”选项来直接抓取,修改OEP,把BoundImport清0。
- 但是依旧只显示一个.text区段, 看看NumberOfSections:01,把PE头+06H处修改为05,所有的区段就露面了。
- 只保留LordPE的“Validate PE”选项,重建PE。
- 这次脱的算是稍微有点完美了。
- —————————————————————————————————
- 四、飞向光明之巅
- 还想看看是怎样跳OEP的?
- Ctrl+F搜索命令:call dword ptr ss:[ebp-3B8]
- 7FF4289C FF95 48FCFFFF call dword ptr ss:[ebp-3B8]; Notepad.004010CC
- //飞向光明之巅! ^O^
- —————————————————————————————————
-
- , _/
- /| _.-~/ \_ , 青春都一晌
- ( /~ / \~-._ |\
- `\\ _/ \ ~\ ) 忍把浮名
- _-~~~-.) )__/;;,. \_ //'
- /'_,\ --~ \ ~~~- ,;;\___( (.-~~~-. 换了破解轻狂
- `~ _( ,_..--\ ( ,;'' / ~-- /._`\
- /~~//' /' `~\ ) /--.._, )_ `~
- " `~" " `" /~'`\ `\\~~\
- " " "~' ""
-
- UnPacked By : fly
- 2004-12-08 14:00
复制代码 |
|