最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

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++程序反編譯筆記的評論 (共 條)

分享到微博請遵守國家法律
怀安县| 全州县| 瑞丽市| 璧山县| 东港市| 会同县| 新和县| 灵丘县| 威信县| 竹北市| 栖霞市| 宁安市| 安宁市| 永春县| 洛浦县| 翁源县| 龙井市| 武功县| 长宁县| 虎林市| 龙泉市| 白水县| 双城市| 东乌珠穆沁旗| 徐汇区| 三穗县| 铁岭县| 南充市| 涞水县| 靖安县| 扶风县| 洮南市| 谷城县| 洱源县| 资中县| 商洛市| 深水埗区| 南召县| 金塔县| 威海市| 凤冈县|