【JS逆向】之過無限debugger調試

在JS逆向過程當中,獲取用發F12抓取XHR的時候,常常會發現網頁不讓我們打開F12開發人員工具。如果這個時候我們開啓工具中禁止斷點之後,雖然我們可以抓取xhr,但是這樣我們無法調試代碼部分了,開啓了禁止斷點之後,我們自己也無法在代碼當中下斷點了

1.這裏說明一下:關於上面說的禁止斷點怎麼操作,我上一篇文章是有說明的

【JS逆向】之瀏覽器的功能詳細使用

2.開始我們就用我自己寫的一斷簡單debugger代碼來演示一個什麼是debugger.:

setInterval(function (){
   
   
debugger;
},1000)
//setInterval這個是JS語言當中的定時器,它有兩個參數,第一個是要執行的代碼,第二個執行時間

這個一段代碼執行的話會一直斷住,不管你怎麼跳轉到下一個斷點,它都還是會一直斷,其實這個就是一個無限debugger的代碼,如圖執行
在這裏插入圖片描述
這個時候我們要怎麼去處理的着東西呢,
a.禁止斷點(不建議使用)
b.採用hook的方法來hook定義器
c.在定時器運行到debugger的時候必定是true才能執行,那我們給它改成false,那麼它就不執行,也就達到我們的目的了.




下面我就說說這三種方法:
a.打開禁止斷點功能,在點擊跳到下一個斷點,但是當我們關閉禁止斷點之後,它還是會繼續斷住
在這裏插入圖片描述
b.hook定時器其實就是修改這個函數的執行屬性,可以達到讓他執行且不影響我們的正常功能又可以過我們的debugger代碼,下面我寫一斷簡單的hook代碼(當然hook代碼很多,不止這一個,只要你懂它的原理,那麼你肯定會造出很多比我這個優秀很多的hook代碼。)。


var  _setInterval=setInterval//先定義一個變量來接收這個函數
setInterval=function (){
   
   }//在修改原函數

在這裏插入圖片描述
hook下斷點的位置很重要,一定要在這個函數沒執行之前,我這裏是把斷點下在1行這個位置,工具還沒有執行裏面的代碼,加載代碼就會斷住,然後在這個時候就可以在我們的控制檯輸出我們的hook代碼,回車執行。
在這裏插入圖片描述

在點擊跳到下一個斷點就OK了,就完美就過了我們的debugger。

c.當定義器運行到這個debugger這個代碼的時候,那麼這個時候它爲true,它肯定執行我們的debugger代碼,那我們可以用瀏覽器的功能給他改成false,畢竟我們瀏覽器工具還是很強大的。如圖:

在這裏插入圖片描述

這個功能是在代碼的第二行,鼠標右鍵,選擇Add conditional…這個選項,就會出現這個輸入框,直接輸入false 回車,再點擊跳到下一個斷點,那我們也完美的過了這個debugger。

3.方法多種多樣,只要懂了它的運行原理之後那麼就可以進行一系列騷操作了。

4.註明:這裏很有瀏覽器的功能使用,看不懂的小夥伴可以去我上一篇文章閱讀觀看哦。可以是你的基礎更加紮實哦。

5.小弟寫東西不容易,還需要大家給個好評給個贊點個關注,小弟在這感謝給位觀看閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章