APK反编译、重新打包、签名全过程 |
您所在的位置:网站首页 › app修改版本号过官方检测吗是真的吗 › APK反编译、重新打包、签名全过程 |
APK反编译、重新打包、签名全过程
前言代码查看神器jadxAPK解包打包工具apktoolAPK打包APK签名
前言
这几天突然对我手机里某个小作坊APP很感兴趣,想改一点点内容,让他不能监视我(你懂的!嘿嘿),所以把我经历的反编译到重新打包整个过程记录下来,希望对喜欢折腾这方面的同学感兴趣,也可以互相交流,增长经验。 我们平常下载的APP理论上来讲都能反编译,但并不是说你反编译了就能无限魔改了。APP都有反混淆机制,所以我们反编译看到的代码都是混淆代码,有的穿插着大量无用代码,有的将函数做了加密机制,所以读起来很困难。除非你是个狂热爱好者,一般人应该不会进行大改。 主要用到两个工具就可以完成所有工作,jadx和apktool。 代码查看神器jadx 这个神器操作非常简单,只要把你想反编译的APK拖进gui界面就行了。关于怎么样安装,请点链接: jadx下载地址。我是linux,安装好后打开bin目录下的jadx-gui界面就是下面这个样子: 安装说明直接进入官方链接: apktool官方安装页面,根据你自己的系统下载对应的版本。 首先,执行以下命令来将你要修改的apk解包: apktool d 原APK.apk -o 文件名 d代表解包,原APK.apk就是你要解包的APK,默认当前文件夹下,可以根据自己的APK位置修改。 -o代表解包输出位置,文件名自己定义,如果不写路径就是当前文件夹下。 执行完上面命令后生成一个文件夹,里面文件大致就是这个样子: 修改完你的代码后,接下来就是重新打包了,执行以下语句打包: apktool b APK文件名 -o my.apkb代表打包,APK文件名就是你要打包的整个文件名,默认当前文件夹下,可以根据自己的位置修改。 -o代表打包输出位置,默认当前文件夹下,根据自己的位置修改,my.apk为你自定义的打包后的apk名字。 至此,你已经成功90%。虽然你已经生成了自己的APK,但是它是不能安装的,因为还需要做签名。 APK签名1.keytool工具生成keystore文件 安装了JDK后,自带keytool工具,可以在命令行下输入keytool看到说明: 其中,1.keystore是别名,因为因一个证书库中可以存放多个证书,通过别名标识证书。RSA是密钥算法,可以选择的密钥算法有:RSA、DSA、EC。36500是证书有效天数,我这里相当于100年。2.keystore是当前生成的证书。命令回车后会让你填口令、姓氏、单位名称等信息,随便填就好了,最后y确认就生成了证书。类似于下面这个样子: 其中,2.keystore就是上一步生成的证书名, my_signed.apk是签名后的APK,名称自定义。my.apk是上一节重新打包的APK,1.keystore是上一步的keystore的别名。回车后根据提示输入上一步的口令就生成了签名APK:my_signed.apk。 接下来就把my_signed.apk扔到你手机上安装吧!哈哈,是不是很easy! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |