手游经常使用破解方法

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

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的project下载:

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

然后以下是用来測试的普通场景的代码:

以下是用来測试 加密的代码:

对照上面的两个代码。就会明确这次加密的原理。

好了,以下是我用烧饼改动器測试的结果。

不加密秒破解

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

点击 普通赋值 ,赋值 100

用烧饼改动器搜索 100

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

返回游戏,点击 改动伤害值 button。数值 + 1 =101.

再次搜索 101

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

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

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

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

加密后破解变难

破解加密游戏開始。初始值为 0

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

点击 加密赋值 ,给初始攻击  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)

话说假设真有高人来破解你的游戏,无论怎么做,都会被破解掉的。

我们能做的就是尽量增大破解难度。或者,做成网络游戏。

单机 & 弱联网手游 防破解、金币改动 简单措施的更多相关文章

  1. 手游Apk破解疯狂,爱加密apk加固保护开发人员

    2013年手游行业的规模与收入均实现了大幅增长,发展势头强劲.权威数据显示, 我国移动游戏市场实际销售收入从2012年的32.4亿猛增到2013年的112.4亿元,同比增长了246.9%,手游用户从2 ...

  2. APP安全环节缺失,手游运营商怎样应对APP破解困境

    2013年手游行业的规模与收入均实现了大幅增长,发展势头强劲.然而,在手游快速发展的同一时候,因为监管.审核等方面存在着漏洞,手机游戏软件被破解后注入恶意代码.盗取用户財产.窃取用户设备信息的现象屡见 ...

  3. Java游戏服务器成长之路——弱联网游戏篇(源码分析)

    前言 前段时间由于公司的一款弱联网游戏急着上线,没能及时分享,现在基本做的差不多,剩下的就是测试阶段了(本来说元旦来分享一下服务器技术的).公司的这款游戏已经上线一年多了,在我来之前一直都是单机版本, ...

  4. 腾讯WeTest《2017中国移动游戏质量白皮书》开放预约,再为国内手游把把脉

    产品为王,质量先行.如果说2016年是爆款手游相继崛起的一年,那么2017年则更像是打磨精品.建立生态的高手切磋之年.守住一个游戏的质量生命线,方能建立健康生态,方能在如火如荼的行业竞争中角逐到最后. ...

  5. 新手做2D手游该用哪些工具?

    全球手游行业规模将突破250亿美元,越来越多的开发者开始进入手游研发领域,而作为一名菜鸟,很多时候,如果没有其他开发者的建议,会走很多弯路.一开始进入游戏研发领域的时候,你很难知道该选择什么工具.什么 ...

  6. 记一个手游app数据文件的破解

    出于一些非常猥琐的须要,同一时候自己也想做一些新奇的尝试,周末用了大半天时间破解了某款手游的数据文件. 过程比我预想的要顺利,主要原因还是我们开发者的懈怠.咳咳. 步骤例如以下: 下载安装包,解压,发 ...

  7. Android手游《》斗地主完整的源代码(支持单机和网络对战)

    Android手游<斗地主>完整的源代码(支持单机和网络对战)下载.一个很不错的源代码. 斗地主掌游是一个独特的国内社会斗地主棋牌游戏,之后玩家可以下载网上斗地主和全世界.掌游斗地主特点: ...

  8. [Kingdom Rush]团队分享:如何做塔防手游

    转自:http://www.gamelook.com.cn/2015/03/207324 GameLook报道/2014年11月,乌拉圭开发商Ironhide Studios发布的<Kingdo ...

  9. 破解者是如何篡改游戏内数值的,揭秘Android手游破解全过程

    由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游 行业,如刀塔传奇.植物大战僵尸.2048等知名游戏被破解的案例不胜枚 ...

随机推荐

  1. [HDU 6318] Swaps and Inversions

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6318 [算法] 线段树 / 树状数组 [代码] #include<bits/stdc++.h ...

  2. Node.js:函数

    ylbtech-Node.js:函数 1.返回顶部 1. Node.js 函数 在JavaScript中,一个函数可以作为另一个函数的参数.我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接 ...

  3. 自己实现的一个 .net 缓存类(原创)

    public class CacheContainer { private static Hashtable ht = new Hashtable(); /// <summary> /// ...

  4. 关于c-string类

    特别鸣谢:由张老师整理(原出处未知 一.C++ 字符串 C++ 提供了以下两种类型的字符串表示形式: C 风格字符串 C++ 引入的 string 类类型 1.C 风格字符串 C 风格的字符串起源于 ...

  5. kafka+storm 单机运行

    环境: 1.kafka+zookeeper 2.window平台 3.eclipse 设置: 1.kafka和zookeeper安装,另一篇有介绍(https://www.cnblogs.com/51 ...

  6. flash as3.0学习笔记

    F9开动作模板 trace输出 trace(a); 影片剪辑 var mc:MovieClip = new MovieClip();//属性(x,y轴)方法 play,stop mc.x = 10 / ...

  7. python简易版学生管理系统

    #coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...

  8. os.clock()导致的bug

    os.clock () 功能:返回一个程序使用CPU时间的一个近似值 最近做了一个功能,这个功能需要统计时间间隔,例如每隔0.5秒做一次调用. 我用了os.clock()去统计时间,结果在pc机上都没 ...

  9. CSS——清除浮动的六种解决方案

    内容的高度撑起父元素容器的高度,效果图如下 HTML和CSS代码如下 给p标签加上浮动以后,p{float:left:},此时DIV塌陷,两段内容同行显示,效果如下: 解决方案一:给前面一个父元素设置 ...

  10. 利用JavaScript做无缝滚动

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...