V8快照二进制文件/debugging的规格

我偶然发现NW,它能够加载“编译的JavaScript二进制文件”。 进一步阅读后(首先我认为这将只是一些缩小的JavaScript)我发现,文档是在谈论实际的二进制文件。 事实certificate,V8可以build立一个加载的JS源代码的快照,并将其转储到一个文件,然后可以将其加载回内存。

https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot

有没有关于这些二进制文件结构的规范? 有没有一种方法可以在反汇编器中加载这样的二进制文件(比如说IDA Pro)?

(V8开发人员在这里)。不,V8的快照文件的格式是一个内部的实现细节,既没有logging也没有被认为是稳定的版本(相反,V8假设任何快照不是由完全相同的版本是不相容的)。 没有支持的方式将快照文件加载到反汇编器中; 检查快照内容的方法是debugging其创build和/或反序列化。

这种情况的背景是快照文件旨在成为一种磁盘caching来加速启动。 它们不是可分发的二进制文件。