【问题标题】:is it possible to unzip a .apk file(or generally any zipped file) into memory instead of writing it to fs是否可以将 .apk 文件(或通常任何压缩文件)解压缩到内存中,而不是将其写入 fs
【发布时间】:2013-06-07 23:23:57
【问题描述】:

我正在研究移动应用程序,需要在解压缩 .apk 文件后分析它们的代码。不过解压的过程自然会涉及到大量的IO,不具备可扩展性,我在想是否可以将解压后的数据保存在内存中,用几个变量表示,这样就省去了写FS的麻烦。我加载了数千个要分析的应用程序,因此能够执行此类操作将显着加快我的流程。有没有人可以为我提出一条出路。我正在使用python。 提前致谢

【问题讨论】:

标签: android python unzip


【解决方案1】:

希望您使用的是 Linux:

$ cd /dev/shm
$ unzip /path/to/my.apk

就是这样。内存中的解压APK。

【讨论】:

  • 这似乎是解决此问题的快速方法。谢谢!我快速搜索了一下,发现 /dev/shm、/tmp、/var/tmp /run 都可以用作临时内存存储。但我不太确定它们之间有何不同,在我的情况下我应该使用哪一个。特别是 /tmp 和 /var/tmp 安装在文件系统 /dev/sda6 上,/run 安装在 tmpfs 上,而 /dev/shm 没有安装。它们之间有什么不同,在 /tmp 和 /var/tmp 的情况下,当它们从字面上安装在设备上时,它们与内存有什么关系
  • 检查文件系统类型,如果tmpfs在内存中
  • /tmp 和 /var/tmp 怎么样,在我的电脑上是 /dev/sda6
  • df /tmp 文件系统 1K-blocks Used Available Use% Mounted on /dev/sda6 191425164 50784288 130910368 28% / xushunyi@xushunyi-Lenovo-G450:/dev$ df /var/tmp
【解决方案2】:

是的,python zipfile 模块可让您将文件读入内存。它读取类似文件的对象,因此 zipfile 本身也可以在内存中,如果你觉得有用的话。

【讨论】:

    【解决方案3】:

    一个迟到的条目......但我所要做的就是将文件重命名为 .ZIP 扩展名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      相关资源
      最近更新 更多