第一章 欲向碼途問大道,鏘鏘bit是吾刀
需準備的知識
◆ 了解一些計算機的基本結構,如CPU、寄存器、內存......
◆ 基本掌握C語言
◆ 了解一點匯編更好
為你提供的能力
◆ 本章的調試技巧→支撐整本書的底層調試和探索。
◆ 1.2節和1.8.2節的機器碼構造能力→2.1節解密之hello world和7.4節的構造自定位代碼
◆ 1.2節指針機制→2.3節指針的指針bug、5.2.2節線程函數的this指針傳遞。
◆ 1.3節的函數調用機制→2.1節、2.2節、2.3節、2.4節、2.6節、2.7節、2.8節、和2.9節的錯誤調試和逆向分析,3.3.5節的bug分析,4.1.6節和4.7.6節的this指針傳遞機制和虛函數機制分析,5.1.4節的bug分析,6.5節內存釋放錯誤分析和7.4節分析自定位代碼
◆ 1.4.1節數組模型→2.2節的bug分析。
◆ 1.4.2節結構體模型→1.5.2節的bug,1.9節的分析strlen中的對齊讀,3.3.3節的結構體對齊bug。
◆ 1.5.1節對齊→1.5.2節的bug,1.9節的分析strlen中的對齊讀,3.3.3節的結構體對齊bug
◆ 1.6節的switch和1.9節的分析→學會一種分析方法和匯編學習方法。
◆ 1.8節的加載器重定位→3.3節的鏈接期重定位的理解和程序構造。
◆ 充分理解猜測、實證和構建方法
如果你是一個穿越小說的主角來到計算機世界,面對著像塵沙般枯燥簡單的0/1 bit、五光十色的軟件高樓大廈和像煙火一樣綻放又凋謝的各種時髦技術,你的路在哪里?你怎樣把握根本大道,創建一個屬于自己的王國?是塵沙,那看似枯燥的底層程序觀就是你真正縱橫捭闔的根基。你想在面對一個沒有源代碼的黑盒似的執行程序時,為它點石成金般地添加新功能嗎?那是上帝說要有光,即有光的神奇。你想在眾人困惑于某個詭異bug時,以逆向之刀,游刃于亂花迷人眼的反匯編迷網,一記小李飛刀直指那亂網后的真相嗎?那是紅塵游俠寂寞的瀟灑。你想看透各種輝煌技術的本質,舉重若輕嗎?那是羽扇綸巾的將帥風華。這些能力都來自本章的底層程序觀,它是你的馬步,你的正法眼。
來看看本章的功效。如果你從1.1節和1.8節中“玩”會了構造機器碼,就能理解并完成第7章的構造自定位代碼,解決this指針的傳遞問題。如果你領悟了1.3節中函數調用的所有細節,就能自己解決2.4節語言互通的奇怪bug。如果你對1.3節和1.4節有了把握,就奠定了整個第4章對象模型的基礎。第4章從底層剖析了對象,又為第5章巧妙的線程封裝和第6章中從DLL導出對象提供了根基。這條通天大路,環環相扣,均根植于本章的點點滴滴的淬煉。
好了,我們的主角,開始枯燥、瑣碎又起伏跌宕的修煉之旅吧。
- 大學計算機基礎(第二版)
- Docker技術入門與實戰(第3版)
- Android項目開發入門教程
- 從0到1:HTML+CSS快速上手
- YARN Essentials
- FFmpeg入門詳解:音視頻原理及應用
- Mastering Predictive Analytics with Python
- Learning Salesforce Einstein
- 青少年信息學競賽
- Java面向對象程序設計
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- Photoshop CC移動UI設計案例教程(全彩慕課版·第2版)
- Python物理建模初學者指南(第2版)
- Mastering Machine Learning with scikit-learn
- Tkinter GUI Programming by Example