五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

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

分享到微博請遵守國家法律
汉寿县| 望都县| 普兰店市| 张家口市| 崇阳县| 资中县| 河西区| 宁国市| 仪陇县| 雷州市| 盐亭县| 巴中市| 铅山县| 新蔡县| 曲阜市| 金华市| 永川市| 突泉县| 台中县| 博乐市| 昌宁县| 闽侯县| 曲周县| 恩施市| 辽源市| 黄梅县| 广水市| 阿尔山市| 体育| 西宁市| 皋兰县| 石柱| 休宁县| 乐东| 孝昌县| 团风县| 临漳县| 阜新市| 洪洞县| 北辰区| 古浪县|