APK反编译

使用工具:
apktool 使用的是smali(能够反编译成dex / smali (自带smali))
dex2jar (把dex转jar)
jd-gui (把jar转class,查看class文件,某些类看不到)

反编译步骤:
1、使用apktool 解压apk:
命令:apktool d -s -f test.apk
或者:apktool d -f test.apk (-s 的区别在于生成的文件,有-s则生成classes.dex文件,没有-s则生成的是smali文件)

2、把生成的classes.dex文件生成jar
windows命令:d2j-dex2jar.bat classes.dex
mac命令:d2j-dex2jar.sh classes.dex

3、查看源码
打开jd-gui工具,直接把刚才生成的 jar 文件拖进来即可查看(可能某些apk有些类无法查看,工具问题,可以通过smali来查看)

apktool解包问题:

Caused by: java.io.IOException: Cannot run program “C:\Users\Administrator\ShakaApktool\windows-x86\bin\aapt.exe”: CreateProcess error=206, 文件名或扩展名太长。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:485)
… 13 more
Caused by: java.io.IOException: CreateProcess error=206, 文件名或扩展名太长。
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:385)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
… 15 more
APK 编译失败,无法继续下一步签名!

解决:apktool 2.2.1版本问题:使用其他最新版本

dex2jar问题:
生成一个error.zip文件,某些apk做了防反编译,导致dex2jar出错
解决:通过smali来查看

更多问题:
http://www.360doc.com/content/15/0620/08/9200790_479347834.shtml

如何防止反编译:
Android DEX安全攻防战:https://bbs.pediy.com/thread-177114.htm

感谢下面两位大大
https://bbs.pediy.com/thread-177114.htm
http://www.360doc.com/content/15/0620/08/9200790_479347834.shtml

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值