首页
社区
课程
招聘
[求助]加壳的Dll是什么时候初始化并解压的?
发表于: 2008-3-23 00:19 4281

[求助]加壳的Dll是什么时候初始化并解压的?

2008-3-23 00:19
4281
很不解的一个问题。请高手指导指导。

一个DLL文件。本身是用UPcak3.999加壳。。Upack 0.3.9 beta2s -> Dwing

PEiD查看节表如下
.Upack  
V偏移:1000
V大小:8000
R偏移:0
R大小:0

.rsrc  
V偏移:9000
V大小:9000
R偏移:200
R大小:1DC5

我用OD加载后。。。OD内存显示。
Memory map, 条目 46
地址=10000000
大小=00001000 (4096.)
属主=D3D9_64  10000000 (自身)
区段=
包含=PE 文件头
类型=Imag 01001002
访问=R
初始访问=RWE

Memory map, 条目 47
地址=10001000
大小=00008000 (32768.)
属主=D3D9_64  10000000
区段=.Upack
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE

Memory map, 条目 48
地址=10009000
大小=00009000 (36864.)
属主=D3D9_64  10000000
区段=.rsrc
包含=SFX,输入表,输出表,资源
类型=Imag 01001002
访问=R
初始访问=RWE

OD载入入。马上停在了入口点位置。。。
这时,我没有开始调试。
直接在10004398  处找到了我所要的Ascii字符
10004398是 区段=.Upack 包含=代码

我的问题就是。为什么直接在WinHex中不能找到字串。。。但一加载后就可以马上发现,还不用脱壳!
加壳的Dll是什么时候初始化并解压的
如果我要跟踪这个DLL 10004398 处的数据是什么时候被写入的。我应该怎么做?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 256
活跃值: (788)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
载入->内存中解压->初始化,如此顺序而已
2008-3-23 09:56
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是这样的。不过,它解压的过程我们就真的不能跟踪吗?
2008-3-24 03:01
0
雪    币: 50161
活跃值: (20620)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
如果要脱壳,用OD打开,其原理是用LoadLibrary  加载DLL,这时从入口你就可以跟踪脱壳过程。有时,OD可能不能在DLL的入口点停下来,让DLL跑起来了,可能就是你说的解压了。这时采取些技巧,在DLL入口插入INT 3指令,中断后,改回原指令继续调试。
2008-3-24 09:24
0
雪    币: 256
活跃值: (788)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
入口处下硬件断点,勾"中断在新模块截入时",F9单步走就可以到入口
2008-3-24 10:56
0
游客
登录 | 注册 方可回帖
返回
//