首页
社区
课程
招聘
[求助]如何获取远程进程中加载的dll映射的内存地址
发表于: 2018-6-3 11:35 3564

[求助]如何获取远程进程中加载的dll映射的内存地址

2018-6-3 11:35
3564
进行DLL注入时发现,注入的DLL中的函数只能调用预先放在DLLMAIN中的函数,这样注入的DLL编写很不灵活,能不能注入目标进程后,根据不同的需要在目标进程中远程调用DLL中的不同函数?
比如:
DLL中导出三个函数
a()
b()
c()
如果要注射后调用a函数,就要把a放在dllmain中,而且只是一次性的,注入完成后要再让目标进程调用b函数的话,要怎么办??
问题在于,要调用函数b,就要在目标进程中找到函数b的地址,要怎么动态的取得函数b在目标进程中的地址?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,ProcessID)
然后再解析EAT?
或者加载自身  GetAddressProc()  ?
2018-6-3 11:59
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
您的方法是获取远程进程的EAT,并不能获取进程中DLL的EAT。感谢回答
2018-6-3 12:15
0
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
explorer.exe的kernel32.dll的GetProcessHeap函数的地址和notepad.exe中的kernel32.dll的GetProcessHeap的地址一不一样?
2018-6-3 14:58
0
雪    币: 12848
活跃值: (9142)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
5
1、你可以在注入的目标进程内建立本地RPC服务,对外分别提供三个函数的RPC调用接口,让源进程以RPC的方式通知目标进程去调用。
至于RPC有很多种实现方式,最简单的你在目标进程里开一个简易的HTTP服务,这样用浏览器就可以通知目标进程调用你想要的函数了。
2、什么叫动态的取得函数b在目标进程中的地址?函数b是你自己写的吗?是你自己写的你还不知道地址?不是你自己写的话,GetProcAddress取不到?
最后于 2018-6-3 17:57 被hzqst编辑 ,原因:
2018-6-3 17:56
0
游客
登录 | 注册 方可回帖
返回
//