Android反编译

前言:进行Android应用安全评估时,反编译是极为重要的手段,常规的修改代码逻辑绕过安全判断是一项很重要的测试,其次还有硬编码问题(各种密钥)。下面我们来简单看一下Android反编译。

dex2jar反编译

工具:

dex2jar-0.0.9.15

jd-gui-0.3.6

dex2jar 是一个能操作Android的dalvik(.dex)文件格式和Java的(.class)的工具,而jd-gui是一款图像化查看jar的工具。

每一个apk文件都包含一个classes.dex文件,只需将此文件拷出apk包,使用命令:dex2jar.bat classes.dex


我们将转换后的classes_dex2jar.jar文件使用jd-gui打开,如下:


这里我们看到的就是java源码,即使存在部分代码不可读,我们也可以从中看到很多业务逻辑,便于之后的smali代码的分析。

apktool反编译

工具:

apktool2.0.2

下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.0.2.jar


环境部署:

0x00 安装java环境
apktool1.x需要java1.6
apktool2.x需要java1.7

0x01 创建apktool.bat文件
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
java -jar -Duser.language=en "%~dp0\apktool2.0.2.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9

0x02 下载apktool.jar、aapt

0x03 将这些文件放入c:/windows下即可

<strong>注</strong>:这里我放了多个apktool的版本进windows目录,所以在bat文件中标识了版本以便于切换

decode/build命令:

decode:apktool d name.apk

build:apktool b dirname new.apk

如果出现报错,可切换几个版本的apktool进行操作,build后的apk还需要签名才能使用

常见问题

1. error: Error retrieving parent for item: No resource found that matches the given name '@android:syle/Widget.WebTextView' 我使用的是apktool2.0.2进行decode,build时报的错,于是我换成用apktool1.5.2来build就行了
2. brut.androlib.AndrolibException: Could not decode arsc file 使用apktool1.x版本报的错,直接换用apktool2.0.2就行了
3. 此外还推荐使用ApktoolGui v2.0 Final(貌似无法只用2.x版本的apktool)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值