作者bh2142 (瀕臨絕種的Emacser)
看板NCTU-Teacher
標題[心得] 黃俊穎 高等UNIX程式設計
時間Sat Jul 9 14:38:58 2022
⊕課名⊕
高等UNIX程式設計
▲教授▲
黃俊穎
★修課年度★
110-2
£教了什麼£(課程大概內容。或是額外學會了什麼東西。
libc的一堆function
x86_64 assembly
程式運行的一些概念
很多很雜
詳情請看課程大綱
我蹺了大概一半的課
◆上課方式◆(投影片、團體討論、老師教學風格)
這學期都線上
上課用投影片
還有實際demo給大家看
老師會一直講
都不用休息
▼考試作業▼
因疫情期末考配分移到作業
總共四個作業+期中考
期中考是CTF的模式
要活用上課學的東西
像 LD_PRELOAD lseek PLT GOT 之類的東西
沒學會就不可能會
可以參考上課投影片和範例code還有man page
好像是依照全部人答題的情況對上自己寫出幾題來決定分數
具體算法我不清楚
作業
1. 實作一個類似lsof的程式
需要讀procfs之類的東西
簡單就是硬刻
2. 用LD_PRELOAD的機制讓程式在用一些Library的function的時候產生log
簡單就是刻
要指定log的輸出位置需要一點靈感但不難
不會就問同學
3. 實作一個簡單的 C library
串接syscall、setjmp、longjmp 的地方需要寫 assembly
範例測資有點弱,最好注意spec跟一些細節
上課有類似的範例 code
我有另外參考 musl 和 glibc 但其實不是很必要
因為有 signal 的關係 debug 比較不方便
4. 實作一個簡單的debugger
用ptrace去做,不難但寫起來超級麻煩
不需要支援PIE,但還是需要簡單的parse ELF
需要有 disasm、dump記憶體、breakpoint、step、stepi、讀寫reg 的功能
上課應該都有教要怎麼做
拿個70很簡單,剩下需要注意很多特殊情況會不會壞掉的問題
這課有提供一個用container做的參考環境可以用ssh連上去用
裡面會放助教的參考binary
可以跑來對照自己的code
但關掉環境就會被洗掉
用起來有一點麻煩
¥其他¥(是否注重出席率or嚴禁遲到?需要的基礎?)
不點名
一定一定需要會寫 C
¢最後想說的話¢
如果你本來沒那麼會寫C
修完這課你可能會變得稍微比較會寫
可以學到很多就算你一直都有在用 linux 也不一定知道的概念
推薦給想朝 OS、資安(當然還有系統程式)發展的人
如果你本來就有涉獵那這課就比較沒意思
我個人覺得作業很糞就是了
分數的話我期中考考蠻高的所以不知道具體甜不甜
但作業如果好好寫就算期中考71也有機會A+
如果有期末考不知道會變成什麼樣子
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.71.228 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/NCTU-Teacher/M.1657348740.A.A47.html
1F:推 Sean64: 好讚哦 推爆 ><07/09 14:42
※ 編輯: bh2142 (42.73.71.228 臺灣), 07/09/2022 14:48:51
※ 編輯: bh2142 (42.73.71.228 臺灣), 07/09/2022 15:10:15
※ 編輯: bh2142 (42.73.71.228 臺灣), 07/09/2022 16:33:18
2F:推 hyperbola: 大佬的心得就是不一樣 07/20 02:18