• 热门游戏<开心消消乐>的“加壳”诡计!!


    好久没搞游戏了,前几天看了又又一次看了看<开心消消乐>的1.29最新版..于是故事開始了:

    1.反编译分析

    首先使用Androidkiller进行反编译,得到两个Smali代码目录:mali和smali_classes2。到这认为挺奇怪的,由于一个游戏client。基本都是引擎编写的,如主流的Cocos2dx、Unity3D等。主要代码是C/C++/C#或者一些脚本、图片。不管apk本身有多大,Java逻辑都不会非常多。极少编译出现2个dex。就像一些大型的应用client2个dex才是普遍的现象。


    其次,清单文件AndroidManifest.xml中的多个Activity都能在smali_classes2文件定位到.smali文件,真正是因为方法过多正常分离出2个dex的apk。Application和主Activity的Smali文件会在第一个dex中。


    所以可能是伪装成“加壳”的诡计!。

    2.验证測试

    既然所有的源代码都在smali_classes2中。那我们就把smali_classes2->smali,将原来貌似壳文件的smali删除。然后搜索“.super Landroid/app/Application;”,修复下application入口,回编安装,游戏并不奔溃。而是弹出了签名验证的正常提示。说明程序没问题。

    确实为“加壳”诡计!!


    3.移花接木·化为己用

    Android最大的特点就是可偷。既然它把技术诚心诚意的放出来了,我们就移花接木到自己的APP上啊。

    通过改动、測试,仅仅需三步就能够将随意大小的apk改造成含有2个dex的伪装加壳的apk:

    第一步:将须要改动的apk反编译,重命名smali->smali_classes2,将我提供的smali拷贝到反编译根目录;

    第二步:改动清单文件AndroidManifest.xml的application入口改动为:android:name="com.happyelements.security.shellguard.ShellApplication"

    第三步:回编配置的最后一行“DexMaps: {}”改动为:

    DexMaps:
      classes2.dex: smali_classes2
    例如以下图,将一个大小为72K的apk改造成两个dex:


    相关下载

    链接: http://download.csdn.net/detail/zihao2012/9375835  能够对照..





  • 相关阅读:
    解压bz2包
    Linux获取客户端IP
    出现身份验证错误,要求的函数不受支持,远程计算机
    Ubuntu16.04.4 编译安装ssldump1.1
    windows远程桌面复制不了文件
    MySQL空间数据操作:GeomFromText()和astext()函数报错解决
    mysql中geometry类型的简单使用
    response header的Content-Disposition的inline的作用
    jooq的LocalDateTime转化成LocalDate
    java8 LocalDateTime时间格式化
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6978452.html
Copyright © 2020-2023  润新知