首页
社区
课程
招聘
[求助]內存补丁如何查找module
发表于: 2007-6-19 11:45 6335

[求助]內存补丁如何查找module

2007-6-19 11:45
6335
內存补丁如何查找module?

我的目標是這樣子的.
A.EXE 會載入一堆 .DLL .
因為我要修改的不是 A.EXE 本身, 而是它所載入的 B.DLL

我的作法是先 CreateProcess A.EXE
再去用 GetModuleHandleA 找 B.DLL

Debug 時發現原來 GetModuleHandleA只能找我自己的 Loader 所使用的模塊.
並不能找到 A.EXE 所載入的模塊 B.DLL

請問高手...
我要如何取得 A.EXE 所載入的模塊 B.DLL 的 Handle 或 Base Image?
因為 DLL 在不同機器, 或不同場合, 所載入的 Base Image 都不同.

謝謝!!

SkyPe: zenixyang

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
2
获取A.EXE的PID,然后在Module32First列举A.EXE内的所有dll,每列举到一个,MODULEENTRY32结构里会保存着列举到的dll的句柄....可以通过这个句柄对dll进行操作....

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;从一个进程的PID枚举其加载的dll,返回一个MODULEENTRY32结构
;入口参数:进程PID
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EunmProcess proc PID:LPSTR
local ModuleEntry32:MODULEENTRY32
local sfi:SHFILEINFO
local ModulePID

invoke   RtlZeroMemory,addr ModuleEntry32,sizeof ModuleEntry32;清空内存
mov ModuleEntry32.dwSize,sizeof ModuleEntry32
invoke   CreateToolhelp32Snapshot,TH32CS_SNAPMODULE,PID
mov   hModuleSnap,eax
invoke Module32First,hModuleSnap,addr ModuleEntry32
.if eax!=NULL
    .while eax
    ;invoke SHGetFileInfo,addr ModuleEntry32.szExePath, FILE_ATTRIBUTE_NORMAL,addr sfi,sizeof SHFILEINFO ,\
    ;SHGFI_USEFILEATTRIBUTES or SHGFI_DISPLAYNAME or SHGFI_ICON or SHGFI_SMALLICON
    push ModuleEntry32.th32ModuleID
    pop ModulePID ;得到ModuleID
    invoke Module32Next,hModuleSnap,addr ModuleEntry32
    .endw
.endif
    ret
EunmProcess endp
2007-6-19 14:00
0
雪    币: 2502
活跃值: (1567)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
非常感謝,
我已經找這方法, 找好久了.
2007-6-19 18:35
0
游客
登录 | 注册 方可回帖
返回