本書真的很不錯,雖然它的名字叫做“駭客”,但它所講述的內容卻是一個程式員,特別是一個Linux程式員,或者說是C程式員必備的知識!
第一講:二進位Hack的技巧分為6大類:
1、各種工具、庫
2、二進位格式
3、系統調用
4、OS功能
5、處理器功能
6、編譯器功能
從這幾大類上就可以看出來,它並不是所謂的駭客工具或者攻略之類的東西,而是深入理解二進位程式的相關知識。相信很多程式寫過很多程式,但都沒有深入理解二進位檔案的格式以及編譯、連結、靜態分析等之類的東西!從這裡開始,你將瞭解這些東西!
第二計:Binary Hacks的用語基礎知識
應用二進位介面ABI(Application Binary Interface),EABI
應用程式介面API(Application Programming Interface)
初始符號段BBS Segment(Block Started Bymbol Segment)
動態共用對象DSO(Dynamic Shared Object)
任意記錄格式高度DWARF(Debug With Arbitrary Record Format)
可執行可連結格式ELF(Executable and Linking Format)
GCC(GNU Complier Collection)
glibc(Gnu C Library)
GNU(GNU's Not Unix)
GNU/Linux
全域位移表GOT(Global Offset Table)
LLP64 long long和指標都佔64位,int和long都佔32位的資料模型
LP64 long和指標佔64位,int佔32位的資料模型
位置無關代碼PIC(Position Idependent Code)
位置無關的可執行程式PIE(Position Idependent Executable)
程式連結資料表PLT(Procedure Linkage Table)
POSIX(Protable Operating System Interface for Unix)
SUS(Single Unix Specification)
執行緒區域儲存TLS(Thread Local Storage)
預連結(prelink)
靜態連結(Staitc Link)
工具鏈(toolschain)
資料區段(Data segment)
程式碼片段(Text segment)
調試器(Debuger)
調試資訊(Debug infomation)
符號重組(demangle)
動態連結(Dynamic link)
動態連結程式庫(Dynamic link library)
名稱改編(name mangline)
Binarian 精通Binary Hack方面技術的工程師
棧跟蹤,棧回塑(backstrace)
堆(heap)
斷點(break point)
程式計數器(program conter)
進程(process)
Profile 程式效能解析
函數呼叫慣例(Calling Convention)
運行時(runtime)
連結(link)
反射(reflection)
裝載,載入(load)
有多少人知道上面所有的名詞?本書會慢慢的帶你瞭解這些基礎知識!