失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android 未加密 APK 反编译 重新打包

Android 未加密 APK 反编译 重新打包

时间:2018-09-02 02:15:16

相关推荐

Android 未加密 APK 反编译 重新打包

一、下载相关工具-放在同一个文件夹下(android APK反编译)

apktool.bat

https://ibotpeaches.github.io/Apktool/install/

apktool.jar

/iBotPeaches/apktool/downloads/

dex2jar-2.0.zip

/projects/dex2jar/files/

jd-gui-1.6.6-min.jar

http://java-decompiler.github.io

下载完成后如下图所示:

apktool_2.4.1.jar 重命名为 apktool.jar

dex2jar-2.0.zip 解压到当前 dex2jar-2.0 文件夹

处理完成后如下图所示:

二、反编译原始文件资源

1、将要反编译的 APK 拷贝到反编译工具文件夹下(android APK反编译)-反编译测试_1.0.apk

2、打开 cmd 进入反编译工具文件夹下(android APK反编译)

3、获取 APK 的 xml 文件以及相关原始文件资源

在第 2 步基础上执行命令:apktool d 反编译测试_1.0.apk

4、反编译原始资源文件查看

F:\android APK反编译\反编译测试_1.0 里面就是我们需要的原始资源文件

三、反编译代码

1、复制一份 APK 将拓展名改成 zip ,解压这个 zip 文件到一个新建的文件夹(反编译代码)

2、将解压后,文件中的 classes.dex 拷贝到 dex2jar-2.0 文件夹里面

3、打开 cmd 进入 dex2jar-2.0 的 classes.dex 目录

执行命令:d2j-dex2jar classes.dex

4、进入 dex2jar-2.0 查看第 3 步的结果

5、双击运行 jd-gui-1.6.6-min.jar

6、将第 4 步得到的 classes-dex2jar.jar 拖动拖入第 5 步运行的 jd-gui-1.6.6-min.jar 中

以上就是未加密 APK 反编译的流程,对于反编译后的代码,我们可以参考其写法进行自己的开发

当然,如果该 APK 做了混淆处理,那么你看到的类名、文件名和方法名都会以a,b,c....这样的命名方式命名,所以你想要找到你需要参考的代码可能会比较难顶

四、修改原始资源文件重新打包

注意,进行完上面的第二步就可以开始进行重新打包操作了

1、可修改文件

1.1、修改xml

这里可以修改 AndroidManifest.xml 文件,包括包名之类的,这样就可以在同一手机上安装多款同样的软件

可以修改 res 里面的布局文件等

修改应用名称等

1.2、修改原始资源文件

修改应用图标、应用内本地图片、raw下的音频文件等

1.3、修改 smali 文件

可以修改java文件对应的smali 文件,如果不会 smali 语法,可以先写 java 代码,然后转成 smali ,拷贝替换就行了

2、重新打包

打开 cmd 进入反编译工具文件夹下(android APK反编译)

执行命令:apktool b 反编译测试_1.0 -o newApk.apk

反编译测试_1.0 -- 是第二步反编译出的文件所在的目录

newApk.apk -- 自定义新的 apk 文件名称

执行完之后,进入文件夹(android APK反编译),会发现多了一个 newApk.apk 文件

3、执行完上面的步骤之后,获取的 newApk.apk 还不能直接安装,还需要重新签名

3.1、创建 .jks 文件,这里是使用 Android Studio 工具创建了一个 compile.jks 文件-注意路径

3.2、打开 cmd 进入反编译工具文件夹下(android APK反编译)-根据上面创建的 jks 文件

执行命令:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore compile.jks -storepass 123456 newApk.apk compile

compile.jks -- 第 3.1 步创建的 jks 文件

123456-- 创建的 jks 文件时设置的密码

compile -- 创建的 jks 文件时设置的别名

注意:执行重新编译命令可能会报:Jarsigner is not recognized as an internal or external command

需要设置 java jdk 的环境变量

如果设置之后如果还是报同样的错误,重启电脑使设置生效

4、执行完签名步骤之后,就可以安装 newApk.apk 了

如果觉得《Android 未加密 APK 反编译 重新打包》对你有帮助,请点赞、收藏,并留下你的观点哦!

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