這個 Repo 為 CSAPP/3e ICS Lab 的實作和筆記。
- Data Lab 筆記
訓練學員對於位元操作、整數和浮點數的相關概念 - Bomb Lab 筆記
必需透過 gdb 等除錯工具,進行反編譯及逆向工程,找出正確的六個字串拆除炸彈 - Attack Lab 筆記
- 學習到針對 buffer overflow 的不同攻擊方法
- 了解如何寫出更安全的程式,以及編譯器及作業系統如何提供額外的保護機制
- 了解 x86-64 的 stack 以及參數傳入機制
- 了解 x86-64 的指令如何編碼
- 熟練 GDB & OBJDUMP 等除錯工具
- Cache Lab 筆記
讓學生了解快取的機制及程式優化等議題。實驗分為兩個部份
Part A: 寫一個小的 C 程式 (200~300 行),以 LRU 策略模擬快取的行為,利用 valgrind 的 trace 檔計算 cache hit, miss & eviction
Part B: 優化矩陣轉置,盡可能降低 cache miss 的發生次數 - Shell Lab 筆記
Shell Lab 對應第八章『異常控制流』,實作一個簡單的 shell tsh - Malloc Lab 筆記
本次實驗要求學生實作動態記憶體分配器,包含 malloc、free 及 realloc - Proxy Lab 筆記
實作一個可並行處理的 proxy,讓學員學習到 web 的 client-server 機制及多執行緒程式撰寫