html5中文学习网

您的位置: 首页 > android » 正文

Android反编译代码和防止反编译_Android

[ ] 已经帮助:人解决问题

一、反编译apk文件NmUHTML5中文学习网 - HTML5先行者学习网

安装ApkTool工具,该工具可以解码得到资源文件,但不能得到Java源文件。NmUHTML5中文学习网 - HTML5先行者学习网
         安装环境:需要安装JRE1.6NmUHTML5中文学习网 - HTML5先行者学习网

1> 到http://code.google.com/p/android-apktool/NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

     下载apktool1.3.2.tar.bz2 和apktool-install-windows-2.2_r01-3.tar.bz2 文件。NmUHTML5中文学习网 - HTML5先行者学习网
     解压两个文件,然后把解压后的文件放在一起,如:c:/apktoolNmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

2> 在系统变量PATH中添加进aapt.exe,如:;c:/apktool/aapt.exeNmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

3> 在DOS窗口下进入apktool.jar所在目录。NmUHTML5中文学习网 - HTML5先行者学习网
      执行DOS命令:apktool d -s c:/soft/xxx.apk c:/soft/source。NmUHTML5中文学习网 - HTML5先行者学习网
     命令格式:apktool d [opts] <file.apk> [dir]  中的d代表解码,[opts]代表选项,-s选项代表不解码源文件。NmUHTML5中文学习网 - HTML5先行者学习网

2、Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具Dex2Jar,NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

     该工具可以把dex文件转换成jar文件。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

     下载地址:http://code.google.com/p/dex2jar/ NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

      1> 把APK安装包中的classes.dex解压到某个目录下,如:c:/softNmUHTML5中文学习网 - HTML5先行者学习网
      2> 在DOS窗口下进入dex2jar.bat所在目录,执行DOS命令:dex2jar.bat c:/soft/source/classes.dex c:/soft/source,命令生成classes.dex.dex2jar.jar文件。NmUHTML5中文学习网 - HTML5先行者学习网

3、安装jd-gui工具,该工具可以把jar文件反编译成Java源文件NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

      下载地址:http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zipNmUHTML5中文学习网 - HTML5先行者学习网
      运行该软件,直接打开classes.dex.dex2jar.jar文件即可看到java源代码。NmUHTML5中文学习网 - HTML5先行者学习网

总结:NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

     apktool1.4.1.tar.bz2       反编译工具的jar包NmUHTML5中文学习网 - HTML5先行者学习网
     apktool-install-windows-r04-brut1.tar.bz2   windows下调用执行jar 的exe文件NmUHTML5中文学习网 - HTML5先行者学习网
     NmUHTML5中文学习网 - HTML5先行者学习网
NmUHTML5中文学习网 - HTML5先行者学习网

    1、 解压这两个文件,将apktool1.4.1中的apktool.jar拷贝到apktool-install-windows-r04-brut1目录下,此时文件有:NmUHTML5中文学习网 - HTML5先行者学习网

红色的为待反编译的apk文件NmUHTML5中文学习网 - HTML5先行者学习网

    cmd切换到该目录,执行: NmUHTML5中文学习网 - HTML5先行者学习网
    > apktool d -s queryNumber.apk  ./source 在当前目录生成source目录,下面放着资源文件NmUHTML5中文学习网 - HTML5先行者学习网

     2、解压dex2jar-0.0.7.11-SNAPSHOT.zip将classes.dex拷贝该目录,执行:NmUHTML5中文学习网 - HTML5先行者学习网
     > dex2jar class.dexNmUHTML5中文学习网 - HTML5先行者学习网
     生成classes_dex2jar.jar文件  NmUHTML5中文学习网 - HTML5先行者学习网

     里面全是.class文件NmUHTML5中文学习网 - HTML5先行者学习网

      3、打开jd-gui.exe,将classes_dex2jar.jar拖拽到jd-gui界面NmUHTML5中文学习网 - HTML5先行者学习网
       此时可以看到所有的源文件:NmUHTML5中文学习网 - HTML5先行者学习网

如何防止反编译。。。。NmUHTML5中文学习网 - HTML5先行者学习网

由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。NmUHTML5中文学习网 - HTML5先行者学习网
完全避免是不可能的,总有人能够破解你的代码。但是有几种方式来提高被反编译取代码的难度。NmUHTML5中文学习网 - HTML5先行者学习网

      1 关键代码使用jni调用本地代码,用c或者c++编写,因此相对比较难于反编译NmUHTML5中文学习网 - HTML5先行者学习网

      2 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。NmUHTML5中文学习网 - HTML5先行者学习网
        网上开源的java代码混淆工具较多,一般是用ant的方式来编译的NmUHTML5中文学习网 - HTML5先行者学习网

以上所述就是本文的全部内容了,希望大家能够喜欢。NmUHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助