創作內容

3 GP

IsDebuggerPresent (逆向)

作者:廢物敗類窩囊廢漢堡│2018-08-01 20:52:39│巴幣:54│人氣:930


甚麼是IsDebuggerPresent?它有甚麼功用?

想必對學資安的人一定不陌生,所以小弟解說錯了還請指正

IsDebuggerPresent它無所不在也不一定會被使用到,

因為它隸屬於KERNEL32.DLL,所以你就算不使用這個函式,

它一樣會出現只不過沒被呼叫IsDebuggerPresent的功能

就是判斷有沒有其他程式在調試這個程式,是一個早期的

防逆向函式,不過現在大多數設計人員也不太會使用到它了,

所以我就拿來當基礎教學。



所以呢!我今天要做一個簡單的使用教學和繞過方法,

本文章用於學術,拿來做壞事的可別推卸責任喔!!!!!!

使用工具 X64DBG 和 visual studio 2017

先打開visual studio 2017



點選檔案 -> 新增 -> 專案



選擇C++



C++主控台



按下確定後創建好一個新專案!
會變成差不多這樣(檔名不一定相同)


然後我們先在標頭加入 iostream標頭檔



加入using namespace std;



然後我們需要知道IsDebuggerPresent的標頭檔是什麼?

所以請跳到神奇的連結查找 ,就會發現它是Windows.h和WinBase.h

所以我選擇使用Windows.h

把它加到程式碼上,打上 #include <Windows.h>


就可以使用函式了!!

接下來程式碼的部分就做個簡單測試用就好



好了後點選建置 ->建置方案



好了後就去它的資料夾找Release的不要選Debug的

打開它後會變這樣



現在我們開啟X64DBG 32位元版(以系統管理員執行)




點選檔案 - > 附加 或是 ALT+A後會變這樣



找到你從Release開啟的檔案並附加

等它加載後會到一個中斷點(可能會根圖不一樣)



這時我們直接點選符號



你會看到這個簡單的程式就用了許多的DLL了,不過不要慌張

我講過IsDebuggerPresent它隸屬於Kernel32.dll,所以我們在左下角的搜尋

查找Kernel32,然後右下角的搜尋查找IsDebuggerPresent

Kernel32


IsDebuggerPresent



你會發現有兩個IsDebuggerPresent 位址

我們直接兩個都下斷點

點選它 右建->斷點 斷點後位址那邊會呈現紅色



而另一個無法,原因是什麼呢?我就不做解釋因為那已經超過這篇教學範圍ㄏㄏ

然後回到CPU 點選執行


直到它跳到我們斷點的位址



然後直接往右下角的視窗看



會發現它這邊的第一格等同於斷點那邊,不過呢這邊更詳細的告訴你

發這個訊號的位址式000B1016(你們看到的可能不一樣),所以呢!

我們去尋找這個位址,快捷鍵是ctrl + G ,把你找到的位址打上



按下確定後會到這邊



test eax,eax 這段很重要喔! test 就是bool的判斷一種,

TEST 和 AND 大同小異,但TEST結果不改變暫存器只會改變旗標

在我們高階語言 bool 只有 0 跟 1 這邊也是一樣,

我們先來看左邊(隱藏FPU)



eax 呈現在0的狀態,也就是說 test eax,eax 這段意思就是

如果eax不等於0,就會觸發IsDebuggerPresent,

如果我不做更改執行下去來看看,請按執行的快捷鍵 F9

它會跳回我們下的斷點,不用理它馬上再回到000B1016位址觀看FPU



它被換成了 0FB18D90 !!!!!!!!!!!!!!!!!!!!!!!!

來看看測試程式的字串


跑出了發現異常!!!!

這邊可以確定是因為這個原因觸發的,所以我們現在先把X64DBG解除附加

快捷鍵是 ctrl + alt + f2再來看看測試程式



很好! 它又變回正常使用了!

接下來我們來繞過這個函式吧! 先把X64DBG附加回去,一樣要

到我先前做的地方下斷點,如果有就不用,然後一樣找右下角新的位址,

找到後一樣尋找位址跳到這個畫面



接下來該怎麼做呢????

test eax,eax 這邊是判斷要回傳為0,所以啊我們要讓它永遠變成判斷0,我們先看到FPU



我們可以發現EDX參數也是0

所以我把 test eax,eax修改程 test eax,edx



按執行或F9,它會跑到我們之前下斷點的地方,請取消斷點在執行一次

然後觀看測試程式碼



冰果!!!!現在它沒有被偵測到了!!這樣簡單就防止偵測調試器了!

簡單的教學到此結束~~
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4078599
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 2 篇留言

驥哥
U質文章 改天窩也來學一ㄍ

08-11 02:50

廢物敗類窩囊廢漢堡
我超懶得寫 一堆截圖和修改 我很懶
[e2]08-18 14:42
廢物敗類窩囊廢
資安類的我覺得好難==

08-28 17:01

廢物敗類窩囊廢漢堡
窩覺得自己是0 08-28 19:10
我要留言提醒:您尚未登入,請先登入再留言

3喜歡★a891030 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:逆向基礎實作.1... 後一篇:哀~~...

追蹤私訊切換新版閱覽

作品資料夾

Niwaiwaiwai大家
小屋更新了插畫喔,這次是可愛的妹妹看更多我要大聲說昨天16:54


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】