精華區beta Programming 關於我們 聯絡資訊
※ 引述《UNARY.bbs@bbs.cse.ttu.edu.tw (Rootkit Researcher)》之銘言: : 在 Linux,user mode 之下,如果有 root 權限,可以呼叫 iopl() : 然後可以存取 I/O port : 比如說以下程式在一般 PC 上執行,可以直接進行 hard reboot : 你可以用 gcc 編譯然後執行看看 : #include <sys/io.h> : int main (){ : iopl (3); : /* we can make a hard reboot through : the keyboard port 0x64 with a byte 0xFE */ : asm("mov $0xFE, %al"); : asm("out %al, $0x64"); : // never reach here... : iopl (0); : return 0; : } 大家都把c/c++看作好像只會在OS上用到... 其實有非常多的場合是不能掛os但又要達到某種程度上的可維護性 這時候就沒有iopl()這種函數,也沒有printf(),因為這些都要自己設計 與實現,如果是全都要自己來做,那這5項的概念就很重要了(其實還有很多), 但人總是怕麻煩,既然在os上已經可以做到,何必要自己來做呢? 那當然就是成本與需求問題嘛~~當你的專案成本與需求,無法或不需要使用os, 那這時當然就要自己設計一個系統了,所以有些時候並不是只要printf("%d",a) 就能夠讓你的LCD顯示a... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.39.71.29