apk反编译 删减资源并且打包(完整版) 您所在的位置:网站首页 Android按键精灵 apk反编译 删减资源并且打包(完整版)

apk反编译 删减资源并且打包(完整版)

2023-10-26 18:14| 来源: 网络整理| 查看: 265

我从网上查了很多资料 发现没有一个资料能让鄙人安满意啊

都是东拼西凑的哦

好在黄天不负有心人 我们开始吧 这文章并不反编译代码哦 看好了哦

一、准备必要工具

  工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具

1.1、使用工具 apktool (资源文件获取) dex2jar(源码文件获取)jd-gui  (源码查看) 1.2、工具介绍

  apktool  

         作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

  dex2jar

         作用:将apk反编译成java源码(classes.dex转化成jar文件)

  jd-gui

         作用:查看APK中classes.dex转化成出的jar文件,即源码文件

 apktool下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

  dex2jar下载地址:http://sourceforge.net/projects/dex2jar/files/

  jd-gui下载地址:http://jd.benow.ca/

 然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹 并删除zip包 不然不得劲哦

我魔蝎座的哦 不是处女座哦

 进入CMD命令行,如下:

  

  切换到上述的3个工具的所在目录,如:E:\AndroidDevelopTool\Android反编译工具包

  

  接下来我们要做的就是运行apktool_2.0.1.jar这个jar文件来将apk文件进行反编译,在java中,运行可执行jar包的命令是:

java -jar jar包名.jar

  使用如下的命令运行apktool_2.0.1.jar反编译MMTS-release-1.0.2.apk

java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反编译工具包\测试apk\MMTS-release-1.0.2.apk -o MMTS

到这个地方基本上得到包了 

咔咔咔一顿删除 我用python删的

import requests from lxml import etree import os,shutil def mian(): #遍历文件 path=r'H:\反编译\csdn反编译\MMTS' mp3Path=r'C:\Program Files\WindowsApps\Microsoft.SkypeApp_12.8.487.0_x64__kzf8qxf38zg5c\SkypeApp\Assets\Audio\empty_sound.mp3' originFile=r'C:\Program Files (x86)\Common Files\Tencent\QQMiniDL\60\GameUpdateSkin\scrollbar_bk.png' if os.path.exists(path)==False: print("文件目录不存在") return "" for (root,dirs,files) in os.walk(path) : for fileName in files: file=os.path.join(root,fileName) if file.endswith(".png") : shutil.copy(originFile, file) pass if file.endswith(".mp3") : pass #print(file) #shutil.copy(originFile, file) #shutil.copy(originFile, file) pass mian()

看出来我的多才多艺了 你也可以用java替换就是一顿递归

打包!!这个没有完整教程  至少我是没找到的 但是你幸运的很 找到我这篇博客了 

这个我也不知道有没有简单的方法 但是鄙人虽然愚钝 但是好歹也弄出来了

只要结果是好的 我再麻烦一点也无所谓 我是笨方法 请按照步骤跟我来

path 设置如下路径 也就是环境变量

G:\android\sdk\build-tools\24.0.2

配置到了这个地方 因为他们网上说要aapt 这个目录

然后我又把那个aaptkool_1.0.0.jar弄进了

G:\android\sdk\build-tools\24.0.2

然后又新建apktool.bat 并写入内容copy到(先弄txt 写入后改后缀)

G:\android\sdk\build-tools\24.0.2 @echo off if "%PATH_BASE%" == "" set PATH_BASE=%PATH% set PATH=%CD%;%PATH_BASE%; chcp 65001 2>nul >nul java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool.jar" %*

接下来的代码可谓是沁人心脾

apktool b H:\反编译\csdn反编译\MMTS -o text.apk

瞬间爆炸 完成五杀

当然鄙人安还没有傲娇 还要再签名一次

签名

签名是对要发布的apk文件作标记,确保你的apk文件有唯一的身份归属认证,只有相同签名和相同包名的文件才可以覆盖安装并保留用户信息。

对于反编译的apk,我们可以通过jarsigner来对它进行签名。

生成keystore文件

首先,签名需要keystore文件,可以使用keytool工具生成,一般Java环境都带有keytool命令,可以在命令行测试。

keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore 1

各个参数解释如下:

-genkey 产生证书文件 -alias 产生别名 -keystore 指定密钥库的.keystore文件中 -keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法) -validity 为证书有效天数,这里我们写的是40000天

输入上述命令后,会有如下的提示:

输入keystore密码: 再次输入新密码: 您的名字与姓氏是什么? [Unknown]: test 您的组织单位名称是什么? [Unknown]: test 您的组织名称是什么? [Unknown]: 您所在的城市或区域名称是什么? [Unknown]: 您所在的州或省份名称是什么? [Unknown]: 该单位的两字母国家代码是什么 [Unknown]: CN=test, OU=test, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗? [否]: y 输入的主密码 (如果和 keystore 密码相同,按回车): 签名apk

jarsigner也存在于Java JDK的安装包当中,所以安装好了Java环境的话,可以直接在命令行使用。

jarsigner -verbose -keystore demo.keystore demo.apk demo.keystore 1

-verbose 指定生成详细输出 -keystore 指定数字证书存储路径

这样,就完成了对一个apk的签名过程,然后就可以安装使用了。注意如果你的手机上原来就有这个apk,需要卸载掉。因为新apk的签名已经改变了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有