apk反编译 简述

#准备工具#
注:以下AS=Android Studio ##Smalidea+Android Studio调试smali代码## github地址
下载地址 (下载最新版baksmali, smali, smalidea) 安装
打开Android Studio:Tools>Android>SDK Manager>Plugins>Install plugin from disk...>——选择下载好的smalidea-0.03.zip

##APKTOOL##
下载地址
安装说明文档地址

#将反编译得到的Smali代码导入到Android Studio并配置调试端口#
##用ApkTool或baksmali得到smali代码##

java -jar baksmali-2.2b4.jar help
java -jar baksmali-2.2b4.jar disassemble myapp.apk -o ./projects/myapp/src

    apktool d <file.apk> 反编译到当前文件夹
    apktool d <file.apk> -o <dir> 反编译到指定文件夹
    apktool d –f <file.apk> <dir>  强制覆盖已存在文件

用文本编辑工具打开AndroidManifest.xml,在application节点中设置属性android:debuggable="true"
添加调试等待

invoke-static {}, Landroid/os/Debug;->waitForDebugger()V //可以添加到应用启动的onCreate方法中

打包文件

    apktool b -d <dir> -o <file.apk>

使用keytool和jarsinger给apk重新签名

keytool -genkey -v -keystore my-keystore.keystore -alias name_alias -keyalg RSA -validity 10000
 (validity为有效期,单位是天)
jarsigner -verbose -keystore <path of my-keystore.keystore> <path of apk>  alias_name
zipalign -f -v 4 <your.apk >  <your_aligned.apk>

参考
【Android安全】使用jarsigner命令对apk进行重签名
使用keytool和jarsigner为jar签名

##将反编译得到的Smali代码导入Android Studio## 打开AS>import project>选择Smali文件夹> 一路下一步即可
右键project>Mark Directory As..>Sources Root
File>Project Structure..>选择对应的SDK
依次选择Run>Edit Configurations...>+>Remote>输入调试进程的名字(可选),填写一个未被占用端口(8700)>ok
链接手机,打开USB调试

adb install <file.apk>

Tools>Android>Android Device Monitor(可以通过一个完整的Gradle项目打开)
选择Devices>Thread>选中8700端口应用
返回AS,设置好断点,点击debug按钮,开始调试

转载于:https://my.oschina.net/rc6688/blog/833265

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值