老文章档案 · 2003 年

tElock 0.98加壳的DLL脱壳

破解教程 · 脱壳教程 · 2003-06-12 · 作者:liotta[BCG] 人气: · 出处:嬴政天下整理收藏)

前言:

早在2000年10月就脱过用tElock 0.98加壳的NotePad,并好像在看雪论坛写过脱壳简要。

最近有网友问tElock 0.98加壳的DLL脱壳问题。整理出一篇文章,希望对你有帮助。

Liotta[BCG]

目标:

超星浏览器3.6.0.1210所带的pdg2.dll(先用upx -d解压,然后用tElock 0.98加壳)

scouting... E:\Program Files\SSREADER36\pdg2.dll - 256000 bytes big

Entry Point:0007EBD6(offset0003DBD6)E9 25 E4 FF FF 00 00 00

Image Base:10000000Base of Code:00001000

Base of Date:0005A000Size of Image:00080000

Number of Sections:0006

工具:

SoftICE+ICEDump

PEditor+WinHex

正文:

一,如何中断在pdg2.dll文件领空?以下是一些准备工作:

用 PEditor打开pdg2.dll文件,然后单击 FLC,输入Entry Point:0007EBD6得到Offset[hex]为 3DBD6。

然后,用WinHex打开pdg2.dll文件,定位到Offset3DBD6,记下此处字节的原值E9并改为CC,再Ctrl-D中

断进入SoftICE,设断点 bpint 3。

二,开始跟踪。

如何对付tElock保护的反跟踪代码就不说了,请参照以前的相关文章《Flashfxp 1.4脱壳》。

运行SSReader.EXE并中断在pdg2.dll领空,改1007EBD6处字节为原值E9再继续。

017F:1007EBD6 CC INT 3首先中断在这里,改CC为原来的E9

……

:u eip l 09

017F:1007EBD6 E925E4FFFF JMP 1007D000

017F:1007EBDB 0000 ADD [EAX],AL

017F:1007EBDD 0008 ADD [EAX],CL

……

消除断点bpint 3

再BPX GetModuleHandleA

为何要用这个函数中断呢?因为用tElock 0.98加壳后的文件只有这一个输入函数,用PEditor看看就知!

函数GetModuleHandleA中断,按F12返回。

:u 1007e210 l eip - 1007e210

017F:1007E210 8B9562D34000 MOV EDX,[EBP+0040D362]

017F:1007E216 8BB552D34000 MOV ESI,[EBP+0040D352]

017F:1007E21C 85F6 TEST ESI,ESI

<--首次调用时的ESI就是Import Tabler的RVA,记下该值0005D720。

017F:1007E21E 0F8406040000 JZ 1007E62A

017F:1007E224 03F2 ADD ESI,EDX

<-- EDX的值就是Image Base

017F:1007E226 83A552D4400000 AND DWORD PTR [EBP+0040D452],00

017F:1007E22D 8B460C MOV EAX,[ESI+0C]

017F:1007E230 83660C00 AND DWORD PTR [ESI+0C],00

<--开始把Name清00,要DUMP出有效的文件就要想想办法。

017F:1007E234 85C0 TEST EAX,EAX

017F:1007E236 0F84EE030000 JZ 1007E62A

017F:1007E23C 03C2 ADD EAX,EDX

017F:1007E23E 8BD8 MOV EBX,EAX

017F:1007E240 50 PUSH EAX

017F:1007E241 FF95D0D24000 CALL [EBP+0040D2D0]

:u eip l 1007e270-eip

017F:1007E247 85C0 TEST EAX,EAX

<--GetModuleHandleA中断,按F12返回到此处。

017F:1007E249 0F85BA000000 JNZ 1007E309

017F:1007E24F 53 PUSH EBX

017F:1007E250 FF95E4BA4000 CALL [EBP+0040BAE4]

017F:1007E256 85C0 TEST EAX,EAX

017F:1007E258 0F85AB000000 JNZ 1007E309

017F:1007E25E 8B9562D34000 MOV EDX,[EBP+0040D362]

017F:1007E264 01952AD34000 ADD [EBP+0040D32A],EDX

017F:1007E26A 019536D34000 ADD [EBP+0040D336],EDX

……

017F:1007E6C6 MOV EDI,[EBP+0040D362]

017F:1007E6CC ADD EDI,[EDI+3C]

017F:1007E6CF OR [EDI+06],SP<--此处改了Number of Sections的值

017F:1007E6D3 SHR ESI,00

017F:1007E6D6 CLC

……

然后用/tracex 10000000 eip-8指令追踪到pdg2.dll的 OEP为100330E4

:u eip l 100330f7 - eip

017F:100330E4 55 PUSH EBP

017F:100330E5 8BEC MOV EBP,ESP

017F:100330E7 53 PUSH EBX

……

三,如何DUMP出pdg2.dll文件呢?经过以上追踪应该很清楚了!

中断在DLL文件入口点,改CC为原来的E9

bpx readfile(主要是用以跳过反跟踪代码,直接G 1007E21E不行)

F5

中断按F12返回

BD *

G 1007E21E

R FL Z

G 1007E6CF

跳过NumberOfSections的修改

G 100330E4

/dump 10000000 00080000 C:\pdg2.dll

然后挂起并杀掉SSReader.EXE这个进程。

用PEditor打开Dump文件,dumpfixer(RS=VS & RO=VO)

再修改Entry Point的值为000330E4、Import Tabler的RVA的值为0005D720

可不要忘了把修复好的pdg2.dll复制到超星浏览器主目录中测试哦。

OK!

(出处:嬴政天下整理收藏)

相关文章:

·怎样脱用 Aspack2.12 加的壳(适合初学者)

·EZIP1.0脱壳手记

·脱pecompact1.71加的壳

·PEPack1.0脱壳手记

·手动脱壳的教程(由petite v2.2加壳)

·论 彩票快车白金版v90 的脱壳+爆破

·Aspack的壳

·对PECompact.exe v1.34的手动脱壳

·Petite 脱壳“标准”解决方法

·Petite 2.x 脱壳

相关软件:

·NetConch(网络贝壳) 1.1

·甲壳虫进销存 V3.20

·甲壳虫医药版 V3.82

·甲壳虫服装鞋帽版 V3.92

·甲壳虫超市版 V3.70

·花生壳(PeanutHull) V2.0 正式版

·甲壳虫XP插件版 2.0.5

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史