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

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C++程序反編譯筆記(17) this指針參數(shù)處理

2023-01-05 22:49 作者:GC_CH  | 我要投稿

????this指針是C++成員函數(shù)中隱含的一個參數(shù), 一般是第一個參數(shù). 比如

????在對應(yīng)的匯編代碼中, 一般是用寄存器ECX來存放this指針. 上圖中的 __thiscall 是調(diào)用約定中的一種, 說明這個函數(shù)隱含有this指針. (如果有需要的話, 可以寫一篇文章來說一下調(diào)用約定)

????最開始的時候, IDA Pro將一些函數(shù)識別為了__thiscall 的, 也就是成員函數(shù). Visual Studio是不支持將函數(shù)聲明為__thiscall 的, 所以, 我將__thiscall 用宏替換為空, 就不會報錯了.

類和結(jié)構(gòu)體的識別

????在反編譯的過程中, 對this指針的處理一般是 : (1) 將this替換為其他名稱, 比如self, 因為this是C++關(guān)鍵字, 不能作為參數(shù)名. (2) 使用 #define __thiscall 替換掉__thiscall. 此時, 該函數(shù)將變成普通的函數(shù).

????對于成員變量, IDA Pro一般也是識別不出來的. 只能識別出一個類型錯誤的指針. 需要首先分析出整個類或結(jié)構(gòu)體包含的成員變量的字節(jié)數(shù). 然后根據(jù)使用到成員變量的地方詳細(xì)分析出每個變量的字節(jié)數(shù).

????分析出成員變量就完成絕大部分了. 只需要把函數(shù)放到類或結(jié)構(gòu)體中就完成了類或結(jié)構(gòu)體的識別.

????反編譯掃雷時用不到上述知識.

掃雷this指針處理

????反編譯掃雷時, 所有包含this指針的函數(shù)都是這個形式的

????也就是根本沒用到, 所以完全可以把這個參數(shù)去掉. 這種情況很可能是IDA Pro分析出錯了, 我對著匯編代碼確認(rèn)了一遍, 發(fā)現(xiàn)確實沒用到, 那么可以安心的去掉了.

????這么做的意義在于可以少量的減少代碼, 去掉一點影響分析的因素.

C++程序反編譯筆記(17) this指針參數(shù)處理的評論 (共 條)

分享到微博請遵守國家法律
禄劝| 永胜县| 万山特区| 崇仁县| 三江| 延边| 伊通| 阳春市| 绍兴市| 盐亭县| 陈巴尔虎旗| 瑞安市| 徐水县| 九龙城区| 灵丘县| 木兰县| 弋阳县| 上栗县| 连平县| 呼和浩特市| 额济纳旗| 英德市| 曲水县| 时尚| 商河县| 呼伦贝尔市| 汉沽区| 揭西县| 芜湖市| 延寿县| 长治县| 琼海市| 沂源县| 乌兰察布市| 甘谷县| 新丰县| 潜山县| 怀来县| 平江县| 栖霞市| 兴隆县|