Android逆向常用工具介绍及优化

Android逆向工程常用工具
-. jadx https://github.com/skylot/jadx
-, apktool https://github.com/iBotPeaches/Apktool
-. idea 最新版本6.8绿色版本百度云下载 https://pan.baidu.com/s/1kUQx8Zt

本文主要介绍这三种最常用的工具的使用及优化

一.jadx

官网的套路写的十分清楚,大致分为三步走

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

克隆编译之后可以在build之后进行使用反编译apk中的dex文件
这里贴一篇详细介绍 http://blog.csdn.net/sp6645597/article/details/51319413
类似的使用的例子很多,想必大家也都知道
这里关于jadx介绍介绍一种新手头疼的问题:java.lang.OutOfMemoryError
反编译稍微大一点的apk都会卡死在半路,点击没反应,关也关闭不了
然后google一下 http://blog.zhaiyifan.cn/2016/02/09/android-reverse-1/
在这里发现了结果,但是按照上面所说的并不能修改成功
原因是 windows和linux的平台语法并不一样,虽然都是脚本启动,但一个是bat脚本方式的启动,一个是shell方式的启动
解决问题的具体原因在这里:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
感觉上面画的还是挺全面的,在jadx中作者其实已经为我们预留出了解决此问题的配置选项 DEFAULT_JVM_OPTS 我们只需要配置这个选项即可
linux (修改build后的文件  /build/bin目录下的jadx和jadx-gui)如下

# Add default JVM options here. You can also use JAVA_OPTS and JADX_GUI_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS="-server -Xms2048m -Xmx8192m -XX:PermSize=1024m -XX:MaxPermSize=2048m"

windows(修改build后的文件  /build/bin目录下的jadx.bat和 jadx-gui.bat))如下:

@rem Add default JVM options here. You can also use JAVA_OPTS and JADX_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=-server -Xms2048m -Xmx8192m -XX:PermSize=1024m -XX:MaxPermSize=2048m

当然我这里配置的适中,如果感觉电脑的配置比较好的情况下可以配置的更好一点

二.apktool

https://github.com/iBotPeaches/Apktool
apk官网也写的十分清楚,编译apktool源码只需要简单的几步

Requirements
JDK (7 or 8). No OpenJDK
git
Build Steps
We use gradle to build. It’s pretty easy. First clone the repository.
git clone git://github.com/iBotPeaches/Apktool.git
cd Apktool
For steps 3-5 use ./gradlew for unix based systems or gradlew.bat for windows.
[./gradlew][gradlew.bat] build fatJar - Builds Apktool, including final binary.
Optional (You may build a Proguard jar) [./gradlew][gradlew.bat] build fatJar proguard
After build completes you should have a jar file at: ./brut.apktool/apktool-cli/build/libs/apktool-xxxxx.jar

这里apktool的各种任务都已经为大家写好了,导入as或者idea中即可编译源码,很多时候我们都需要去修改源码来达到我们去壳的目的:

你可能感兴趣的:(Android逆向常用工具介绍及优化)