久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      javascript的函數(shù)可以hook嗎

      javascript的函數(shù)可以hook;hook是一種動態(tài)修改函數(shù)執(zhí)行流程或返回結(jié)果的方法,JavaScript作為一種動態(tài)語言也可以進(jìn)行hook操作,hook通常用來針對某些參數(shù)或者變量進(jìn)行偵聽、打印輸出、替換等操作。

      javascript的函數(shù)可以hook嗎

      本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

      javascript的函數(shù)可以hook嗎

      可以。

      Hook是一種動態(tài)修改函數(shù)執(zhí)行流程或返回結(jié)果的方法,在實(shí)際應(yīng)用中非常廣泛。Javascript作為一種動態(tài)語言,也可以進(jìn)行Hook操作。隨著Javascript語言的發(fā)展,Hook的方法也越來越多,

      hook直譯的意思為鉤子,在逆向領(lǐng)域通常用來針對某些參數(shù),變量進(jìn)行偵聽,打印輸出,替換等操作。

      示例如下:

      示例代碼

      function add(a,b){ return a + b }

      hook代碼

      這是一個很簡單加法函數(shù),通過Hook能獲取到這兩個參數(shù)的值,相當(dāng)于在return之前添加了一句代碼console.log(a,b),這樣便能輸出這兩個的值便于分析。那么可以使用如下的方式來復(fù)寫改函數(shù),而這個方式在javascript也就是裝飾者模式

      let _add = add add = function () {   console.log('arguments', arguments)   let result = _add.apply(this, arguments)   console.log('result', result)   return result // 如果不需要result 則可直接return _add() }

      完整代碼

      function add(a, b) {   return a + b }   let _add = add add = function () {   console.log('arguments', arguments)   let result = _add.apply(this, arguments)   console.log('result', result)   return result  }   add(1, 2)

      再次調(diào)用add(1,2)便會輸出arguments參數(shù)以及結(jié)果3,一個很簡單HOOK就實(shí)現(xiàn)了。

      不過這個例子可能過于簡單,我所要表達(dá)的意思是,通過Hook,定位到我們想Hook的函數(shù)與變量,通過一系列操作(函數(shù)復(fù)寫,元編程),只要觸發(fā)該函數(shù)或使用(取值,修改)該變量,便能將我們想要的結(jié)果(前后的結(jié)果(如 加密前,加密后))獲取到。這才是我們的目的。

      書中給的例子想說明的,想為某個原函數(shù)(比如這里的add)添加一些功能,但該原函數(shù)可能是由其他開發(fā)者所編寫的,那么直接修改原函數(shù)本身將可能導(dǎo)致未知BUG,于是便可以用上面的方式進(jìn)行復(fù)寫原函數(shù)的同時,還不破壞原函數(shù)。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號