这篇文章的前提是单机游戏,网络游戏有自己的加密方法,与单机游戏不尽相同!

游戏辛辛苦苦的做完了,但是使用八门神器可以轻松的修改你的重要数据(金币,道具数量),哈哈哈,那么恭喜您,您挣不到一分钱!说的有点危言耸听了,毕竟知道八门神器这个工具的人是非常多太多,而且使用条件比较苛刻,但是我们不能掉以轻心,他完全可以修改完成了,将存档放在网上,这样我们就十分被动了!

一.什么是八门神器

不明白八门神器为何物的请自行Google!这里我引用百度百科(点击这里:http://baike.baidu.com/view/3258873.htm )中的一段话:

八门神器是安卓、iOS、塞班平台上通用的游戏修改工具,可以修改内存中的数值和参数,达到修改游戏HP、MP、金钱、等级等的作用。八门神器类似于PC平台的金山游侠等游戏修改器,是手机游戏中的金手指。但八门神器在安卓平台下需要Root权限才能正常工作,在iOS平台下需要iPhone越狱才能正常工作,并且支持中、英双语言,并且自带帮助说明。

建议大家还是亲自去使用下这个工具,效果请看下图:

二.原理

知己知彼百战百胜,我们要先了解八门神器的原理:

在游戏运行时,内存和处理器都会对于游戏进行非常复杂的数据交换和变更,这是因为游戏有很多的数据,例如金钱、HP值、等级、攻击力、防御力等数据,而这些数据,就在内存和处理器的各个地址当中,玩家只需要在八门神器中搜索相关的数据值,八门神器就会将搜索出记录此数据的各个地址显示,玩家进行多次的数据变更后再次搜索,到最后就会确定此地址到底是哪一个,然后将此地址的数值进行修改,回到游戏中,相关的数据也会变化!

总结下,就是八门神器会搜索出对应数值的内存地址,然后改变内存地址对应的值!

三.应对方案

这样我们貌似可以从两个方面去入手解决这个问题:

  1. 让它搜不着!
  2. 让它改变不了!

但是仔细想想,一旦它拿到了你的变量的地址,还愁改变不了吗?所以我们只能从让它搜不着这个角度去考虑!

用过这个工具的人都明白,一般情况下,一次搜索就能准确定位内存地址的情况非常少见(除非这个数字非常大,非常奇葩),都是先搜索,获得大量(几十万)的数据,然后回到游戏中,改变这个值,再回到八门神器,会自动筛选出之前搜索到的结果有哪些改变了…直到只剩下几个结果,这个时候我们挨个去改变值会变得十分的Easy!

1.改变内存地址

想想这个过程,好像只有第一次搜索是全局搜索,后面的每次搜索都是在之前搜索的结果上进行筛选!这样如果我们游戏中每次改变这个变量的时都去改变这个变量的内存地址,这样它就搜索不到了!代码如下:

class DynamicInt
{public:
DynamicInt(){m_pValue=NULL;}~DynamicInt()
{
if (m_pValue)
{
delete m_pValue;
}
}int getValue(){return *m_pValue;}void setValue(int nValue)
{
if (m_pValue)
{
delete m_pValue;
}
m_pValue=new int();
*m_pValue=nValue;
}
private:
int * m_pValue;
};

经过尝试,这个方法并不管用,还能被破解,不是我的做法错误呢还是八门神器的原理不是这样!请懂行人指出!

2.加密数据

换个思路,我们为何不在数据上做手脚,对数据进行加密(如:表面上显示的是50,内部存的却是50^0xff),这样他搜索表面上的数字当然搜索不到!代码如下:

#ifndef _H_DYNAMICVALUE_H_
#define _H_DYNAMICVALUE_H_template<class T>
class CEncryptValue
{
public:
CEncryptValue()
: m_Value(0)
{
}
~CEncryptValue()
{
}T getValue()
{
return m_Value ^ m_EncryptKey;
}void setValue(T value)
{
m_Value = value;
m_EncryptKey = rand();
m_Value ^= m_EncryptKey;
}void offset(T value)
{
setValue(getValue() + value);
}public:
T m_Value;
int m_EncryptKey;
};typedef CEncryptValue<int> CDynamicValueInt;
typedef CEncryptValue<float> CDynamicValueFloat;
typedef CEncryptValue<bool> CDynamicValueBool;#endif

使用时:

CDynamicValueInt m_DynamicMoney;//设置金钱数
m_DynamicMoney.setValue(1000);//得到金钱
m_DynamicMoney.getValue()//改变金钱
m_DynamicMoney.offset(-100);

这个方法经过测试,十分管用!也是我目前采取的方案!大家可以直接拿来使用!

写在后面的话:

有些人可能会骂八门神器的作者无耻之类,我非常不认同,大家都是靠手艺吃饭的,么有什么无耻不无耻的,如果你的游戏被破解了,只能说明你比较傻!还有对使用八门神器破解游戏的玩家表示同情,因为你一旦破解了,整个游戏就没有意义了!

Cocos2d-x 单机游戏防八门神器修改数据相关推荐

  1. Cocos2d-x单机游戏防八门神器修改数据

    来源:http://cocos2d.9tech.cn/news/2014/0212/39812.html 网上的cocos2d-x教程多为知识点的讲解,但我们学习cocos2d-x的目的是为了什么?为 ...

  2. COCOS2D-X 单机游戏防八门神器修改数据

    游戏辛辛苦苦的做完了,但是使用八门神器可以轻松的修改你的重要数据(金币,道具数量),哈哈哈,那么恭喜您,您挣不到一分钱!说的有点危言耸听了,毕竟知道八门神器这个工具的不是非常多,而且使用条件比较苛刻, ...

  3. 八门大神可以修改服务器游戏吗,八门神器怎么修改游戏 修改游戏完美教程

    八门神器是一款非常专业的手游修改器,那么今天我们来讲讲这个八门助手怎么修改游戏数据,下面通过这篇文章给大家介绍一下. 1. 网游不能修改!网游不能修改!像什么王者荣耀.吃鸡都是不支持修改功能的! 2. ...

  4. [cocos2dx]防止八门神器修改内存数据

    网上的cocos2d-x教程多为知识点的讲解,但我们学习cocos2d-x的目的是为了什么?为了做出游戏来!这篇文章的前提是单机游戏,网络游戏有自己的加密方法,与单机游戏不尽相同! 游戏辛辛苦苦的做完 ...

  5. 电脑mod_(电脑游戏) 层层恐惧2、冒险游戏——电脑配置要求单机游戏MOD攻略修改器下载...

    点击上方蓝字 关注我们 1.游戏简介 游戏名称:层层恐惧2 游戏类型:冒险游戏 开发发行:Bloober Team 游戏平台:PC 整理时间:2020-07-19 官方网址:https://layer ...

  6. 关于cocos2d-x项目防止八门神器等修改工具的一种解决办法

    八门神器是安卓.iOS.塞班平台上通用的游戏修改工具,可以修改内存中的数值和参数,达到修改游戏HP.MP.金钱.等级等的作用. 也就是说,八门神器的运作方式是通过查找游戏运行内存满足条件的数值,并修改 ...

  7. 单机游戏如何防止类似八门神器这类的内存修改器的篡改办法

    当下由于八门神器这类的存在,好多的单机游戏开发程序员都听蛋疼,今天看到伟哥实现了一个办法.... 大体的思路是: 1.实现一个类似与由一个值可以生成唯一的另一个值的函数(类似于C++ 的 std::h ...

  8. iOS平台游戏安全再议之八门神器内存修改,IAP Free游戏内购破解的防御

     http://danqingdani.blog.163.com/blog/static/186094195201298103346566/ 今年3月初写过一篇<iO平台游戏安全小议> ...

  9. 安卓游戏修改器-八门神器 GameKiller 2.31

    八门神器是一个Android平台的游戏修改器,该软件通过修改正在运行的游戏的内存数据,可以非常方便地修改游戏的HP.MP.生命数等等参数.比较类似于PC平台的整人专家(FPE)及金山游侠等游戏修改器, ...

最新文章

  1. 纯css3开发的响应式设计动画菜单(支持ie8)
  2. ssh key生成_Stelnet(ssh)登陆华为交换机配置教程
  3. Angular自学笔记(?)依赖注入
  4. 建立远程ftp服务器,利用无线路由器建立FTP服务器
  5. 昨晚停网后,我写了一段Python代码破解了隔壁小姐姐的wifi密码,结果亮了!
  6. android https详解,如何使用HTTPS和HTTP来解析Android中的JSON数据?
  7. SpringBoot集成Swagger2自动生成友好的RestApi测试页面及文档
  8. pjsip在windows上编译
  9. 工作中应该发火,勿感情用词
  10. 线程间通信与协作方式之——wait-notify机制
  11. ubuntu服务器系统日志在哪里,如何在Ubuntu上查看和写入系统日志文件
  12. 关于Layer UI表格列日期格式化及取消自动填充日期
  13. 微信模拟地理位置_微信电脑版伪装地理位置的方法
  14. 百度云真是地址解析,满速下载
  15. HDU 1069 Monkey and Banana(二维偏序LIS的应用)
  16. 动态页面抓取超级指南_减少页面重量的完整指南
  17. Pandas 中 Series 和 DataFrame 知识点
  18. 关于STM32G071RB的ADC采集误差问题
  19. Jenkins2 流水线核心语法
  20. 数据结构与算法--递归(factorial)

热门文章

  1. 谷歌pixel系列刷机注意的问题不然变砖
  2. php计算QQ音乐guid,php实现网易云音乐 QQ音乐 酷狗音乐直链获取 搜索音乐及歌词...
  3. 云计算时代的新主流业务bi工具软件
  4. 1.素数和题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,
  5. 分布式数据库的CPA
  6. 注册简单流程及短信验证码的发送
  7. gpio引脚编号计算 GPIO1_20,那么引脚编号就可能等于 1 x 32 + 20 = 54。
  8. [IMX6Q]flash_header.S分析
  9. MicroFocus 监控工具 SiteScope 搭配Task scheduler在远程Windows上执行脚本
  10. 简单无脑使用 jquery.table2excel.js 生成excel表格