国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

C++程序反編譯筆記

2022-10-19 21:04 作者:GC_CH  | 我要投稿

????任何可執(zhí)行程序都可以反編譯成C++源代碼,因為C++支持內嵌匯編代碼。

????目前沒有全自動的反編譯軟件,只能半自動地反編譯。

? ? 可執(zhí)行文件中包括的數(shù)據(jù)有全部變量,代碼,資源(光標,圖標,位圖等)。

????可行的反編譯過程是:

(1)將資源導出到文件,將代碼反匯編得到很多個匯編函數(shù),全局變量全部導出;

(2)借助ida pro,ghidra等軟件將匯編函數(shù)反編譯成C語言的函數(shù)的偽代碼,注:這些軟件反編譯的結果不是100%準確的,而且代碼流程很亂(包含很多goto語句);

(3)在Visual Studio中創(chuàng)建C++項目,將導出的資源,全局變量,函數(shù)偽代碼添加進來,包含必要的頭文件,解決所有的編譯錯誤(絕大多數(shù)的編譯錯誤都是類型錯誤,強制轉換就行了,強制轉換99.99%的情況都不會導致邏輯錯誤),此時已經得到了一個可以編譯的C++項目了;

(4)解決鏈接錯誤,也就是鏈接必要的庫文件,這步很簡單;

(5)解決邏輯錯誤,也就是重構數(shù)據(jù)結構和算法,這一步是最復雜的。必須要理解可執(zhí)行程序里的數(shù)據(jù)結構和算法,相當于去看別人完全沒有注釋的源代碼?。?!也相當于玩一個很復雜的解密游戲!?。?/p>

????至此,反編譯可執(zhí)行程序完畢!

C++程序反編譯筆記的評論 (共 條)

分享到微博請遵守國家法律
天等县| 五常市| 长兴县| 临夏县| 广州市| 安化县| 巴楚县| 西畴县| 六安市| 克山县| 屏东县| 洛南县| 苍梧县| 芜湖市| 城市| 郯城县| 蛟河市| 乌鲁木齐县| 阿克陶县| 榆中县| 嵊州市| 通道| 信宜市| 延寿县| 漳平市| 凤翔县| 霍山县| 晋江市| 剑川县| 农安县| 辽阳市| 江北区| 土默特左旗| 招远市| 东安县| 古浪县| 秦皇岛市| 平乐县| 陕西省| 海兴县| 桐庐县|