x86/x64軟件逆向分析入門
你將會學(xué)到的:
掌握軟件逆向分析相關(guān)基礎(chǔ)知識、掌握常見的C語言函數(shù)反匯編的邏輯和結(jié)構(gòu)、循序漸進掌握x84/x64匯編指令含義以及用途、逐漸擁有從匯編指令代碼窺視程序功能的能力
如果曾經(jīng)想過: 1、這個軟件到底是怎么做出來的? 2、我真想看這個軟件的源代碼! 3、這個軟件不夠好,我真想把它改一下!
如果你是一個軟件逆向工程師,在別人看來如此”神秘“的軟件,在你的面前就是一堆源代碼。 選擇這個課程,趙慶明老師帶領(lǐng)你一步步解開軟件神秘面紗,讓你練就一雙可以洞穿一切軟件的慧眼......
課程目錄:
課前準備&工具安裝與配置
軟件中的逆向分析與非官方功能擴展(1)
軟件中的逆向分析與非官方功能擴展(2)
CPU指令集與最簡單的函數(shù)
剖析C語言中的經(jīng)典程序HelloWorld
函數(shù)的序言、函數(shù)的尾聲
逆向生長的堆棧
棧的用途
棧的噪音
函數(shù)與參數(shù)
整數(shù)型數(shù)據(jù)的指針傳遞(1)
整數(shù)型數(shù)據(jù)的指針傳遞(2)
整數(shù)型數(shù)據(jù)的指針傳遞(3)
整數(shù)型數(shù)據(jù)的指針傳遞(4)
函數(shù)如何獲取參數(shù)
如何接收函數(shù)的返回值
用指針做函數(shù)的參數(shù)
被廢棄的GOTO語句
條件跳轉(zhuǎn)指令(1)
條件跳轉(zhuǎn)指令(2)
條件跳轉(zhuǎn)指令(3)
條件跳轉(zhuǎn)指令(4)
23SWITCH CASE語句(1)
SWITCH CASE語句(2)
SWITCH CASE語句(3)
SWITCH CASE語句(4)
一個簡單的FOR循環(huán)
復(fù)制內(nèi)存的For循環(huán)
計算C語言字符串的長度
插播:使用VC++ 編譯匯編源碼文件
數(shù)學(xué)計算指令的替換——乘法
數(shù)學(xué)計算指令的替換——除法(續(xù)上)
FPU:浮點數(shù)的乘法和除法
FPU:浮點數(shù)的參數(shù)傳遞
FPU:浮點數(shù)大小比較
FPU:為何FPU指令用的這么少?
數(shù)組:數(shù)組的存儲結(jié)構(gòu)
數(shù)組:緩沖區(qū)溢出
數(shù)組:緩沖區(qū)溢出保護
數(shù)組:字符串指針
數(shù)組:數(shù)組的溢出和溢出保護
數(shù)組:多維數(shù)組
數(shù)組:二維字符串數(shù)組的封裝
位操作:特定位的操作
位操作:特定位的設(shè)置和清除
位操作:FPU上特定位的設(shè)置和清除
位操作:位校驗
線性同余法的偽隨機數(shù)函數(shù)
結(jié)構(gòu)體:SYSTEMTIME解析
結(jié)構(gòu)體:以數(shù)組代替結(jié)構(gòu)體
結(jié)構(gòu)體:用malloc來分配結(jié)構(gòu)體的空間
結(jié)構(gòu)體:結(jié)構(gòu)體的字段封裝
結(jié)構(gòu)體:結(jié)構(gòu)體的嵌套
結(jié)構(gòu)體:結(jié)構(gòu)體中的位操作
結(jié)構(gòu)體:用結(jié)構(gòu)體構(gòu)建浮點數(shù)
共用體:生成一個偽隨機數(shù)
|