課程簡介:
C/C++涉獵的層面非常廣泛,,不僅適用于應(yīng)用層中的銀行系統(tǒng),,通信系統(tǒng),,交通系統(tǒng),電商后臺,支付系統(tǒng)等方面,還適用于系統(tǒng)層,操作系統(tǒng),,應(yīng)用層軟件,云計算,,大數(shù)據(jù),,嵌入式,移動互聯(lián)網(wǎng),,協(xié)義開發(fā)等方面,。不難看出的是C/C++開發(fā)是這么受歡迎。
學(xué)習(xí)目標(biāo):
通過本課程的學(xué)習(xí),,理解反匯編代碼與 C/C++ 語法的對應(yīng)關(guān)系,,掌握核心知識。
課程大綱:
第一講 基本概念
寄存器
尋址方式
常用匯編指令
C++內(nèi)聯(lián)匯編
C++入口函數(shù)
反匯編識別main函數(shù)
第二講 整型與浮點(diǎn)型
原碼,、反碼與補(bǔ)碼
整數(shù)的表示
大端與小端字節(jié)序
浮點(diǎn)數(shù)編碼方式
浮點(diǎn)寄存器與浮點(diǎn)指令
整型與浮點(diǎn)型相互轉(zhuǎn)換
第三講 指針與常量
地址
指針
引用
常量
第四講 布爾型與字符(串)
布爾型
字符型
字符串的表示
字符串求長度
字符串操作
第五講 表達(dá)式
無效表達(dá)式
賦值表達(dá)式
算術(shù)表達(dá)式
關(guān)系表達(dá)式
邏輯表達(dá)式
條件表達(dá)式
位運(yùn)算表達(dá)式
第六講 選擇結(jié)構(gòu)
if語句
if… else語句
if… else if… else語句
switch… case語句
線性跳轉(zhuǎn)表
第七講 循環(huán)結(jié)構(gòu)
while語句
do…while語句
for語句
嵌套循環(huán)
break,、continue和goto語句
各種循環(huán)結(jié)構(gòu)的效率比較
編譯器對循環(huán)結(jié)構(gòu)的優(yōu)化
第八講 變量
全局變量
局部變量
靜態(tài)變量
堆變量
第九講 函數(shù)
參數(shù)傳遞
調(diào)用約定
返回值
ebp尋址與esp尋址
第十講 數(shù)組
數(shù)組的存儲
下標(biāo)尋址與指針尋址
二維數(shù)組與多維數(shù)組
局部變量的數(shù)組
函數(shù)參數(shù)的數(shù)組
函數(shù)返回值的數(shù)組
第十一講 結(jié)構(gòu)體與類
結(jié)構(gòu)體與類的異同
對象的存儲與對齊
this指針與成員函數(shù)
成員變量的訪問
靜態(tài)成員變量
對象作為函數(shù)參數(shù)
對象作為函數(shù)返回值
第十二講 構(gòu)造函數(shù)
默認(rèn)構(gòu)造函數(shù)
局部對象的構(gòu)造函數(shù)
堆對象的構(gòu)造函數(shù)
全局對象的構(gòu)造函數(shù)
局部靜態(tài)對象的構(gòu)造函數(shù)
第十三講 拷貝構(gòu)造函數(shù)
對象定義時進(jìn)行拷貝
函數(shù)傳參時進(jìn)行拷貝
函數(shù)返回對象的拷貝
默認(rèn)拷貝構(gòu)造函數(shù)
第十四講 析構(gòu)函數(shù)
局部對象的析構(gòu)
堆對象的析構(gòu)
堆對象數(shù)組的析構(gòu)
全局對象和靜態(tài)對象的析構(gòu)
函數(shù)參數(shù)的析構(gòu)
函數(shù)返回對象的析構(gòu)
第十五講 虛函數(shù)
虛函數(shù)與虛函數(shù)表
多態(tài)的實現(xiàn)
虛函數(shù)的識別
第十六講 單繼承
繼承關(guān)系的內(nèi)存布局
繼承關(guān)系的構(gòu)造與析構(gòu)
繼承關(guān)系的虛函數(shù)
第十七講 多繼承
多重繼承的內(nèi)存布局
多重繼承的類型轉(zhuǎn)換
多重繼承的構(gòu)造過程
多重繼承的析構(gòu)過程
多繼承與虛函數(shù)
第十八講 C語言逆向?qū)嵗?nbsp;
第十九講 C++ 逆向?qū)嵗?nbsp;
第二十講 動態(tài)調(diào)試實例