阅读 188

Android反编译工具使用

apktool

功能:主要用于反编译项目中的资源文件,以及将字节码反编译成Smali语言

**下载地址:**ibotpeaches.github.io/Apktool/ins…

**运行环境:**Java 8

使用

反编译

$ apktool d test.jar
// 反编译jar文件

$ apktool decode test.jar
// 反编译jar文件

$ apktool d test.apk
// 反编译apk文件

$ apktool decode test.apk
// 反编译apk文件

$ apktool d test.apk -o demo
// 反编译apk文件 指定输出目录
复制代码

打包

$ apktool build test
// 打包jar文件,输出位置test/dist/

$ apktool b test
// 打包apk文件,输出位置test/dist/

$ apktool b .
// 打包apk文件 输出位置./dist

$ apktool b bar -o new_bar.apk
// 打包apk文件 指定输出位置
复制代码

dex2jar

功能:将dex文件转为可阅读的jar文件

**下载地址:**github.com/pxb1988/dex…

**运行环境:**Java 8

使用

$ d2j-dex2jar.sh test.dex
// 将dex文件转为jar文件(dex文件可以手动解压apk获取)

$ d2j-dex2jar.sh -f test.apk
// 将apk内的dex文件提取后转为jar文件
复制代码

jd-gui

功能:用于阅读和修改jar文件或class文件

**下载地址:**java-decompiler.github.io

**运行环境:**Java 8(注意:不支持openJDK)

使用

直接打开jar文件或class文件

jadx-gui

功能:用于阅读和修改dex文件,并且可以很方便的在java代码和Smali代码间切换

**下载地址:**github.com/skylot/jadx

**运行环境:**Java 8(注意:不支持openJDK)

使用

直接打开dex文件

jbe

功能:编辑Java字节码

**下载地址:**set.ee/jbe

**运行环境:**Java 1.5+(注意:不支持openJDK)

使用

打开class文件(File——Open class file)

左边可以看到该类的常量池(Constant Pool)、字段(Fields)、方法(Method)等信息

点击XXX方法,选择[0] Code查看该方法的字节码

右边可以看到方法的字节码,点击Code Editor可编辑字节码

jad

功能:反编译class文件

**下载地址:**www.javadecompilers.com/jad

**运行环境:**Java 1.5+(注意:不支持openJDK)

使用

jad本身没有ui界面,所以为了方便使用,可以将其添加到系统path变量中,之后便可以直接使用jad命令进行反编译操作

$ jad test.class
复制代码

操作成功后,会在当前class文件目录下生成一个同名的.jad文件,直接用文本编辑器打开即可进行阅读

luyten

功能:用于阅读和修改jar文件或class文件

**下载地址:**github.com/deathmarine…

**运行环境:**Java 1.8(注意:不支持openJDK)

使用

直接打开jar文件或class文件

AndroidKiller

功能:集成了前面工具的所有功能,用于直接对apk文件进行反编译、修改、打包等

**下载地址:**www.pd521.com/thread-136-…

**运行环境:**Java 1.8、apktool

使用

自带的是ShakaApktool,很久没有更新了,所以我们要更换为apktool,按照下图选择自己的apktool路径,参数选项可不填

直接点击打开,选择一个apk文件

工程信息窗口

左侧有apk的入口页面、以及版本信息、四大组件列表、权限信息等

右侧则是代码编辑窗口、日志信息、方法引用等

这里只演示基本使用,更多功能还请自行探索

IDA_Pro

功能:IDA Pro能够对so文件进行反汇编,从而将二进制代码转化为汇编语言,利用IDA Pro神奇的F5功能还能将汇编语言反编译成c/c++程序

**下载地址:**www.hex-rays.com/products/id…

**运行环境:**windows 7+、vc2013、vc2015

使用

根据自己电脑的位数选择打开ida.exe或者ida64.exe,之后选择新建打开so文件

打开后进入工程页面

左侧可以看到函数名称,选中函数后,按下F5还可以查看c++伪代码

这里只演示基本使用,更多功能还请自行探索

文章分类
Android
文章标签