簡體   English   中英

Javascript 掛鈎

[英]Javascript hooking

如果我想在 Javascript 中掛鈎對 eval 和 settimeout 之類的函數的調用,以獲取將要執行的代碼之類的東西,並通過函數 settimeout 將要調用,我該從哪里開始?

場景是,我訪問一個 chrome 網頁,我想在每個點上設置一個斷點。 然而,它們可能會被混淆(可能是惡意的),所以我不能只搜索這些類型的調用的來源。

我不能直接使用 chrome 來做到這一點,還是我真的需要在 v8 中創建一個鈎子來捕獲這些對特定 js 函數的調用?

沒有辦法攔截所有的代碼執行事件。 您將不得不修改源。

也就是說, evalsetTimeout都只是函數,作為全局對象上的可配置屬性安裝。 您可以使用包裝器覆蓋它們:

var original_eval = eval;
eval = function(str) {
  console.log("eval was called with: " + str);
  return original_eval(str);
}

請注意, evalsetTimeout之間存在很大的概念差異:前者采用新的源代碼,后者只能調度對現有函數的調用(可能是用eval創建的)。

還有Function構造函數,它類似於eval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM