请教关于内存读写权限的问题~~各位高手,拜托

shootingwt 2014-03-28 05:41:36
环境描述:
有个项目是连接设备读写卡片,设备有基本的SDK接口库(A.DLL),然后做了个管理设备的助手(C#应用程序,B.EXE),之后又做了一个面向应用的SDK接口库(C.DLL),B.DLL与A.DLL是普通的调用关系,C.DLL和B.EXE通过socket通讯,B.EXE和A.DLL之间其实也有个接口库是D.DLL,这个D.DLL通过B.EXE指定的SDK名,API名和参数列表进行动态加载A.DLL,使用的是汇编PUSH 和 CALL方式动态的加载API和传入参数。

问题:
现在调用C.DLL的一个应用程序E.EXE有个数组作为指针向A.DLL发送,有时候函数执行成功,但是并没有向数组中写入数据,有时候直接被D.DLL的的try捕获到异常而返回。D.DLL使用汇编PUSH的指针地址没有问题,直接使用C.DLL调用D.DLL没有问题,但是通过socket之后就无法正常执行参数中带指针的函数。

分析:
E.EXE和B.EXE属于两个进程,数组空间属于E.EXE的栈空间,所以属于E.EXE的数组空间即时传入B.EXE中也没有读写权限,所以有时候程序无法正确写入,或者有时候程序直接因为没有写入权限而直接产生异常,被D.DLL的Try捕获到。

请问各位高手,我的分析是否正确,内存空间是不是具有这种不同进程间的权限?使用malloc或者其他方法会解决?
...全文
279 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shootingwt 2014-03-28
  • 打赏
  • 举报
回复
http://bbs.pediy.com/showthread.php?t=184935&highlight=%E8%BF%9B%E7%A8%8B+%E5%86%85%E5%AD%98+%E5%AD%98 大家可以看看这个帖子,如果有相关问题,原来有现成的函数可以支持跨进程的内存读写。
shootingwt 2014-03-28
  • 打赏
  • 举报
回复
多谢楼上,已经在那里发帖。
moonwrite 2014-03-28
  • 打赏
  • 举报
回复
看雪安全论坛- www.pediy.com bbs.pediy.com/ 以前做个游戏外挂,了解过游戏外挂的程序怎么注入到游戏的进程中 都忘了,只能告诉你能帮你的人在聚集在那里~

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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