首页
社区
课程
招聘
请问dll每次载入的地址是不固定的吗?
发表于: 2005-8-13 20:26 5029

请问dll每次载入的地址是不固定的吗?

killl 活跃值
10
2005-8-13 20:26
5029
请问大家,如果dll每次载入的地址不固定,有没有办法对dll进行定位?

比如需要对dll进行smc,应该如何操作呢?

有没有操作的api?如何进行定位?需要先搜索吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
2
刚才看了下,似乎一台电脑上dll的载入地址是一样的,(错了请大家纠正),但是2台机器就不一样了?

内存大小的原因?系统的原因?
2005-8-13 20:27
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
dll每次载入地址不是固定的,也不是每台电脑,就是一台电脑上也不是固定的,如果把软件卸载一次,然后重新安装,地址也会变。
我看过spring.W的一篇文章,上面详细介绍了对dll进行smc的方法,但是比较麻烦,好像是看雪精华3或者4上面有。
2005-8-13 20:44
0
雪    币: 4908
活跃值: (2343)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
The GetModuleHandle function returns a module handle for the specified module if the file has been mapped into the address space of the calling process.

HMODULE GetModuleHandle(

    LPCTSTR lpModuleName         // address of module name to return handle for  
   );       

Parameters

lpModuleName

Points to a null-terminated string that names a Win32 module (either a .DLL or .EXE file). If the filename extension is omitted, the default library extension .DLL is appended. The filename string can include a trailing point character (.) to indicate that the module name has no extension. The string does not have to specify a path. The name is compared (case independently) to the names of modules currently mapped into the address space of the calling process.
If this parameter is NULL, GetModuleHandle returns a handle of the file used to create the calling process.

Return Values

If the function succeeds, the return value is a handle to the specified module.
2005-8-13 20:50
0
雪    币: 47147
活跃值: (20470)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
SMC的代码,如果涉及到内存指针操作就得重定位,这可以将要重定位的地方记下来,修正重定位表。如果重定位多,就有点麻烦了。
2005-8-13 20:50
0
雪    币: 300
活跃值: (412)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
6
比如想做一个游戏修改工具,不考虑smc,外部进行内存读取,重写操作,这样可以吗?

FindWindow->GetWindowThreadProcessId->OpenProcess->WriteProcessMemory

请教GetModuleHandle 之后的用法跟openprocess一样吗?
2005-8-13 21:11
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
借助重定位或用call/pop的方法得到当前代码的定位偏移,就可以SMC了.
2005-8-14 00:23
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
最初由 dwing 发布
借助重定位或用call/pop的方法得到当前代码的定位偏移,就可以SMC了.

简单+实用
2005-8-14 10:59
0
游客
登录 | 注册 方可回帖
返回
//