首頁
社區(qū)
課程
招聘
調(diào)用者檢測?

最近在網(wǎng)上看到有人說代碼中可以對調(diào)用者是不是屬于自己的程序進行檢測,用來提高軟件的安全性。但是我在網(wǎng)上搜調(diào)用者檢測沒找到相關(guān)內(nèi)容,想問下這項技術(shù)的確切名稱是什么?如果我想在自己的軟件中加入相關(guān)的內(nèi)容應(yīng)該怎么做呢?

收藏
2條回答
丿刀川 2021-9-12

是堆棧檢測,檢查返回值嗎?

回復(fù)
0346954 2021-9-13 2021-9-13編輯

調(diào)用RtlCaptureContext函數(shù),此函數(shù)傳入?yún)?shù)是個CONTEXT指針,函數(shù)返回后此指針中的eip變量為當前函數(shù)返回后CPU即將執(zhí)行的指令的地址,獲取的eip可能不成功,如果當前函數(shù)沒有保存棧幀,如
push ebp
mov ebp, esp
如果函數(shù)開頭沒有這兩條指令,那么獲取的調(diào)用者就不對,如果可以正確獲取到調(diào)用者,然后枚舉當前進程的模塊,獲取exe及合法模塊的起始地址、結(jié)束地址,判斷是否剛才獲取的eip是不是落在這些區(qū)間內(nèi),來提高軟件的安全性。
可以參考這篇文章:
http://www.voidcn.com/article/p-helhxifq-hk.html

回復(fù)