如何使用Pyxamstore快速解析Xamarin AssemblyStore文件

admin 2024年1月3日17:28:03评论18 views字数 1698阅读5分39秒阅读模式
如何使用Pyxamstore快速解析Xamarin AssemblyStore文件
关于Pyxamstore

Pyxamstore是一款针对Xamarin AssemblyStore文件(assemblies.blob)的强大解析工具,该工具基于纯Python 2.7开发,支持从一个APK文件中解包并重封装assemblies.blob和assemblies.manifest Xamarin文件。

什么是assemblies.manifest和assemblies.blob?
assemblies.manifest文件是一个ASCII文件,它列出了Xamarin DLL文件的名称、ID和其他元数据。该文件中唯一有用的真正数据是Name字段,因为assemblies.blob文件中并没有DLL名称数据,而这个名称值,本质上是存储在assemblies.blob中的DLL的原始文件名。

而assemblies.blob则更为重要,也需要我们进行更多的分析。因为它是一个二进制结构,且引用了很多其他的类,我们将这个结构称为AssemblyStore。AssemblyStore的Header为20个字节,包括magic XABA、版本(当前为1)和包含的程序集文件数,紧跟在Header后面的是一个名为AssemblyStoreAssembly的。类对于每个包含的程序集文件,都有一个一个24字节的数据结构。它们没有ID,但似乎是按正确的顺序序列化的(例如,第一个结构是索引0,然后是索引1,以此类推)。DataOffset和DataSize很重要,因为它可以告诉我们DLL在assembly.blob文件中的位置,以及要提取的字节数。

assemblies.blob其余的数据就是DLL的实际内容了,结合assemblies.manifest的数据,我们就可以提取和命名相关联的DLL文件了。
工具要求

1、Python 3

2、future v0.18.3

3、lz4 v4.3.1

4、xxhash 3.2.0

工具安装

由于该工具基于Python 2.7开发,因此我们首先需要在本地设备上安装并配置好Python 2.7环境。接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/jakev/pyxamstore.git
然后切换到项目目录中,使用pip3工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:
cd pyxamstore

pip install -r requirements.txt
配置完成后,执行工具安装脚本即可:
python setup.py install
此时,我们就可以直接通过调用“pyxamstore”命令来使用该工具了。
工具使用

解包

我们建议广大研究人员将该工具与apktool工具一起结合使用,效果更佳。
下列命令可以用于解包一个APK文件,并解包其中的Xamarin DLL文件:
apktool d yourapp.apk

pyxamstore unpack -d yourapp/unknown/assemblies/
需要注意的是,被检测为使用LZ4压缩的程序集将在提取过程中自动解压缩。

重封装

如果你想要在AssemblyStore中直接修改DLL内容的话,你可以将Pyxamstore与解包过程中生成的assemblies.json一起使用,并创建一个新的assemblies.blob文件。只需在assemblies.json文件所在目录内执行下列命令即可:
pyxamstore pack
此时,你将需要自行拷贝新的manifest文件、blob文件和重封装/签名的APK文件。
项目地址
Pyxamstore

GitHub - jakev/pyxamstore: Python utility for parsing Xamarin AssemblyStore blob files

如何使用Pyxamstore快速解析Xamarin AssemblyStore文件

如何使用Pyxamstore快速解析Xamarin AssemblyStore文件

如何使用Pyxamstore快速解析Xamarin AssemblyStore文件

https://www.thecobraden.com/posts/unpacking_xamarin_assembly_stores/

原文始发于微信公众号(FreeBuf):如何使用Pyxamstore快速解析Xamarin AssemblyStore文件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月3日17:28:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用Pyxamstore快速解析Xamarin AssemblyStore文件https://cn-sec.com/archives/2349735.html

发表评论

匿名网友 填写信息