首页
社区
课程
招聘
调试 DLL 时加载到不同地址的小技巧
发表于: 2006-8-23 21:01 9191

调试 DLL 时加载到不同地址的小技巧

2006-8-23 21:01
9191

调试 DLL 时加载到不同地址的小技巧

一块三毛钱
2006.08.23

给 DLL 脱壳时,有时需要把 DLL 加载到不同基地址。大概搜索了一下论坛好像没有看到简单的办法 :),下面是我的办法,算做一个小技巧吧!

使用 windbg 打开看雪的 DLL_Loader.exe,选择要加载的 dll 文件,

0:004> bp kernel32!LoadLibraryA
0:004> g

点“加载”按钮,中断在 kernel32!LoadLibraryA 处,可以通过堆栈参数看到正在加载我们的 dll 文件。



清除断点,然后,

0:000> bp ntdll!ZwMapViewOfSection
0:000> g
0:000> g

第二次中断时,查看堆栈,发现该 ntdll!ZwMapViewOfSection 来自 ntdll!LdrpMapDll+0x330,此时就要分配内存加载 dll,查看 ntdll!ZwMapViewOfSection 的第三个参数 PVOID *BaseAddress 发现所指 DWORD 为零,把这个 DWORD 改成你想要加载到的地址。可以先用 lm 命令查看已经加载了哪些 dll,哪些地址已经被占用。



清除断点,修改刚才看到的 DWORD

0:000> ed poi(@esp+0n12) 22000000

此时如果运行就可以把 dll 加载到指定地址 22000000 处,但我们经常是需要从 dll 的入口点开始跟踪壳的代码,下断点,

0:000> bu $iment(22000000)
0:000> g

断下来后就是 dll 的入口点。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 97697
活跃值: (200824)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
sustain.
2006-8-23 21:03
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好啊~~~~~~~
2006-8-23 22:33
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
4
牛人开始搞Windbg了,呵呵~
2006-8-23 23:08
0
雪    币: 175
活跃值: (2526)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
真是厉害!
2006-8-24 21:03
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
6
我用过貌似不保险,特别是有threads的时候。
后来我在load dll处bp RtlImageDirectoryEntryToData暴力搜索pe
跟文件的header比较,但是也不是好方法。
2006-8-24 22:39
0
雪    币: 277
活跃值: (321)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
7
最初由 forgot 发布
我用过貌似不保险,特别是有threads的时候。
后来我在load dll处bp RtlImageDirectoryEntryToData暴力搜索pe
跟文件的header比较,但是也不是好方法。

不知道有threads的时候具体指什么情况?
另外,能说说暴力搜索然后比较是怎么实现的吗?
2006-8-24 23:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很高啊.学到了.
2006-8-25 07:28
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
顶一下,学习中.....
2006-8-26 14:07
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
对于dll脱壳这部分,我不太研究,你讲得太好了,的确很高明,学习一下
2006-10-24 12:15
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
最简单的方法就是修改dll的imagebase了。
2006-12-1 15:27
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
pe头里面的imagebase
2006-12-1 15:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
顶一下,学习中.....
2006-12-1 17:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
koo
14
惭愧惭愧
2006-12-2 15:17
0
游客
登录 | 注册 方可回帖
返回
//