gpt4 book ai didi

javascript - 在 Google V8 中检测 JavaScript 调用

转载 作者:行者123 更新时间:2023-12-03 01:26:24 24 4
gpt4 key购买 nike

我正在尝试在两个 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())。

任何帮助将不胜感激!

最佳答案

不直接支持在 V8 中记录所有函数事件。您有两个选择:

  1. 预先修补所有已知函数/getters/setters(需要充分了解您的代码库)
  2. 修补 V8 以记录所有函数调用

选项 2 肯定会需要更多工作。部分支持使用 --log-function-events 记录函数的首次执行,但不包括 API 回调(例如 DOM 访问器和某些内置函数)。

正确支持记录所有函数调用在 V8 中是一项不简单的任务,需要修补代码库中的各个位置。

关于javascript - 在 Google V8 中检测 JavaScript 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51524559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com