zoukankan      html  css  js  c++  java
  • APK中java代码反编译

    Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
    第一种情况:无混淆无加密无加壳。
    直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。

    第二种情况:混淆。
    通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。

    第三种情况:加密。
    这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
    解密的脚本:A look inside Dexguard

    第四种情况:加壳。
    这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里dump出来。这里推荐Xpose的ZjDroid。
    脱壳教程:ZjDroid工具介绍及脱壳详细示例
    作者:Vince
    链接:http://www.zhihu.com/question/30723538/answer/49382019




  • 相关阅读:
    nodejs
    httpClient closeableHttpClient
    re(正则表达式)模块
    ConfigParser模块
    random和string模块
    常用文件操作模块json,pickle、shelve和XML
    time和datetime模块
    os、sys和shutil模块
    内建函数
    生成器、迭代器、装饰器
  • 原文地址:https://www.cnblogs.com/doit8791/p/5225618.html
Copyright © 2011-2022 走看看