安卓反编译工具的应用
2016-05-07 19:02
148 查看
理论来说,反编译别人的apk不是很好,但是单纯的用来学习别人的编程思想,用用反编译工具,也还说得过去。这里介绍一下几个常用的反编译工具,纯粹弥补自己记忆短板。
5、apktool 6、ApKIDE
准备工作:将xxx.apk后缀改为zip,即xxx.zip,解压,得到里面的classes.dex文件,这是编译后的源码文件。下面是各个工具介绍。
(1) dex2jar、jd-gui.exe
此工具可用来查看apk源码。可将classes.dex放到dex2jar.bat通目录,假设为
e:\dex2jar\classes.dex。命令行:dex2jar.bat classes.dex,在同目录得到
classes_dex2jar.jar文件,使用jd-gui.exe即可打开此文件,查看源代码
(2) baksmali.jar / smali.jar
可用来修改源代码,只不过都是smali语法格式。
解包classes.dex命令:java -jar baksmali.jar
-o out/ classes.dex
out/为输出路径,此处笔者的classes.dex与baksmali.jar smali.jar同一目录
打包classes.dex命令:java -jar smali.jar
out/ -o classes.dex,out/代表上面解包的文件夹。
baksmali.jar解包后,可修改smali源代码,然后smali.jar将修改好源代码打包成classes.dex,再将此classes.dex覆盖到apk解压后的文件夹中,最后将解压文件夹再压缩为zip格式,压缩完,后缀改为apk。注意这里的压缩,由于压缩算法原因,笔者用360解压软件以及下载的其他几个压缩软件,再压缩后会使得得到的apk不完整,提示安装包损坏。但采用手机上安卓版RE文件管理器,进行压缩就正常了。
(3) APKSign.exe
上面压缩完后apk,没有签名所以不能安装。采用此工具可以对上述apk进行自动签名。
(4) apktool
此工具同baksmali.jar一样用来解包得到smali源代码。
cmd命令:apktool d xxx.apk out
xxx.apk为apk路径,out为输出路径
apktool网上有牛人开发的集成版,功能不仅仅限于这里的解包,笔者这里只是一个简版。
(5) ApKIDE
终于介绍到这款超级软件了,这款软件集成了上述解包,打包,压缩,签名等功能,另外还有logcat日志信息等等。中文名:改之理。好奇怪而又有个性的名字。嫌上面操作麻烦的,推荐用这款软件,不用记忆命令行语法了,完全傻瓜式操作。一款软件,轻轻松松反编译apk。
常用反编译工具:
1、dex2jar ,2、baksmali.jar / smali.jar 3、jd-gui.exe 4、APKSign.exe5、apktool 6、ApKIDE
准备工作:将xxx.apk后缀改为zip,即xxx.zip,解压,得到里面的classes.dex文件,这是编译后的源码文件。下面是各个工具介绍。
(1) dex2jar、jd-gui.exe
此工具可用来查看apk源码。可将classes.dex放到dex2jar.bat通目录,假设为
e:\dex2jar\classes.dex。命令行:dex2jar.bat classes.dex,在同目录得到
classes_dex2jar.jar文件,使用jd-gui.exe即可打开此文件,查看源代码
(2) baksmali.jar / smali.jar
可用来修改源代码,只不过都是smali语法格式。
解包classes.dex命令:java -jar baksmali.jar
-o out/ classes.dex
out/为输出路径,此处笔者的classes.dex与baksmali.jar smali.jar同一目录
打包classes.dex命令:java -jar smali.jar
out/ -o classes.dex,out/代表上面解包的文件夹。
baksmali.jar解包后,可修改smali源代码,然后smali.jar将修改好源代码打包成classes.dex,再将此classes.dex覆盖到apk解压后的文件夹中,最后将解压文件夹再压缩为zip格式,压缩完,后缀改为apk。注意这里的压缩,由于压缩算法原因,笔者用360解压软件以及下载的其他几个压缩软件,再压缩后会使得得到的apk不完整,提示安装包损坏。但采用手机上安卓版RE文件管理器,进行压缩就正常了。
(3) APKSign.exe
上面压缩完后apk,没有签名所以不能安装。采用此工具可以对上述apk进行自动签名。
(4) apktool
此工具同baksmali.jar一样用来解包得到smali源代码。
cmd命令:apktool d xxx.apk out
xxx.apk为apk路径,out为输出路径
apktool网上有牛人开发的集成版,功能不仅仅限于这里的解包,笔者这里只是一个简版。
(5) ApKIDE
终于介绍到这款超级软件了,这款软件集成了上述解包,打包,压缩,签名等功能,另外还有logcat日志信息等等。中文名:改之理。好奇怪而又有个性的名字。嫌上面操作麻烦的,推荐用这款软件,不用记忆命令行语法了,完全傻瓜式操作。一款软件,轻轻松松反编译apk。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories