首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >反编译一款APP然后重新打包(MacOS环境)

反编译一款APP然后重新打包(MacOS环境)

原创
作者头像
niceyoo
修改2020-07-15 10:04:04
1.7K0
修改2020-07-15 10:04:04
举报
文章被收录于专栏:niceyooniceyoo

最近公众号后台有小伙伴留言,怎么把一款APP改成自己的信息呀,咳咳,这又来送题材了,今天水一把APP反编译+回编译,文中会针对一款APP进行简单的修改信息,问问题的小伙伴还不火速右上角支持一下。

MacOS跟Windows我是分开写的,怕你说平台不一致就打退堂鼓了。

MacOS:https://www.cnblogs.com/niceyoo/p/13296260.html

Windows:https://www.cnblogs.com/niceyoo/p/13303136.html

一、下载jadx并编译

下载地址:https://github.com/skylot/jadx/archive/master.zip

下载后进入文件目录执行./gradlew dist

通过如上指令,可以帮我们打包出 build 目录,接下来就全靠这个build目录干 ”大事“ 了,我们来看看这个目录下的文件:

二、安装apktool

接下来安装今天的第二个工具——apktool

下载链接:https://ibotpeaches.github.io/Apktool/install/

1、下载apktool文件

打开网址后找到macos节点,对着 wrapper script 右键

弹窗保存时一定要选择所有文件格式,注意,没有后缀,没有后缀。

2、下载apktool.jar

点击macos节点上的 (find newest here)

进入该界面后,查看右侧jar下载列表,当然下载最新文件:

3、配置apktool执行权限

至此,我们下载了两个文件,我们把这两个文件放到 /usr/local/bin 目录下

然后在该目录控制台执行命令:chmod +x apktool.jar apktool

cd /usr/local/bin

chmod +x apktool.jar apktool
4、测试apktool权限

在终端执行如下指令:apktool,只要打印内容说明没问题

三、开始反编译APP

我们找个简单点的APP,有人提议用我的涂涂影院,出门右拐,请私下自己尝试,我怎么会公开处刑自家孩子。

某视频APP:https://niceyoo.lanzous.com/iCi92eksqjc

1、反编译

反编译用到的是第二个下载的工具—apktool,我们先下载上方链接中的app,然后在该文件目录的控制台下执行如下指令:apktool d 名称.apk

apktool d 一个TV.apk

d,代表反编译,b代表回编译,不要记混。

我们简单看一下这个目录:

如图,其中,res文件夹下存放的是反编译出来的所有资源,smali文件夹下存放的是反编译出来的所有代码,AndroidManifest.xml则是经过反编译还原后的manifest文件。

smali文件夹下的文件smali文件使用的是Android虚拟机所使用的寄存器语言,如果看的懂smail文件的话,就可以修改源代码的逻辑了,比如增加一个图片、增加一行文字等等都是修改的smail文件;

在这之前我们得看到代码才行,不然都不知道在哪改,改到哪,那么接下来就是去看APP的源码了,所以这就用到第一个安装的软件了—jadx

2、查看源码数据

需要用到第一个工具—jadx,进入 buil/jadx/bin 目录。接下来的指令就是基于这4个文件来执行的,但是这个路径太长了,干脆我们把它加入到macos全局环境变量中:

vi ~/.bash_profile

添加如下格式内容:

export PATH=$PATH:/Users/我是路径,请自行修改/jadx/build/jadx/bin

接下来我们复制一份《一个TV.apk》,然后将复制的apk后缀改成zip,得到如下:

进入 《一个TV的副本》,这一步主要是想得到 classes.dex 文件,该文件是获取源码的重点,接下来我们在该目录控制台执行如下指令:

jadx-gui classes.dex

通过jadx-gui工具源码是看到了,具体代码细节就不带着大家一块看了;可能有小伙伴会好奇,怎么没看到实质性的源码呀,别着急,再执行试试:

jadx -d out classes.dex

执行该命令,反编译后会把源码放入out文件夹下(如果out不存在它会自动创建)

补充:这一小节的目的就是为了使用jadx-gui可视化界面查看app的源码,小伙伴千万不要混了,主要的、以及接下来要操作的还是在第一小节反编译出来的代码。

3、魔改数据

代码也看到了,本来计划这篇就带大家修改源码数据,但是为了照顾大部分小伙伴,接下来就只修改一下APP名称,然后重新打包APP,下一篇补充:修改布局 + 修改smali代码

我们再回到第一节使用apktool反编译出来的代码,找到根目录的AndroidManifest.xml,修改文件中的label标签对应的string.xml文件中的值,这次我们简单粗暴点,直接修改内容吧:

修改完记得保存,然后我们就开始回编译了。

4、回编译APP

退回到 《一个TV》 文件夹目录,执行如下指令apktool b 文件夹名称

apktool b 一个TV

执行完该命令后,会在 《一个TV》 文件夹下生成一个 dist 目录,目录下有个app... 咳咳别激动,还有最后一步:

5、应用签名

关于应用签名,说麻烦也不麻烦,稍微懂点Android的小伙伴,①可以通过Android Studio或者直接命令行生成签名文件;②将apk和签名文件放在同一个目录,然后再终端执行 jarsigner 代码;

详细的我就不啰嗦了,今天为照顾大多数小伙伴,介绍一个工具 Android Crack Tool

下载链接:https://github.com/Jermic/Android-Crack-Tool

下载安装后,将上边得到的app直接拖进源文件中:

操作也简单,选择 「签名APK」 按钮,然后点击 「执行」 按钮就可以了:

执行后生成的 《一个TV-S.apk》 就是我们最终要安装测试的app了,安装试一下:

其实成功了,就是名称太长 「niceyoo博客」 没显示出来,ok,下一篇带大家深一步魔改APP。

小伙伴们不要慌,你慌我也慌,来都来了,关注一下,交个朋友。

本文首发于博客园:https://www.cnblogs.com/niceyoo/p/13296260.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、下载jadx并编译
  • 二、安装apktool
    • 1、下载apktool文件
      • 2、下载apktool.jar
        • 3、配置apktool执行权限
          • 4、测试apktool权限
          • 三、开始反编译APP
            • 1、反编译
              • 2、查看源码数据
                • 3、魔改数据
                  • 4、回编译APP
                    • 5、应用签名
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档