之前的篇章已經有說明什麼是SSDT(System Service Descriptor Table),接下來我們要做更有趣的事情。此篇的主要目的是要攔劫(Hooking)OpenProcess,然後讓計算機程式(calc.exe)運行不起來,並且回傳存取失敗,最後實現控制OpenProcess的存取限制。
2020年10月26日 星期一
Windows 7 x86 - Hooking SSDT
2020年9月18日 星期五
Windows 7 x86 驅動程式編譯
一般在Windows平台上,可能比較少會遇到驅動層級的惡意程式,不過如果遇到了,我們也要知道如何分析它,那麼需要知道驅動程式是如何編譯以及運行它在系統上,因此這篇教學是傾向於如何編譯Windows驅動程式,然後將它運行到記憶體上。
2020年9月3日 星期四
Windows SSDT(System Service Descriptor Table)簡單介紹
SSDT(System Service Descriptor Table)是Windows kernel非常重要的結構,一般應用層(Application layer)在調用API時,會透過DLL(Dynamic-link library)來完成它,不過最後還是必須要讓核心層(Kernel layer)的API來實作,因此會使用INT 0x2E中斷指令來調用SSDT裡面的API,所以這樣就能不讓應用層接觸到核心層的記憶體又能告訴核心層來完成此功能的運作,接下來我們就來分析SSDT的架構。
2020年8月24日 星期一
Windows 7 x86 kernel debugging
研究作業系統除了一些基礎知識可以透過網路文獻或者書本上的訊息來得知,我們也可以利用動態分析的技巧來了解它的運作行為,因此需要Debugger的工具來協助我們分析作業系統。本篇會使用VMware安裝Windows 7 x86,並且利用VirtualKD建立Debugger的橋樑,再透過windbg來Debug作業系統,我們之所以會使用VirtualKD是因為建置環境比較方便並且分析時會比較順暢,在運行單步執行的途中不會卡卡的。
2020年8月6日 星期四
AssaultCube - 修改無限子彈
AssaultCube是一款第一人稱射擊遊戲(First-person shooter),它可以選擇單機跟AI(Artificial intelligence)對戰,也可以連到網路與其他玩家對戰。此篇的主要目的為如何透過Cheat Engine來分析記憶體資訊,進而找出遞減子彈的程式碼,我們可以將此程式碼修改成NOP(無任何意義的指令),這樣就能完成無限子彈的效果,雖然難度不高,但是也是能增加遊戲分析的經驗。
訂閱:
文章 (Atom)