Android apk反编译 重打包 重签名 对齐

本文详细介绍了两种Android APK的反编译、重打包、重签名及对齐的方法。首先,使用apktool进行反编译和重新打包,然后通过keytool生成签名,jarsigner进行重签名,最后用zipalign进行对齐。另一种方法涉及apktool、baksmali和smali工具,先使用apktool反编译,接着用baksmali将dex文件解析为smali,再用smali重新打包,后续步骤与第一种方法相同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      关于反编译,首先,请阅读http://blog.csdn.net/jltxgcy/article/details/17141127

      第一种方式:只使用apktool

       apktool,xxx.apk放在了同一个目录下

      反编译:./apktool d -f xxx.apk,生成了xxx文件夹

      重新打包:./apktool b -f xxx(文件夹),生成了xxx/dist,里面存放着重新生成的apk,但是没有签名

       cd xxx/dist

      生成签名:keytool -genkey -keystore ks2.keystore -keyalg RSA -validity 10000 -alias ks2.keystore 

      重签名:jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore ks2.keystore(key在硬盘上的位置) -signedjar xxx_signed.apk xxx.apk ks2.keystore(别名) 

      对齐:zipalign -v 4 xxx_signed.apk xxx_align.apk


      第二种方式:使用apktool和bakmail,smail工具

       baksmail和smail工具下载地址:https://bitbucket.org/JesusFreke/smali/downloads,baksmali源码地址为https://github.com/JesusFreke/smali

       apktool ,smali-2.0.3.jar,baksmail-2.0.3.jar,xxx.apk放在同一目录下

       反编译:

       (1)./apktool d -f -s xxx.apk,生成了xxx文件夹,但是文件夹classes.dex没有解析成smali

       apktool的命令参数详解:可以在Ubuntu下敲这个命令,会出来帮助文档

       (2)java -jar baksmali-2.0.3.jar -o baksmailout  xxx/classes.dex

      重新打包:

       (1)java -jar smali-2.0.3.jar baksmailout/ -o xxx/classes.dex

       (2)./apktool b -f xxx(文件夹)

       重签名和对齐和上面类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值