作者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/cn.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