欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android反编译,重新打包教程

程序员文章站 2022-04-27 10:19:19
公司之前买了一套系统,由于商务原因其中一个广告的app,卖家不提供源码。上面的广告、logo和语音播报信息都是卖家的(不更改相当于变是给卖家做宣传了)。虽然app的功能比较简单,但...

公司之前买了一套系统,由于商务原因其中一个广告的app,卖家不提供源码。上面的广告、logo和语音播报信息都是卖家的(不更改相当于变是给卖家做宣传了)。虽然app的功能比较简单,但是因为里面涉及一些后台的接口。自己写一个稍微有点麻烦。而且要改的内容也不多,只是替换掉一些图片和文本。所以采用的方案是:反编译>重新打包(不推荐我这种行为)。这里姑且当成总结写下来。

配置apktool环境:

Android反编译,重新打包教程

反编译apk包

1、将要反编译的apk,移动到apktool.bat 同一目录,cd到这个目录,执行命令:apktool.bat d -f test.apk

Android反编译,重新打包教程

2、反编译后文件

Android反编译,重新打包教程

3、Ⅰ. 替换图片、logo,在res文件中找到相应资源覆盖即可;

Ⅱ. 修改文本信息,如果是写在string.xml直接修改,如果是写在代码里面需进行如下步骤:

⑴ 下载dex2jar和jd-gui

⑵ 将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件,将获取到的classes.dex放到之前解压出 来的工具dex2jar 文件夹内,在命令行下定位到dex2jar.bat所在目录,输入dex2jar.batclasses.dex,效果如下:

Android反编译,重新打包教程

⑶ 使用下载好的jd-gui工具,打开classes_dex2jar.jar,效果如下:

Android反编译,重新打包教程

⑷ 搜索找到要修改的文本的.class文件和所在的方法

Android反编译,重新打包教程

⑸ 并找到同名的.smali 文件,因为.smali文件中文本采用unicode编码。需使用sublime打开,搜索文本unicode编码替换成要修改文本的unicode即可:

Android反编译,重新打包教程

注:unicode<>中文转换工具

重新签名打包

1.回编译apkapktool b filename -o test.apk

Android反编译,重新打包教程

2、重新打包的apk,是没有签名的,找个工具进行签名:

Android反编译,重新打包教程