2019年9月7日 星期六

How can i get sys_call_table on Linux 64 bit ?

這篇是關於如何獲取sys_call_table位址教學,那麼什麼是sys_call_table,它是Linux平台上提供給Kernel使用的系統呼叫(system call),像是開檔的系統呼叫(sys_open)、寫檔的系統呼叫(sys_write),這些都是提供給Kernel所使用的,因此只要獲取sys_call_table的位址,就能攔截(Hook)系統上的所有系統呼叫,然而駭客只要透過攔截sys_call_table裡的系統呼叫,就能輕而易舉達到隱藏檔案、隱藏網路埠(port),甚至是提權到root,那我們來看看,到底是如何獲取sys_call_table的位址。

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),以及蒐集在記憶體上的人物資訊,例如座標、血量、隊伍等等,有了這些資訊就能追蹤敵人的座標,不過還需要找出控制自己的移動和射擊,這樣就能擊殺敵人了。