[心得] 黃俊穎 - 高等UNIX程式設計

看板NCTU-Teacher作者 (瀕臨絕種的Emacser)時間1年前 (2022/07/09 14:39), 1年前編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串1/1
⊕課名⊕ 高等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://www.ptt.cc/bbs/NCTU-Teacher/M.1657348740.A.A47.html

07/09 14:42, 1年前 , 1F
好讚哦 推爆 ><
07/09 14:42, 1F
※ 編輯: 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
文章代碼(AID): #1YoIA4f7 (NCTU-Teacher)