社区
进程/线程/DLL
帖子详情
如何调用远程DLL中的函数
guetcw
2008-02-27 09:41:53
我已将DLL注入远程进程,接下来如何调用那个DLL中的函数呢
如果通过文件影射的方法该怎么做呢
...全文
742
27
打赏
收藏
如何调用远程DLL中的函数
我已将DLL注入远程进程,接下来如何调用那个DLL中的函数呢 如果通过文件影射的方法该怎么做呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guetcw
2008-02-29
打赏
举报
回复
看来只有这样了,谢谢
zhoujianhei
2008-02-28
打赏
举报
回复
应该是进程间通信的事啦,不可能跨进程调用,因为他们不在同一个地址空间。
lwykj
2008-02-28
打赏
举报
回复
别人的代码里面 本身没得调用你dll函数的功能啊
自己改啊!
guetcw
2008-02-28
打赏
举报
回复
LS我没说清楚啊,我用进程A把DLL注入了进程B,然后进程A怎么调用那个注入的DLL的函数
cnzdgs
2008-02-28
打赏
举报
回复
你目前这种情况用DLL的共享数据传参数最方便了。DLL中做一个导出函数,EXE调这个导出函数把参数传过去,导出函数再把参数复制到共享数据中。注入的线程同样要再开一个新线程来循环等待,可以利用命名事件也可以利用开关量来实现同步。
珍惜生命远离CPP
2008-02-28
打赏
举报
回复
你的DLL都进对方内存空间了,还用那方法?
guetcw
2008-02-28
打赏
举报
回复
22L
传递参数不方便啊
guetcw
2008-02-28
打赏
举报
回复
回20楼,我在16楼那里说了
21楼能不能给个示例啊(插入一个代理)
cnzdgs
2008-02-28
打赏
举报
回复
如果只是简单地执行一下那个函数,可以用类似这样的方法:
在你的EXE中用CreateEventEx创建一个命名事件,然后注入DLL。DLL中再创建一个新线程,在线程中打开事件,然后循环等待事件、调那个函数。当EXE要调用那个函数时,就触发一下事件。
arong1234
2008-02-28
打赏
举报
回复
filemapping只能提供数据共享,不会帮你到另外一个进程去调用一个dll
调用远程dll的唯一方法是在对方进程内插入一个代理(如插入一个线程CreateRemoteThread),然后由它替你调用,你从本地进程无论如何都无法调用
不要看到进程间通信就以为你可以执行其他进程的代码,这是不可能的
珍惜生命远离CPP
2008-02-28
打赏
举报
回复
CreateRemoteThread
在指定进程内调用函数.
=========================
这个你试了没有?
guetcw
2008-02-28
打赏
举报
回复
有没有一种方法可以很方便的调用那些函数
如果用共享数据,那我的参数只能通过共享数据传递?
guetcw
2008-02-28
打赏
举报
回复
那就是我说的这个咯
---------------------------------------
4楼,就是进程通信啊,我查资料说有:文件映射(Mapping),WM_COPYDATA,剪贴板等
还有一种非常便利的方法#pragmadata_seg
那文件映射怎么做啊
---------------------------------------
cnzdgs
2008-02-28
打赏
举报
回复
你是要在一个进程里调用另一个进程的函数?这就是进程通讯了,没法用内存影射。这个函数要在注入的线程里面调,这个线程与你的进程通讯。可以利用DLL的共享数据、SendMessage、同步对象等方法来实现。
guetcw
2008-02-28
打赏
举报
回复
我模仿注入的过程去调用它,失败了,不知道哪出错了
HINSTANCE hDLL = LoadLibrary(m_szDllFile);//加载动态链接库zrDll.dll文件;
HANDLE hThread = NULL;
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(hDLL,"testfun");
//这里出错了“Uable to install hook"
// 创建远程线程
hThread = CreateRemoteThread(RemoteHandle,//远程进程的句柄
NULL,
0,
pfnThreadRtn, // testfun地址
NULL, // 参数
0,
NULL);
// 等待线程返回
WaitForSingleObject(RemoteHandle, INFINITE);
// 关闭句柄
CloseHandle(hThread);
guetcw
2008-02-28
打赏
举报
回复
是远程进程的一个函数啊,注入了就没出问题
问题是我的进程要怎么调用fun()(已经注入的那个DLL)
cnzdgs
2008-02-28
打赏
举报
回复
这个函数是可以调的,但是你直接写地址,即使没有执行注入也会出问题的。这个地址是什么?
guetcw
2008-02-28
打赏
举报
回复
如果那个DLL里面有这样的函数
extern "C" _declspec(dllexport) void fun()
{
DWORD addr = 0x00564875;//远程进程的一个CALL地址
_asm
{
pushad
mov eax,addr
call eax
popad
}
}
还能该怎么调用怎么调用吗
cnzdgs
2008-02-28
打赏
举报
回复
LZ不知道一个DLL也可以被多个进程同时调用吗?DLL的代码是各个进程共用的,数据部分可以每个进程有一份,也可以所有进程共享。
你该怎么调就还怎么调,只要注意被执行注入代码就行。
珍惜生命远离CPP
2008-02-28
打赏
举报
回复
CreateRemoteThread
在指定进程内调用函数.
加载更多回复(7)
易语言
调用
远程
进程
DLL
函数
易语言
调用
远程
进程里的
DLL
的
函数
,非常不错的
远程
调用
DLL
函数
进程A
调用
进程B
中
某一个DLL
中
的
函数
. Debug Code. 代码来源 http://www.cnblogs.com/BeginGame/archive/2011/08/20/2147440.html 感谢作者的分享.
Windows进程常用
DLL
模块注入技术
远程
线程注入 APC注入,异步
调用
过程,向目标线程插入待执行任务从而完成注入。 窗口消息注入,指定窗口进程注入,与全局钩子注入类似。 环境块注入,获取进程上下文信息,直接性修改程序执行流程完成注入。 进程...
C#版
DLL
远程
线程注入源代码
C#没有自动
调用
WIN32的一些API
函数
,我们可以手动添加内核库到我们自己的代码
中
,从而实现
调用
win32API
函数
。 此方法不仅仅用于
远程
线程注入,还可以用于从MFC转C#过程
中
不知道如何用C#实现功能,但有知道如何用MFC实现功能的方法。
dll
远程
线程注入(支持64bit win7)
把
dll
注入到
远程
线程。使用的时候创建一个空的工程,然后把代码当做主文件放到工程
中
,自己写个mian
函数
调用
inject
DLL
函数
就能注入了。菜鸟级友情提醒:64位别忘了编译成x64的可执行文件
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章