我正在尝试在两个 Google V8 支持的环境(Thug 和 JS 强制执行引擎)中检测 JavaScript 函数调用。基本上,当我使用 JavaScript 运行外部提供的 HTML 文件时,我希望每个 API 调用都包含一行: - 调用名称 - 发送到调用的参数(如果有的话)
我目前可以通过执行以下操作为 JavaScript 全局方法(例如 - eval()、decode()、encode())和各种 DOM 级方法(例如 - document.createElement())执行此操作:
var old_eval = eval;
function new_eval(foo0)
{
alert("INSTRUMENTATION: eval," + foo0);
return old_eval(foo0);
}
eval = new_eval;
我能够在我自己的 JavaScript 文件中定义这样的方法,然后将此文件合并到 V8 运行时中。
这对于全局函数来说足够好,但对对象成员访问或对对象级方法的访问没有帮助(例如 - somestring.indexOf())。
任何帮助将不胜感激!