单机 弱联网手游 防破解 金币修改 简单措施
手游常用破解方法
对于一个弱联网或者单机游戏,可以从以下方面去破解:
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
单机 弱联网手游 防破解 金币修改 简单措施相关推荐
- 单机 amp; 弱联网手游 防破解、金币改动 简单措施
单机 & 弱联网手游 防破解.金币改动 简单措施 手游经常使用破解方法 对于一个弱联网或者单机游戏,能够从下面方面去破解: 1.找得到存档文件的,直接破解改动存档文件. 2.找不到存档文件,就 ...
- 手游弱联网手游如何防作弊
本文是看到<乐元素CTO凌聪:弱联网手游如何防作弊?>之后,我觉得这篇文章讲的东西都很实用,贴合我们实际,比你看那些理论的书籍强多了,而且也非常佩服乐元素能把这些东西拿出来讲,虽然在某些人 ...
- 【放置江湖】弱联网手游,网络协议分析修改。每天签到可获得35元宝
[放置江湖]弱联网手游,网络协议分析修改教程. 每天签到可获得35元宝,开启方法,WLAN ->已连接的wifi (>)小图标 -> 代{过}{滤}理 ->代{过}{滤}理自动 ...
- 艾格拉斯张鹏:重度手游防外挂及安全
艾格拉斯张鹏:重度手游防外挂及安全 图/文 游戏茶馆 前言 2015年1月10日,[问道一线]品牌沙龙第一期,有幸邀请到的艾格拉斯创始人之一.CTO张鹏先生,以<游戏防外挂及安全>为主题, ...
- 手游sdk难道只是个简单的悬浮球吗?
普普通通.丝毫不引人注目,手游sdk难道只是一个简单的悬浮球吗?答案当然是否定的!隐藏在普通表面的背后的手游sdk并不"简单". 手游sdk究竟是什么?又有什么作用?本期小编将为大 ...
- 对于手游防代充策略的一些思考
代充乱象综述 现在的手游只要火了,基本上都会遇到苹果代充问题的困扰.因为苹果自身的政策漏洞,不法分子利用这些漏洞,以较低的价格为玩家充值:代充商家和玩家获利,而游戏商遭到损失.总的来说,现在的代充技术 ...
- 【放置江湖】LUA手游 基于HOOK 解密修改流程
1.下载拿到<放置江湖> apk 后我们第一步检查游戏框架,直接查看 \lib 目录里面的 so就可以了. 很明显这也是一款基于cocos2dlua 开发的游戏.接着我们查看,他的lu ...
- 推特 我们目前不能注册此邮箱地址_英雄联盟手游来了!最简单的下载/安装/注册教程!...
从英雄联盟手游的消息至今,已经过去这么多天,想必大家早已等不及想要玩上一把了.等了这么久,如今终于在海外公测了,虽然目前国服还不能游玩,但是跟着本篇教程,你也可以轻松玩到海外版本!苹果用户看这里:首先 ...
- 怎样运用云服务器搭建传奇世界联网手游教程,linux系统部署游戏详细教程
传世 linux 架设教程 服务器系统: linux - centos7.6 第一步:安装宝塔面板,各种服务器系统不一样,安装方法也不一样,详情可参考宝塔官方网站. yum install -y ...
- iOS修改手游服务器数据,IOS修改教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 再往下面翻 {"m_iType":2,"m_GroupsNodwList":[ {"m_iValue&q ...
最新文章
- http反向代理调度算法追朔
- C#中的Partial
- linux网络报文接收发送浅析_Docker容器网络-基础篇
- php中文网数据库的搭建,【后端开发】php数据库中文乱码
- python跳回循环开始位置_如何回到python中循环的开始?
- Servlet和模本办法
- python redis list_Python redis list列表操作
- spring boot 多数据源分布式事务处理
- ASV2011中文版本和英文版本的区别
- 初学“Jave”心得
- 《Java核心技术 卷12》读书笔记
- [Windows] PPT插件集,部分支持WPS(提高你的制作效率和页面美观)
- python emf转gif_python – 将EMF / WMF文件转换为PNG / JPG
- C# winform程序调用屏幕键盘
- bzoj2286: [Sdoi2011]消耗战
- activiti工作流数据库表详细说明
- python lol脚本_Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
- 「弹性权重巩固(EWC/Elastic Weight Consolidation)」。
- 深入理解MOT评价指标
- 敏捷开发与Scrum区别(敏捷开发(Agile)教程)