apk反编译

apktool:

打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:

apktool.bat d -f test.apk -o test    
apktool -f [待反编译的apk] -o [反编译之后存放文件夹] 

1.smail文件转Java,考虑先破解classes.dex文件为Java源码,修改后用smali工具转为smali文件(转化后生成的smali文件夹打开,其中的文件目录与apktool编译后的.*/smali/(classes.dex存放的所有文件夹)一致).

2.或以上从build/apk/classes.dex被修改后的classes.dex替换

apktool反编译打开smali文件夹:

smali工具转化后输出的文件目录: 

 

最后替换apktool反编译出的smali文件夹,打包签名。

Android将jar包打包成dex文件:

进入sdk/build-tools/27.0.3/lib目录,将jar包dex.jar拷贝到该目录下,在空白处按住shift键并点击右键,选择“在此处打开命令行”输入命令以下命令(注意其中的空格):

java -jar dx.jar --dex --output = jar.dex classes.jar


jar.dex是输出文件名,dex.jar是需要转换的jar包的名字。
dex转smail文件:

将dex文件编译成smali文件,我们需要下载baksmali.jar文件,下载baksmali.jar文件之后,就可以通过以下命令将dex文件编译成smali文件了:

java -jar baksmali.jar smaliTest.dex
复制代码

如:你要编译的dex文件是testSmali.dex则输入的命令是

java -jar baksmali.jar testSmali.dex

如果编译成功,此时会生成一个out目录,out目录里面的文件就是smali文件了。有时可能会遇到下面的错误

Exception in thread "main"

com.beust.jcommander.MissingCommandException: Expected a command, got classes.dexat

com.beust.jcommander.JCommander.parseValues(JCommander.java:725)at

com.beust.jcommander.JCommander.parse(JCommander.java:304)at

com.beust.jcommander.JCommander.parse(JCommander.java:287)at org.jf.baksmali.Main.main(Main.java:90)

这时你只要将上面的命令换成

java -jar baksmali.jar disassemble testSmali.dex

即可解决。

打包:

apktool b test new.apk

签名:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值