玩传奇论坛

 找回密码
立即注册

扫一扫,访问移动社区

论坛喇叭+ 发布

01-25 10:01
系统通知全站压缩包解压密码:www.wanmirbbs.com
01-25 10:01
01-25 10:01
查看: 2238|回复: 0
打印 上一主题 下一主题

tElock 0.98加壳的DLL脱壳餐口

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-4 14:29:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,以游结友!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
工具:
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!

法律声明:
1. 本站所有资源和素材来源于网络收集,如有侵权内容请联系站长删除处理!
2. 本站大部分下载资源收集于网络,版权归原作者所有,如有侵权请联系删除。
3. 本站提供的素材、源码、等等其他资源,都不包含技术服务支持!
4. 若因线路和服务器问题非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5. 注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
懒得打字嘛,点击右侧快捷回复 【乱回复纯数字纯字母将禁言】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

必备工具

地图查看分析转换三合一

目前地图转换 单纯的OB真彩地图转换编...号想必很多人都会, 也有很多工具

南宫地图编辑器v5.0

使用方法,放置传奇客户端DATA文件夹...

Tiles转换工具,支持支持255

支持255地图转换工具!

关于本站

玩传奇论坛 - 专业提供游戏素材、游戏工具、传奇单机、传奇服务端,致力于打造最精品的版本素材分享平台!

Archiver|小黑屋|玩传奇吉ICP备18002996号-1) |网站地图 

GMT+8, 2024-9-20 05:47 , Processed in 0.037491 second(s), 34 queries , Gzip On. 

 Powered by Discuz! X3.2

 © 2001-2013 Comsenz Inc.

返回顶部