zoukankan      html  css  js  c++  java
  • 反编译一款APP然后重新打包(Windows环境)

    最近有小伙伴私信我,怎么把一款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.bat dist文件

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

    二、安装apktool

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

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

    1、下载apktool文件

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

    弹窗保存时一定要使用bat格式,默认就是bat格式。

    2、下载apktool.jar

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

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

    3、配置apktool执行权限

    至此,我们下载了两个文件,我们把这两个文件放到 C://Windows 目录下,这个过程等价于在系统环境变量Path中配置。

    4、测试apktool权限

    随便找个命令行执行如下指令:apktool,只要打印内容说明没问题

    三、开始反编译APP

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

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

    1、反编译

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

    apktool d 一个TV.apk
    

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

    执行后我们得到了一个文件夹《一个TV》,我们简单看一下这个目录:

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

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

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

    2、查看源码数据

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

    进入 《一个TV的副本》,这一步主要是想得到 classes.dex 文件,该文件是获取源码的重点。

    然后需要用到第一个工具—jadx,进入 buil/jadx/bin 目录。双击执行 jadx-gui.bat 文件:

    ii

    在弹出的窗口选择《一个TV-副本》中的 classes.dex 文件:

    然后就可以看到如下的源码视图了,具体代码细节就不带大家一块看了

    为了方便直接在控制台使用,大家可以将 jadx 的目录配置到系统环境变量中:

    可能有小伙伴会好奇,怎么没看到实质性的源码呀,别着急,进入《一个TV-副本》文件夹控制台执行:

    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... 咳咳别激动,还有最后一步:

    image-20200714230119393

    5、应用签名

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

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

    下载链接:https://niceyoo.lanzous.com/iWKoBem1atg

    下载解压后,执行ApkToolkit.exe文件,点击按钮签名.apk,选择上方回编译生成的APPs:

    签名完成后,会在根目录生成dist一个TV.S.apk文件:

    我们将它装到手机上,安装试一下:

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

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

  • 相关阅读:
    记一道乘法&加法线段树(模版题)
    2021CCPC网络赛(重赛)题解
    Codeforces Round #747 (Div. 2)题解
    F. Mattress Run 题解
    Codeforces Round #744 (Div. 3) G题题解
    AtCoder Beginner Contest 220部分题(G,H)题解
    Educational Codeforces Round 114 (Rated for Div. 2)题解
    Codeforces Global Round 16题解
    Educational Codeforces Round 113 (Rated for Div. 2)题解
    AtCoder Beginner Contest 182 F
  • 原文地址:https://www.cnblogs.com/niceyoo/p/13303136.html
Copyright © 2011-2022 走看看