dusksoft 发表于 2020-1-15 12:11

请教将DLL注入到目标进程,如何让目标进程执行DLL中导出的函数?

不在DllMain执行,而是上目标进程执行DLL导出的函数。

coolcalf 发表于 2020-1-15 12:32

曾在猪八式问过类似问题,给了600

dusksoft 发表于 2020-1-15 12:38

coolcalf 发表于 2020-1-15 12:32
曾在猪八式问过类似问题,给了600

谢谢,我自己查资料吧,以后不来提问了,问不起,穷

哎,这就是国内的技术圈子~~~

BlackLucifer 发表于 2020-1-15 12:40

曾几何时我也苦苦寻找这个问题的答案,结果一直都没找到可靠的方法,楼主已经做到了吗

LeoSky 发表于 2020-1-15 12:41

1.挂钩目标线程,让目标线程执行你的代码,在代码里执行你的函数。
举个例子:如目标进程有窗口,你可以直接挂钩窗口的回调函数(如SetWindowLong等),设置写消息捕获处理。

2.还有就是挂钩线程,暂停线程,设置跳转到你的代码,执行完跳回原始代码位置。
3.创建远程线程

还有其他的你再在论坛搜索吧。{:301_997:}

dusksoft 发表于 2020-1-15 12:55

LeoSky 发表于 2020-1-15 12:41
1.挂钩目标线程,让目标线程执行你的代码,在代码里执行你的函数。
举个例子:如目标进程有窗口,你可以直 ...

谢谢,这些都不是我想要的,我试过重新再开一个线程去执行目标进程中的函数,但是得不到函数地址。
PTHREAD_START_ROUTINE pThreadProc = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandleA("test.dll"), "test");

CreateRemoteThread(hProcess, NULL, 0, pThreadProc, NULL, 0, NULL);

pThreadProc返回是0

xjun 发表于 2020-1-15 13:16

调下导出函数就行了。具体参考这个项目
https://github.com/DarthTon/Xenos

在高级选项里面有个注入完调用函数名和参数。 具体实现就是用shellcode。

dusksoft 发表于 2020-1-15 13:19

xjun 发表于 2020-1-15 13:16
调下导出函数就行了。具体参考这个项目
https://github.com/DarthTon/Xenos



谢谢,我看看

bester 发表于 2020-1-15 13:30

我能想到的办法就是用一个shellcode获取模块句柄+函数导出地址,直接用远程线程调用,但是我刚刚设想了一下用远程线程获取模块句柄,但是好像你操作了获取不到,你OD跟一下看是什么原因

304775988 发表于 2020-1-15 13:39

coolcalf 发表于 2020-1-15 12:32
曾在猪八式问过类似问题,给了600

嘿嘿,你说猪八戒哇,那个站全是内部操作,技术都是有限的,全是套路你这也信
页: [1] 2
查看完整版本: 请教将DLL注入到目标进程,如何让目标进程执行DLL中导出的函数?