1. 首页>
  2. 腾讯云代理

逆向中共享内存的应用

腾讯云 2019年06月06日 浏览38

    腾讯云代理 腾讯云新闻 腾讯云代理 腾讯云直播申请 游戏上云

摘要:

致力于分享游戏安全技术,提供专业的游戏安全资讯


     共享内存,这个词相信大家多多少少有所耳闻。来看一下百科给我们的解释:

       

共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。





百度百科








        百科的回答比较官方,那么实际运用中,共享内存可以用来做什么?

详细举个例子:

某游戏助手(如TGP/wagame),读取英雄名称或者类型,推荐最佳出装/技能方案,在单开游戏的情况下,自然用不到共享内存,而往往单开满足不了玩家需求。如大多数DNF玩家都是通过wagame或者其他助手进行双开同步刷图,这个时候想要给两个客户端同时下达相同的指令,即可用共享内存实现。


流程如下(设想):

wagame 申请共享内存

客户端1消息循环读取共享内存中的指令

客户端2消息循环读取共享内存中的指令

同步按键指令。


这个时候,如果关闭申请共享内存的程序(wagame平台),那么客户端1和2都将无法访问这一块内存区域。


以易语言为例子:


先以申请并写入内存为例:


1、CreateFileMapping申请一个文件映射内核对象,返回值为映射对象的句柄。

2、MapViewOfFile   将文件映射对象映射到当前应用程序的地址空间,返回值为内存区域指针。

3、将要写入的数据转化为字节集的形式,并且取得字节集长度。

4、在内存区域指针+4的位置开始写入指定的数据。

5、UnmapViewOfFile停止当前程序的内存映射。


CreateFileMapping函数原型


阅读原文

相关文章

在线客服
淘宝购买
腾讯云直播申请 title=
+成为腾讯云VIP客户 腾讯云直播申请 客服电话

15818558013

0755-33940501-803

0755-33940501-808