只需三步--轻松反编译Android Apk文件
2015-12-20 12:17
316 查看
安卓程序是通过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
一、反编译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
相关文章推荐
- 两种方式去掉Android状态栏和标题栏
- Android获取服务器Json数据与Json的解析
- Android 简单的记事本
- 创建Android项目及常见错误解决
- android 自己定义开关(SwitchButton)
- 关于Android SDK Manager无法更新的解决办法
- 关于无法下载android开发工具的解决方法
- Android proguard 详解
- 关于Android SDK Manager更新速度慢的解决方法
- Android Socket通信详解
- Android中数据的存储操作
- Android TextUtils的常用方法
- [CAQ4]ImageView宽度固定,高度自适应的实现方式
- Android - 设置ImageView为全屏显示
- Android应用开发基本流程及测试运行
- android fragment
- Android内核之FrameWork学习
- Android学习笔记(22):AdapterView与Adapter
- 喝酒不骑马的Android自学日记(9)-Spinner的实例
- 从一个动漫设计师的梦想到android软件开发工程师的转变