代码改变世界

只需三步--轻松反编译Android Apk文件

2015-12-20 12:17  hduhans  阅读(709)  评论(0编辑  收藏  举报

  安卓程序是通过java语言进行编写的,可以很容易进行反编译。很多apk文件被反编译后再二次打包,就成了自己的产品,很是流氓。下面我们来看看如何进行apk的反编译,以及常用的防反编译手段。

一、反编译APK文件

1、第一步

   将apk文件在pc上进行解压,解压后拷贝classes.dex文件。

2、第二步

   下载并解压dex2jar工具,打开命令行并进入所在目录,执行命令:d2j-dex2jar.bat classes.dex D:\jarpath,会在D:\jarpath目录下生成classed-dex2jar.jar文件。

3、第三步

   下载JD-GUI反编译神器,双击打开后,将classed-dex2jar.jar拖入JD-GUI中,然后可以尽情的观赏源代码了,如图1。

图1 apk文件反编译后的源码

  可以看出图中的草根投资apk代码是经过混淆处理的。

  还可以利用apktool来进行反编译操作,生成的文件为smali安卓中间代码,可以利用smali2java工具翻译成java代码进行查看。

二、防止反编译的方法

1、伪加密

   apk文件在安卓系统下就是可执行文件,在pc下就是压缩文件,伪加密技术就是把apk文件进行加密防止pc环境下解压,但不影响安卓系统的使用。缺点就是,上传安卓市场可能会受影响,因为市场审核人员可能需要解压apk文件进行查看。

   加密步骤参考:http://bbs.pediy.com/showthread.php?p=1195662&mode=threaded

2、代码混淆花指令

   代码混淆也花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。

   操作步骤参考:http://blog.csdn.net/lovexjyong/article/details/24652085