安卓逆向笔记(9)——安卓备份文件.ab的解包方法

文章目录

工具

1.java
2.rar
3.C32Asm

分析

第一次拿到.ab后缀的文件,不知道是什么,直接丢进C32Asm里去看文件头魔数。如图:
未加密.ab文件1. 其中可以看到ANDROID BACKUP.2.1.none字样,说明是一个安卓备份文件(我查资料了的!不是看到backup所以就乱说哈)
2.其中的 .2.1 分别是两个参数,表示版本和是否压缩,具体哪个对应哪个,还有版本是指什么版本我也没搞明白,希望搞明白的同学留言告诉我。
以下是分析.ab工具的部分源码截图(分析.ab文件头的)1
.ab头部解析源码3.其中的 none 表示加密方式为:无加密。如果存在加密,则为具体加密方式2,如图:
加密的.ab文件
对于无加密的.ab文件,有24字节的文件头,文件头包含none标志,文件头之后就是数据;加密的备份文件,它的文件头就比较复杂了,文件头包含加密算法名称的标志,其他的我也不知道了,后面的估计也是数据,但是是经过了加密的数据吧。

解包

1.对于加密的.ab,我也不知道怎么解包,估计是提取出数据部分,把.ab的文件头去掉就可以,然后再做对应加密方式的解密吧。

2.无加密的.ab解包:
(1)直接使用命令:

java -jar abe.jar unpack xxx.ab xxx.rar

注意: 如果环境变量中的CLASSPATH没有找到abe.jar的路径,则会报错:

Error: Unable to access jarfile abe.jar

不管什么jar包,所有这个报错都是因为JAVA解释器无法在CLASSPATH环境变量中找到这个jar包,解决办法可以是:
a. 修改CLASSPATH环境变量的值,写上这个jar包的绝对路径;(我忘了这个方法的可靠性了,好像并没有效,反正原理是这么个原理,为什么无效,我也不知道,懒得去研究了,知道的评论区告诉我一声)
b. 或者命令中 -jar 参数写上jar包的绝对路径,要用双引号把jar包的绝对路径括起来,我也不知道为什么,反正我不用双引号就报错,可能是我电脑环境问题,可能是java语法限制,没细究。

找不到abe.jar包
3.解包执行成功后,命令行是没有任何输出的,查看输出路径,得到一个rar压缩包,则说明解包成功,解压rar即可,如图:
成功解包.ab
4.查资料的时候看到小米手机备份文件(后缀为.bak)的解包3方法,这里记录一下:
用十六进制编辑器C32Asm之类的工具打开,可以看到如下信息:
小米手机备份文件
本博客部分图是从原博客上截的,链接在文末。看这张图,根据前面的分析,可以到出 ANDROID BACKUP 1 1 none ,因此猜测小米的备份文件只是用安卓系统自身的备份操作,且是未加密的,然后对安卓备份生成的.ab再做一次封装,拼接到自己的一个文件头下面去。我们直接删除.bak的文件头,恢复成.ab文件,即可按照上面的方法去解包了。


  1. 参考自:https://www.52pojie.cn/thread-447261-1-1.html ↩︎

  2. 参考自:https://blog.csdn.net/qq_33356474/article/details/92188491 ↩︎

  3. 参考自:https://www.feifeiboke.com/android/3669.html ↩︎

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Unity的.ab资源是一种在游戏开发中常用的资源打包方式。.ab是Asset Bundle的缩写,意为资源包。它的作用是将游戏中的各种资源,如纹理、模型、声音等打包成一个个资源包,方便在游戏运行时进行加载和管理。 使用.ab资源有以下几个优点。首先,它可以有效地减小游戏的安装包大小。由于游戏中的资源往往占据了大量的空间,将这些资源打包成.ab文件后,可以减少安装包的大小,降低玩家下载游戏的时间和流量消耗。 其次,.ab资源可以实现资源的按需加载。游戏中的资源往往是按照场景或关卡进行划分的,在游戏运行时,只需要加载当前场景或关卡所需的资源,可以提高游戏的加载速度和运行效率。 第三,通过使用.ab资源,还可以实现资源的动态更新和替换。在游戏发布后,如果需要更新或修复某些资源,只需要替换相应的.ab文件即可,无需重新发布整个游戏。这样不仅方便了开发者的维护工作,还可以提供更好的用户体验。 最后,.ab资源还可以实现资源的共享和重复利用。不同的场景或关卡可能会使用到相同的资源,使用.ab资源可以避免资源的重复加载和占用过多的内存,提高游戏的性能和效率。 总之,Unity的.ab资源是一种在游戏开发中非常有用的资源打包方式。它可以减小安装包大小、按需加载资源、实现动态更新和替换,以及实现资源的共享和重复利用。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值