zoukankan      html  css  js  c++  java
  • 防止apk反编译的技术分析浅谈--内存修改器篇

    声明:

            1.本帖转载自http://jingyan.baidu.com/article/a24b33cd509eb719fe002b94.html,仅供自用,勿喷


           Apk反编译修改器有很多。拿其中的比较出名的八门神器来说,该应用通过修改正在运行的游戏的内存数据,可以非常方便地修改游戏的HP、MP、生命数等等参数。辛辛苦苦开发的游戏或应用被修改器一修改就悲催了。    就通过一个demo来讲下,怎么通过多数据关联来保护应用的重要数据不被修改。这个demo很简单,只有一个TextView和一个Button。点击Button,TextView加一。

            运行八门神器,锁定gold内存地址,把值改为999。然后点击Button,click方法中,代码从内存中读取了被修改的gold值,并把它+1显示到TextView。TextView显示1000,数据修改成功。

             下面我们对代码进行下修改,增加一个变量goldMd5用来存放加密后的gold值。这样我们就用了两个变量来保存gold的值,一份加密的和一份未加密的变量。


           每次使用gold值时都对获取的gold进行md5加密然后与goldMd5进行比较。如果不相同,说明gold值被修改了。我们可以判断为作弊了,我这里对作弊的处理是把gold值改为0,并提示作弊。如果加密数据使用的des算法,还可以通过解密goldMd5,来获取真实的gold值。

    下面测试下demo还能不能被修改。使用八门神器把gold改为999。然后点击Button,数据修改失败。


  • 相关阅读:
    《架构漫谈》有感
    《掌握需求过程》阅读笔记三
    《掌握需求过程》阅读笔记二
    《掌握需求过程》阅读笔记一
    《代码阅读方法与实现》阅读笔记三
    《代码阅读方法与实现》阅读笔记二
    《代码阅读方法与实现》阅读笔记一
    《软件需求模式》阅读笔记三
    《软件需求模式》阅读笔记二
    第二阶段个人总结06
  • 原文地址:https://www.cnblogs.com/JianXu/p/5158417.html
Copyright © 2011-2022 走看看