关于全局变量和DLL之间的问题

xniao 2002-10-31 11:35:39
加精
进程A有一个全局变量static char aa[255],进程A把一个DLL插入到进程B,然后调用该DLL里的一个函数,那这个函数能直接使用全局变量aa吗?(不通过参数传递)
...全文
52 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xniao 2002-11-04
  • 打赏
  • 举报
回复
rivershan(笨猫)(C++/MFC/COM初学者) 的办法确实可以,
但是用了#pragma comment(linker,"/section:.SharedDataName,rws")后,UPX就压缩不了了,真是。。。头疼。
今晚结帖,谢谢各位
yonghengdizhen 2002-11-01
  • 打赏
  • 举报
回复
to kingzai() ( )
参数不在远程进程的地址空间呀..

使用dde或一条特殊的消息WM_COPYDATA吧..
rivershan 2002-11-01
  • 打赏
  • 举报
回复
你把全局变量定义到dll中呢?
然后再dll中把aa设置成全局的共享数据段~
然后所有使用这个dll的进程就都可以使用aa了~
#pragma data_seg预处理指令用于设置共享数据段。例如:
#pragma data_seg("SharedDataName")
HHOOK hHook=NULL;
#pragma data_seg()
在#pragma data_seg("SharedDataName")和#pragma data_seg()之间的所有变量将被访问该Dll的所有进程看到和共享。再加上一条指令#pragma comment(linker,"/section:.SharedDataName,rws"),那么这个数据节中的数据可以在所有DLL的实例之间共享。所有对这些数据的操作都针对同一个实例的,而不是在每个进程的地址空间中都有一份。
kingzai 2002-11-01
  • 打赏
  • 举报
回复
远线程注入,带参数(可作为一个结构),such as
::CreateRemoteThread(hProcess,NULL,0,
(unsigned long (__stdcall *)(void *))lpThreadAddr,
param, 0, &dwThreadId);
top_hipster 2002-11-01
  • 打赏
  • 举报
回复
up
xniao 2002-10-31
  • 打赏
  • 举报
回复
忘了,如果不行的话,应该怎么做呢?
xniao 2002-10-31
  • 打赏
  • 举报
回复
...看来偷懒不成了,只有先自己去试试,成功了就结帖~~:)
NowCan 2002-10-31
  • 打赏
  • 举报
回复
就是利用钩子或远线程注入。
jianliang79 2002-10-31
  • 打赏
  • 举报
回复
"进程A把一个DLL插入到进程B"这句话是什么意思?
NowCan 2002-10-31
  • 打赏
  • 举报
回复
不行的化就通过参数传递好了。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧