【发布时间】:2011-04-14 14:10:24
【问题描述】:
我有 .deb 包,我需要以编程方式提取其内容。但是,我无法找到有关该主题的任何资源,例如 .deb 包格式规范,这将使我对如何解决问题有更多的了解,而无需对整个事情进行逆向工程。
有什么想法吗?
【问题讨论】:
我有 .deb 包,我需要以编程方式提取其内容。但是,我无法找到有关该主题的任何资源,例如 .deb 包格式规范,这将使我对如何解决问题有更多的了解,而无需对整个事情进行逆向工程。
有什么想法吗?
【问题讨论】:
其实很简单。
ar xv <name of deb file>
要从 C 中调用,您可以使用 system:
system("ar xv <name of deb file>");
【讨论】:
如果你没有找到这个库(我也没有),并且不能求助于运行系统命令,你总是可以实现自己的来读取 ar 档案。 ar file format 并不复杂。
【讨论】:
.deb 包格式的设计目标之一是使用现有工具和/或库轻松提取。顶层结构确实是一个ar 文件,但在里面,你会发现另一层结构,传统上是一对tar 文件。有关更多文档,请参见例如http://en.wikipedia.org/wiki/Deb_(file_format)
如果您找不到现有的库,您可能可以使用 GNU ar 源来构建您自己的库。我希望有用于 ar / tar / cpio / 你有什么的通用库。
【讨论】:
我刚刚看到libarchive 支持ar 格式,还有很多其他格式。
【讨论】: