手游常用破解方法

对于一个弱联网或者单机游戏,可以从以下方面去破解:

1、找得到存档文件的,直接破解修改存档文件。

2、找不到存档文件,就在游戏运行时借助一些软件来修改数值,比如用各种修改器手游助手来修改金币。

3、找不到存档文件、数值还修改不了,就直接反编译,Java就看Java、C#就看IL、C++就看汇编。

文章转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

手游防破解对策

好了,防破解我们也从以上方面来做 (或者还有其它的)。

1、对于破解修改存档文件的。

首先我们可以聪明一点,存档名字不要写成SaveData、Config、Cundang、等这种很傻瓜的名字。难道存档文件就不能命名为mp3、jpg吗?把存档文件扔到一堆jpg里面,这是简单有效的方法。

然后就是加密,字节偏移 、上上下下左左右右交换都可以。只要自己能认得出来。

2、软件修改数值,是这次我要测试的。

首先我们要明白市面上各种修改器的原理,随便哪一款修改器都是教你先找到一个数值,比如金币 5000,然后搜索这个数值,再去改变这个数值,再搜索改变后的数值。

那么对应于这种方式,我们要做的就是,让 显示的数据 和 我们实际用于计算的数据 并不一样。比如玩家攻击力是100,那么我从存在存档中的就写 101,然后计算伤害的时候用

101 -1 =100 这样去计算,但是显示在屏幕上的还是 100 。这样玩家用修改器去搜索 100 这个数值。然后攻击力 +1 的时候显示101,但是其实我们的变量中存储的是 102.自然就搜索不到了。

下面我用Unity做的一个Demo,然后用烧饼修改器来测试修改数据,测试 不加密 和 加密  ( 指的就是上面的 100+1 ) 的 情况。

文章转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

首先Unity的工程下载:

http://pan.baidu.com/s/1hqD4yyg

然后下面是用来测试的普通场景的代码:

using UnityEngine;using System.Collections;public class Normal : MonoBehaviour { int m_Attack=0; int m_ShowAttack=0; // Use this for initialization void Start () { } void OnGUI() {  m_ShowAttack=m_Attack;  if(m_ShowAttack<0)    m_ShowAttack=0;  GUI.Label(new Rect(100,100,100,500),m_ShowAttack.ToString());  if(GUI.Button(new Rect(100,300,100,100),"普通赋值"))  {   m_Attack=100;  }  if(GUI.Button(new Rect(300,300,100,100),"修改伤害值"))  {   m_Attack+=1;  }  if(GUI.Button(new Rect(450,100,100,100),"跳转到加密测试"))  {   Application.LoadLevel("Encryption");  } }  // Update is called once per frame void Update () {  }}

下面是用来测试 加密的代码:

using UnityEngine;using System.Collections;public class Encryption : MonoBehaviour { int m_Attack=0; //存储数据用于计算伤害; int m_ShowAttack=0; //存储数据用于显示; // Use this for initialization void Start () {  }  void OnGUI() {  m_ShowAttack=m_Attack-1;  if(m_ShowAttack<0)    m_ShowAttack=0;  GUI.Label(new Rect(100,100,100,500),m_ShowAttack.ToString());    if(GUI.Button(new Rect(100,300,100,100),"加密赋值"))  {   m_Attack=(100 + 1);  }  if(GUI.Button(new Rect(300,300,100,100),"修改伤害值"))  {   m_Attack+=1;  }  if(GUI.Button(new Rect(450,100,100,100),"跳转到普通测试"))  {   Application.LoadLevel("Normal");  } }}

对比上面的两个代码,就会明白这次加密的原理。

好了,下面是我用烧饼修改器测试的结果。

不加密秒破解

破解不加密游戏开始,攻击力初始为0

点击 普通赋值 ,赋值 100

用烧饼修改器搜索 100

搜索到很多值为  100 的内存地址

返回游戏,点击 修改伤害值 按钮,数值 + 1 =101.

再次搜索 101

这次只搜索到 2 个值为 101 的数据。我们把这两个数据都进行修改  为 7777 。

提示修改成功,同时我们看到游戏中显示的数值变了,那么数据是否真的变了。

回到游戏,再次点击 修改伤害值,显示 7778 。

至此游戏已经被修改破解。

加密后破解变难

破解加密游戏开始,初始值为 0

点击 加密赋值 ,给初始攻击  100

然后在烧饼修改器中搜索 100

搜索到很多个

返回游戏 ,点击 修改伤害值 后,伤害值显示为 101 。

继续在烧饼修改器中搜索 101 。

只搜索到1个。

我们修改成 66666。

提示修改成功,但是我们看到,游戏中的数据并没有变化。

返回游戏,点击 修改伤害值  ,发现一切正常。

破解加密失败。

文章转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

为什么普通的能搜索到 2 个101,而加密的只能搜索到 1个 101?

因为加密的游戏,在那个时候,的确只有一个数据是101,就是屏幕显示的。存储用于计算的数值,是 102 。修改器修改的只是用于屏幕显示的一个数字,而且修改之后马上又被真实的数值替换了。所以并没有修改成功。

3、对于反编译游戏代码的,我们可以对代码进行混淆加密。

Unity反编译重新打包的流程,看下面的日记。

Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL)

话说如果真有高人来破解你的游戏,不管怎么做,都会被破解掉的。我们能做的就是尽量增大破解难度。或者,做成网络游戏。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

单机 弱联网手游 防破解 金币修改 简单措施相关推荐

  1. 单机 amp; 弱联网手游 防破解、金币改动 简单措施

    单机 & 弱联网手游 防破解.金币改动 简单措施 手游经常使用破解方法 对于一个弱联网或者单机游戏,能够从下面方面去破解: 1.找得到存档文件的,直接破解改动存档文件. 2.找不到存档文件,就 ...

  2. 手游弱联网手游如何防作弊

    本文是看到<乐元素CTO凌聪:弱联网手游如何防作弊?>之后,我觉得这篇文章讲的东西都很实用,贴合我们实际,比你看那些理论的书籍强多了,而且也非常佩服乐元素能把这些东西拿出来讲,虽然在某些人 ...

  3. 【放置江湖】弱联网手游,网络协议分析修改。每天签到可获得35元宝

    [放置江湖]弱联网手游,网络协议分析修改教程. 每天签到可获得35元宝,开启方法,WLAN ->已连接的wifi (>)小图标 -> 代{过}{滤}理 ->代{过}{滤}理自动 ...

  4. 艾格拉斯张鹏:重度手游防外挂及安全

    艾格拉斯张鹏:重度手游防外挂及安全 图/文 游戏茶馆 前言 2015年1月10日,[问道一线]品牌沙龙第一期,有幸邀请到的艾格拉斯创始人之一.CTO张鹏先生,以<游戏防外挂及安全>为主题, ...

  5. 手游sdk难道只是个简单的悬浮球吗?

    普普通通.丝毫不引人注目,手游sdk难道只是一个简单的悬浮球吗?答案当然是否定的!隐藏在普通表面的背后的手游sdk并不"简单". 手游sdk究竟是什么?又有什么作用?本期小编将为大 ...

  6. 对于手游防代充策略的一些思考

    代充乱象综述 现在的手游只要火了,基本上都会遇到苹果代充问题的困扰.因为苹果自身的政策漏洞,不法分子利用这些漏洞,以较低的价格为玩家充值:代充商家和玩家获利,而游戏商遭到损失.总的来说,现在的代充技术 ...

  7. 【放置江湖】LUA手游 基于HOOK 解密修改流程

    1.下载拿到<放置江湖> apk 后我们第一步检查游戏框架,直接查看 \lib 目录里面的 so就可以了.   很明显这也是一款基于cocos2dlua 开发的游戏.接着我们查看,他的lu ...

  8. 推特 我们目前不能注册此邮箱地址_英雄联盟手游来了!最简单的下载/安装/注册教程!...

    从英雄联盟手游的消息至今,已经过去这么多天,想必大家早已等不及想要玩上一把了.等了这么久,如今终于在海外公测了,虽然目前国服还不能游玩,但是跟着本篇教程,你也可以轻松玩到海外版本!苹果用户看这里:首先 ...

  9. 怎样运用云服务器搭建传奇世界联网手游教程,linux系统部署游戏详细教程

    传世 linux 架设教程 服务器系统: linux  -  centos7.6 第一步:安装宝塔面板,各种服务器系统不一样,安装方法也不一样,详情可参考宝塔官方网站. yum install -y ...

  10. iOS修改手游服务器数据,IOS修改教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 再往下面翻 {"m_iType":2,"m_GroupsNodwList":[ {"m_iValue&q ...

最新文章

  1. http反向代理调度算法追朔
  2. C#中的Partial
  3. linux网络报文接收发送浅析_Docker容器网络-基础篇
  4. php中文网数据库的搭建,【后端开发】php数据库中文乱码
  5. python跳回循环开始位置_如何回到python中循环的开始?
  6. Servlet和模本办法
  7. python redis list_Python redis list列表操作
  8. spring boot 多数据源分布式事务处理
  9. ASV2011中文版本和英文版本的区别
  10. 初学“Jave”心得
  11. 《Java核心技术 卷12》读书笔记
  12. [Windows] PPT插件集,部分支持WPS(提高你的制作效率和页面美观)
  13. python emf转gif_python – 将EMF / WMF文件转换为PNG / JPG
  14. C# winform程序调用屏幕键盘
  15. bzoj2286: [Sdoi2011]消耗战
  16. activiti工作流数据库表详细说明
  17. python lol脚本_Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
  18. 「弹性权重巩固(EWC/Elastic Weight Consolidation)」。
  19. 深入理解MOT评价指标
  20. 敏捷开发与Scrum区别(敏捷开发(Agile)教程)

热门文章

  1. 在 MQL5 中创建多色彩指标
  2. MEGA视频目标检测
  3. 机器学习-联合概率分布笔记
  4. 2016版Excel加载宏实现加载空间分析库
  5. 【js】:利用javascript打开网页
  6. JavaScript打开新页面的两种方式:当前页面打开和新页面跳转
  7. 0基础学SQL(二)
  8. TAOCP-Reading-计算机程序设计艺术阅读-1-0
  9. ib网卡命令_IB交换机配置命令总结
  10. Pyside2 背景图片填充