反除錯之Fake F8

2021-10-03 23:52:46 字數 506 閱讀 5739

f7和f8稱為單步步入與單步步過

f7可以一步一步跟入call指令,f8則是在call指令下一行**設定斷點

retuen指令也分為兩步驟,把堆疊的值取出來放入eip中,同時esp+4

此反除錯方法是讓f8不能在下一行斷點,並使其找不到程式往哪跑

找乙個函式

進入函式中,用一行**將esp中儲存的下一行**的位址修改掉

此時f8該函式就會直接跟飛掉程式,只有用f7跟入函式中才能破解

針對此情況可以通過大量的沒有意義的call函式,消耗反除錯人員的耐心

讓其失去耐心放棄用f7一步步跟入,直接f8跳過,使其找不到是通過哪個call指令跳到需要的程式,就能達到反除錯的目的,這是較為基礎的反除錯方法

反除錯 時間

include include include using namespace std void isdebuger tbefore tafter return intmain rdtsc時鐘檢測反除錯 使用時鐘檢測方法是利用rdtsc這個彙編指令,它返回至系統重新啟動以來的時鐘數,並且將其作為乙個...

反除錯技術二

五 使用ntqueryinformationprocess函式 ntqueryinformationprocess函式是乙個未公開的api,它的第二個引數可以用來查詢程序的除錯埠。如果程序被除錯,那麼返回的埠值會是 1,否則就是其他的值。由於這個函式是乙個未公開的函式,因此需要使用loadlibra...

反除錯技術二

五 使用ntqueryinformationprocess函式 ntqueryinformationprocess函式是乙個未公開的api,它的第二個引數可以用來查詢程序的除錯埠。如果程序被除錯,那麼返回的埠值會是 1,否則就是其他的值。由於這個函式是乙個未公開的函式,因此需要使用loadlibra...