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

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

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

分享到微博請遵守國家法律
江津市| 肇庆市| 台湾省| 三亚市| 吴旗县| 蓝田县| 隆子县| 柯坪县| 囊谦县| 宜良县| 定安县| 周宁县| 宿松县| 兰西县| 潞城市| 棋牌| 腾冲县| 浦县| 莆田市| 通化县| 清徐县| 错那县| 天镇县| 樟树市| 涞水县| 贵定县| 怀远县| 江城| 静安区| 灵武市| 株洲市| 鄂伦春自治旗| 望都县| 玉林市| 普兰店市| 固安县| 防城港市| 鄂托克旗| 琼海市| 广安市| 栾城县|