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