弄乱Firefox Javascript解释器有多容易

how easy is it to mess with Firefox Javascript interpreter?

本文关键字:解释器 Firefox Javascript 弄乱      更新时间:2023-09-26

由于Firefox是开源的,理论上我应该有可能破解解释器的行为。比方说,也许我可以构建自己的分析器,或者对浏览器中允许和不允许的javascript行为引入更细粒度的限制。或者别的什么……

那么这种事情在实践中有多容易呢?这是可以通过某种插件实现的吗?或者我需要重新编译解释器源代码吗?或者重新编译整个浏览器?

无论如何解释器源代码有多大?对于一个在大学里做过玩具编译器的人来说,这是一件很难理解的事情吗?

如果您只使用解释器,那么情况还不算太糟。如果您想同时处理两个jit,那么显然需要更多的工作。在代码大小方面,看起来我们谈论的是180k行代码(头文件和c++文件),不包括regexp引擎和jits。

理解解释器并没有那么糟糕;首先,在http://developer.mozilla.org上有很多文档,irc.mozilla.org上的#jsapi频道的人们通常很乐意回答问题。

如果您想在不过多干扰系统的情况下进行分析,那么您可能需要破解源代码。对于支持特性方面的实验,我怀疑您希望使用https://mozillalabs.com/zaphod/。

Firefox JS引擎叫做SpiderMonkey。你可以在这里找到相关信息:http://www.mozilla.org/js/spidermonkey/

我没有看太多,但它是用C写的,看起来很容易访问。