SystemUI.apk文件反编译初次尝试

SystemUI.apk文件反编译初次尝试瘟疫期期间,闲来无事,从手机系统中提取了SystemUI.apk文件,打开查看发现乱码,于是尝试反编译apk。准备工作:0.首先确保使用java1.8或以上1.下载运行脚本并重命名为apkto

大家好,又见面了,我是你们的朋友全栈君。

瘟疫期期间,闲来无事,从手机系统中提取了SystemUI.apk文件,打开查看发现乱码,于是尝试反编译apk。

准备工作:

0.首先确保使用java 1.8或以上

1.下载运行脚本并重命名为apktool.bat,下载地址(官网):https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat

2.下载最新的apktool并重命名为apktool.jar,下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/

3.放在一个文件夹,双击运行apktool.bat,会输出用法

4.反编译apk,命令格式:apktool d [ apk文件名 ]

Windows:
下载Windows 包装程序脚本(右键单击,将链接另存为apktool.bat)
下载apktool-2(在这里找到最新的)
将下载的jar重命名为 apktool.jar
将两个文件(apktool.jar&apktool.bat)移至Windows目录(通常为C://Windows)
如果您无权访问C://Windows,则可以将两个文件放在任何位置,然后将该目录添加到环境变量系统PATH变量中。
尝试apktool通过命令提示符运行。

注意 -包装脚本不是必需的,但很有用,因此您不必java -jar apktool.jar一遍又一遍地输入。在修改之前首先对APK文件内部结构有个了解:AndroidManifest.xml 程序全局配置文件classes.dex 这是Dalvik字节码

resources.arsc 编译后的二进制资源文件
META-INF\ 该目录下存放的是签名信息
res\ 该目录存放资源文件
assets\ 该目录可以存放一些配置文件
AndroidManifest.xml对应这些文件和目录做些基本的注释和介绍:

使用命令:apltool d SystemUI.apk

但是发现报错:

Can’t find framework resources for package of id: 2. You must install proper framework files, see project website for more info.

错误提示:该错误原因提示我们不能找到id=2的框架包资源,必须安装正确的框架(framework)文件;

分析报错原因:反编译的apk针对特定的框架做了适配,依赖framework中部分资源文件,在反编译过程中未找到相关的文件所以报错。

尝试解决:
由上述分析可知,当发生此类错误时,需要我们首先安装依赖的框架资源文件,然后再执行反编译。

以honor v10为例,都在framework文件夹里面,里面有两个apk:framework-res.apk、framework-res-hwext,把整个framework文件夹提取出来,

<span role="heading" aria-level="2">SystemUI.apk文件反编译初次尝试

执行安装命令

apktool if  apkname 

<span role="heading" aria-level="2">SystemUI.apk文件反编译初次尝试

<span role="heading" aria-level="2">SystemUI.apk文件反编译初次尝试

<span role="heading" aria-level="2">SystemUI.apk文件反编译初次尝试

之后再次尝试反编译SystemUI.apk

此时我们现在安装的framework resource与报错信息中的id一致,说明已找到正确的framework resource。

但,之后还是报错,如下:

S: Could not decode file, replacing by FALSE value: drawable-hdpi-v4/flashlight_bt_off.png
I: Decoding values */* XMLs…
Exception in thread “main” java.lang.NullPointerException
at brut.androlib.res.data.value.ResEnumAttr.serializeBody(ResEnumAttr.java:56)
at brut.androlib.res.data.value.ResAttr.serializeToResValuesXml(ResAttr.java:64)
at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResources.java:742)
at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:263)
at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:129)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:124)
at brut.apktool.Main.cmdDecode(Main.java:170)
at brut.apktool.Main.main(Main.java:76)

<span role="heading" aria-level="2">SystemUI.apk文件反编译初次尝试

不知道为什么执行一半就终止了,后来发现部分xml的乱码已经可见代码,但是是一些放油png等资源文件及目录没有出来。

查看apk文件目录发现有一个:resources.arsc,打开出现乱码,没想到转化明文的方法(似乎被加密了)。

<span role="heading" aria-level="2">SystemUI.apk文件反编译初次尝试

应该就是它的问题,尝试打开出现:The file is not dispalyed in the edior because it is either bianry or uses an unsupported text encoding.Doyou want to open it anyway? 

目前尚未想到好的解决方案。

希望各位大佬看到给予指导。本文处于分享学习交流的目的,玩耍反编译还望恪守律己。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155579.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月3日 下午5:46
下一篇 2022年7月3日 下午5:46


相关推荐

  • Eclipse仿Visual AssistX 编辑着色插件

    Eclipse仿Visual AssistX 编辑着色插件

    2022年2月22日
    57
  • 【笔记】逻辑门图解—与门、或门、非门、与非门、或非门、异或门、同或门

    【笔记】逻辑门图解—与门、或门、非门、与非门、或非门、异或门、同或门文章目录前言正文与门或门非门与非门或非门异或门同或门后言前言本文记录自 https www bilibili com video BV1Hv4y1f7wh 将介绍以下八种逻辑门 正文与门相当于许多高级语言中的 且 A amp amp B 或门相当于许多高级语言中的 或 A B 非门相当于许多高级语言中的 非 A 与非门与门 非门 gt A amp amp B 或非门或门 非门 gt A B 异或门相当于许多高级语言中的

    2026年3月26日
    1
  • 基于51单片机的多功能八路抢答器[通俗易懂]

    基于51单片机的多功能八路抢答器[通俗易懂]1.功能介绍多功能八路抢答器是基于51单片机来设计的,除了可以实现最基本功能——8路抢答外,还具有自动处理犯规选手,抢答时间调整,还可以进行答题,计分,并且可以查询或修改分数。2.硬件设计该抢答器的硬件由五个部分组成,包括单片机、按键电路、数码管显示电路、指示灯电路和声音提示电路。硬件框图如下(2)硬件原理图由于每个部分的硬件电路都比较简单,就不做介绍了,大家直接看图。3.软件设…

    2022年10月20日
    2
  • PS磨皮滤镜Portraiture2.3简体中文绿色版32b/64b

    PS磨皮滤镜Portraiture2.3简体中文绿色版32b/64b磨皮滤镜Portraiture简单介绍  Portraiture是一款Photoshop的插件,用于人像图片润色,减少了人工选择图像区域的重复劳动。它能智能地对图像中的皮肤材质、头发、眉毛、睫毛等部位进行平滑和减少疵点处理!      Portraiture是极负盛名的专业人像磨皮滤镜,堪称磨皮神镜,仰望土豪器材党的屌丝团必备。算法优秀,不会造成处理后

    2022年7月22日
    15
  • 集群技术学习总结

    集群技术学习总结集群技术集群 cluster 技术是一种较新的技术 通过集群技术 可以在付出较低成本的情况下获得在性能 可靠性 灵活性方面的相对较高的收益 其任务调度则是集群系统中的核心技术 集群是一组相互独立的 通过高速网络互联的计算机 它们构成了一个组 并以单一系统的模式加以管理 一个客户与集群相互作用时 集群像是一个独立的服务器 集群配置是用于提高可用性和可缩放性

    2026年3月17日
    2
  • linux centos7下源码 tar安装mysql5.7.22或mysql5.7.20 图文详解

    linux centos7下源码 tar安装mysql5.7.22或mysql5.7.20 图文详解

    2022年2月16日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号