我偶然发现了NW以及它能够加载"编译的javascript二进制文件"。在进一步阅读之后(首先我认为这只是一些缩小的javascript)我发现文档正在讨论实际的二进制文件。事实证明,V8可以构建加载的JS源代码的快照并将其转储到文件中,然后可以将其加载回内存。
https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot
是否有关于这些二进制文件结构的规范? 有没有办法在反汇编程序中加载这样的二进制文件(比如说IDA Pro)?
答案 0 :(得分:1)
(V8开发人员在这里。)不,V8的快照文件的格式是一个内部实现细节,既没有记录也没有假设在不同版本之间保持稳定(相反,V8假定任何未由完全相同的版本是不兼容的)。没有支持的方法将快照文件加载到反汇编程序中;检查快照内容的方法是调试其创建和/或反序列化。
这种情况的背景是快照文件旨在成为一种磁盘缓存,以加快启动速度。它们不是可分发的二进制文件。