iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

從 Rust 往程式底層前進 系列

主要想介紹 Rust 中一些語言特性的實作與程式的運作機制等

參賽天數 12 天 | 共 26 篇文章 | 22 人訂閱 訂閱系列文 RSS系列文
DAY 12

動態連結

動態連結是讓程式能載入動態函式庫,這些函式庫在 Linux 下一般都是以 .so 的副檔名做結尾,這些檔案能在程式執行起來後才由動態連結器載入程式的記憶體空間供...

2019-10-07 ‧ 由 DanSnow 分享
DAY 12

位置無關程式碼與 GOT 和 PLT

前一篇提到了動態函式庫,而動態函式庫有個很重要的特性是它必須載入至其它程式的空間來執行,因為載入的位置並不是固定的 (不過為了實作 ALSR 實際上沒有程式的載...

2019-10-09 ‧ 由 DanSnow 分享
DAY 12

LD_PRELOAD hook 與 dlsym

LD_PRELOAD 是個用來控制 ld.so 的行為的環境變數之一,它的效果是讓 ld.so 先載入變數中指定的動態函式庫,而因為動態函式庫的符號在解析時的特...

2019-10-10 ‧ 由 DanSnow 分享
DAY 12

系統呼叫與呼叫慣例

這篇要來聊系統呼叫 syscall ,實際上程式執行的環境是處處受到限制的,很多東西需要由作業系統幫忙完成,比如寫檔案,寫檔案這個動作牽涉到了讀寫檔案系統中的資...

2019-10-12 ‧ 由 DanSnow 分享

執行緒與 TLS

這篇來談談執行緒 (thread) 與 thread local storage (TLS) ,雖說是這樣,但事實上主要是想來看看 TLS 是怎麼運作的,不過在...

2019-10-18 ‧ 由 DanSnow 分享

ptrace

這篇要來介紹一個很強大的系統呼叫 ptrace 它可以用來中斷別的程式,讀取與寫入別的程式的資料,它的用途基本上就是拿來實作除錯器,當然除錯器並不是只要能暫停程...

2019-10-27 ‧ 由 DanSnow 分享