1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > apk反编译和重新打包流程

apk反编译和重新打包流程

时间:2020-04-16 14:05:08

相关推荐

apk反编译和重新打包流程

1.工具准备

a.jdk下载,添加“...\jdk\bin”到系统环境变量Java Downloads | Oracle b.下载apktool.jarApktool - A tool for reverse engineering 3rd party, closed, binary Android apps.

2.反编译

java-jarapktool_2.6.1.jar (拖入你的apktool)d+(拖入你的.apk)

格式为:java-jarapktool的名字d(反编译)要解包的apk-o(输出)文件名

反编译出来的文件目录 其中,res文件夹中存放着该app所有的资源(xml,布局文件和图片);smali文件中存放的是app的所有代码,但代码是smali语言格式,smali语言是Android虚拟机所使用的寄存器语言。还有就是 Androidmanifest.xml功能清单文件一目了然,可以直接查看。 注意: 1.将apk文件重命名为.zip格式并解压,androidmanifest会出现乱码; 2.解压后,classes.dex文件中存放在着所有代码,但需要用特殊工具(dex2jar\jd-gui)进行查看,解压操作一般用于获取资源图片快捷 3.如果就查看代码而言,你可以用jadx工具直接导入apk查看源码 如果你能看懂smali语言,可以修改smail中的一些静态成员变量,这里简单对androidManifest.xml某个activity做修改,然后重新打包

3.重新打包

java -jar .\apktool.jar b .\打包的文件夹\ 格式为: java-jarapktool的名字b(打包)要打包的文件夹名字
重新打包后,反编译目录下会出现dist目录以及其中未签名的apk文件

4.生成签名证书(造一个简单签名文件)

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 格式 36500 :100年 ; test.keystore :签名后的文件名 填写密码,对应名称(记住密码,没记住就重造一个文件) 随时查看证书keytool -list -v -keystore test.keystore Enter keystore password: //输入密码,回车

5.签名:

jarsigner -verbose -keystore E:\反编译\test.keystore-signedjarshop111.apk E:\反编译\shop-release\dist\shop-release.apktestalias 格式: jarsigner -verbose -keystore 签名 -signedjar签名文件后的文件名 需要签名文件证书里alias别名

6.遇到问题:

1.jarsigner不是内部命令? 重装jdk,确保安装目录bin里有jarsigner.exe 2.[INSTALL_FAILED_INVALID_APK: Failed to extract native libraries?安装不能提取native库 a.回到AndroidManifest.xml中,把android :extractNativeLibs="false"改为true(工程对so库进行压缩,安装时解压)重新打包 b.如果原因是由于apktool在回编译apk包是没有进行内存对齐,可以使用zipalign工具再次对齐已经签名后的apk ​​​​​​​ 参考链接: jdk下载和环境变量配置 apk反编译命令解释 反编译后查看源码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。