2019年8月31日 星期六

Linux 0.11 Compile and running on bochs

對於資訊工程或是駭客技術有興趣的同學,不妨嘗試撰寫作業系統,絕對會讓您的技術更上一層樓,那麼不知道如何從哪裡開始撰寫作業系統的同學,可以參考Torvalds在大學時期撰寫的Linux 0.11版本,不過為什麼要選擇那麼舊的0.11版本,因為此版本僅單純的處理bootloader、paging、heap、virtual filesystem (VFS)、Multitasking、User mode、syscalls,並沒有關於tcp/ip和複雜的演算法等等的程式碼,因此可以很專注的分析基本作業系統的原理。

2019年8月29日 星期四

peter-dbg tutorial

使用bochs模擬器來撰寫屬於自己的作業系統時,可能會遇到一些程式上的Bug或是一些邏輯錯誤,在小型程式(大約幾百行程式碼)都很好解決,那麼我們是撰寫作業系統等級的程式,程式碼都是上萬行,因此需要一款較好用的Debugger,常見的Debugger有GDB (GNU Debuger)、DDD (Data Display Debugger,介面化的GDB),不過這些Debugger都不能觀察GDT (Global Descriptor Table)、IDT (Interrupt Descriptor Table)、LDT (Local Descriptor Table)、Page table、CR 0-4 register (Control Register)等等資訊,如果遇到是關於在建構Page table的問題,就很難知道是這個環節的Bug,因此這篇就是介紹功能強大的Debugger,” peter-dbg”。

2019年8月24日 星期六

Write your own operating system by bochs

以前在大學時,在上作業系統的課程,發現老師只會在課本紙上談兵,並沒有任何的實務操作,然而學習作業系統是必須要撰寫程式才能習得它的精隨所在,像是GDT (Global Descriptor Table)、IDT (Interrupt Descriptor Table)、Paging和Multitasking,這些都是要透過撰寫程式,然後了解它的運作,不然很難真正的體會作業系統厲害之處,其中想要開始撰寫自己的作業系統的同學,我在這邊推薦一款免費又好用的模擬器bochs,安裝和設置都很簡易,這樣能輕易就將自己寫的程式運行在bochs模擬器。

2019年8月16日 星期五

Counter Strike Source - AI

在念研究所的期間利用空閒時間,嘗試撰寫射擊遊戲的Artificial Intelligence,也就是利用自己寫的程式跟遊戲中的電腦互打,在這過程還蠻有趣的,需要分析整個遊戲的地圖,然後再路徑規劃(PathFinder),以及蒐集在記憶體上的人物資訊,例如座標、血量、隊伍等等,有了這些資訊就能追蹤敵人的座標,不過還需要找出控制自己的移動和射擊,這樣就能擊殺敵人了。

2019年8月11日 星期日

Counter Strike Source - Aimbot

這篇是關於射擊遊戲的自動瞄準技術介紹,那麼什麼是自動瞄準 ? 顧名思義就是將射擊的準心自動移到敵人的頭部,有玩過射擊遊戲的人,多少有聽過此類外掛,然而卻不知道自動瞄準的外掛是如何製做的,接下來我們就準備探討它的相關技術。

2019年8月1日 星期四

106年金盾決賽試題 - Heap overflow

在整理檔案時,發現封存在D槽已久的檔案,這個檔案就是當時負責的計劃”金盾決賽題目”,我被分配到的題目難度是困難的等級,因此就有一些大膽的想法。就在不久之前,有同事約我打Defcon的競賽,那次也是第一次參與這個競賽,只解出幾題,同時也發現竟然這些題目都是跟Linux漏洞相關的題目,像是stack、heap、format string等等的弱點分析,當下覺得蠻驚訝的,因為這些都是以前在大學研究過的弱點,很少競賽會將題目出的如此實戰,所以藉由這次比賽經驗,能讓我將題目設計的更加實戰。