- 热门文章:
- · 老王的vfp&exeNc V5.00主程序脱壳+暗桩去除
- · 一个未知壳的脱壳笔记
- · Ultra Protect脱壳+暗桩解除——股市风暴 V6.0
- · 手脱tElock 0.80加 用 FixRes.dll 手动修复举列
- · UltraProtect 1.x之 Divx A…
- · ARM Protector 0.1 - SMoKE…
- · 秦赢甲胄反盗版加密软件v1.…
- · nSpack v1.3 脱壳之OM脚本
- · ACProtect V.1.3x-1.41的Co…
- · 菜鸟也脱壳:手动脱壳入门MoleBox 2.x 和Patch
- · Patch注册Ultra Tag Editor V2.0.8
- · 在高级语言中隐藏Call指令
上一篇:Thinstall2.517 Unpackme 脱壳 >>
Thinstall V2.501脱壳——Win98的Notepad
应用平台: 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^
下一篇:老王的vfp&exeNc V5.00主程序脱壳+暗桩去除 >>
相关文章:
- · 用Ollydbg手脱Packman V0.0.0.1加壳的DLL
- · forgot的unpackme 1.7yyy的脱壳
- · 易语言幻真随心听 3.83反调试+破解分析
- · 也谈脱ASProtect 1.2 加壳DLL
- · EcE应用实例-脱壳篇
- · 直面 MSLRH
- · 利用 Debug API 编写一个简单的脱壳机
- · duzaizhe的旧hying修改壳脱壳过程
- · PECompact 2.x 完美脱壳法
- · VB函数速查.eXe 脱壳后附加数据的修复
- · eXPressor V1.0脱壳+破解——eXPressor主程序
- · 用Ollydbg手脱ACProtect V1.41加壳的DLL
- · 较完善的旧版Acprotect1.0x-1.2x脱壳脚本
- · 易语言桌面钢笔V2.0先脱后爆
- · Cloudscape 与 Tomcat 的集成
- · 结合使用 Service Data Objects
- · Information Integrator for Content applet
- · 用 DB2 Information Integrator 扩展门户
- · 创建智能的、灵活的解决方案(第 4 部分)
- · 创建智能的、灵活的解决方案 第 2 部分
- · 创建智能的、灵活的解决方案
- · 专家访谈: Carol Rigdon,IBM 高级技术支持
- · 专家访谈: Nelson Mattos
- · DB2 信息集成: 总览图
- · DB2 Performance Expert 简化性能管理和调优
- · DB2 Performance Expert 简化性能管理和调优
- · DB2 for z/OS: DB2 通用数据库的并发性
- · 针对 DB2 Universal Database 的复制设置
- · 暂挂 I/O 分割镜像
- · 预测企业复制网络中服务器的可扩展性案例分析
- · GUI 工具简介(第 1 部分)
- · 管理 DB2 UDB for iSeries 的模式和日志
- · DB2 日志传送基础知识
- · 在DB2 UDB V8 中设置用户出口来归档数据库日志
- · Content Manager OnDemand 系统管理选择模型
- · DB2 UDB 的高可用性和灾难恢复概述
- · 利用 MSCS 创建高可用性的 DB2 服务(一)
- · 利用 MSCS 创建高可用性的 DB2 服务(二)
