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

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

反編譯記事本(3) 解決編譯錯(cuò)誤

2023-02-06 21:19 作者:GC_CH  | 我要投稿

????上一篇文章漏掉了一步, 那就是去除@<寄存器名>的操作. IDA Pro導(dǎo)出的代碼中, 如果一個(gè)函數(shù)不是常規(guī)的參數(shù)傳遞方式, 而是使用了特定的寄存器來(lái)傳遞參數(shù)的話, 這個(gè)函數(shù)會(huì)被聲明為_(kāi)_usercall, 而且函數(shù)名或參數(shù)后面會(huì)加上一個(gè)@<寄存器名>的符號(hào).

????比如這個(gè)函數(shù), 函數(shù)名后的@<eax>表示返回值放在EAX寄存器, a1后的@<eax>表示a1這個(gè)參數(shù)放在EAX寄存器中.

????記事本項(xiàng)目的編譯錯(cuò)誤很多, 接下來(lái)分類列舉解決辦法.

類型未定義

? ? (1) 對(duì)于類型, 肯定是用來(lái)聲明變量的. 如果一個(gè)類型沒(méi)有定義, 那么看使用這個(gè)類型的地方, 如果這個(gè)類型的變量沒(méi)有使用到(全局搜索), 那么可以注釋掉(或者刪掉)用這個(gè)類型聲明變量的語(yǔ)句.

????比如, 上一篇文章刪掉了 start 函數(shù), 那么只在start函數(shù)中使用到變量也是可以刪掉的.

? ? (2) 其次, 類型未定義, 很可能是沒(méi)有包含對(duì)應(yīng)的頭文件, 網(wǎng)上搜索后, 包含對(duì)應(yīng)的頭文件. 比如 _snwprintf_s 需要包含 wchar.h 才能使用.

類型對(duì)不上

????聲明了某種類型的一個(gè)變量, 但是使用其他類型的值來(lái)給這個(gè)變量賦值. 這種情況直接強(qiáng)制類型轉(zhuǎn)換一般就能解決問(wèn)題. C語(yǔ)言中大多數(shù)類型都是可以強(qiáng)制類型轉(zhuǎn)換的, 完全可以把一個(gè)結(jié)構(gòu)體變量當(dāng)作整型數(shù)組來(lái)使用.?

強(qiáng)制轉(zhuǎn)為int *

????

未初始化錯(cuò)誤

????這種錯(cuò)誤百分百是IDA Pro識(shí)別錯(cuò)誤, 屬于邏輯錯(cuò)誤, 現(xiàn)在不處理, 全部初始化為0就好.

????這里一看就是數(shù)組大小沒(méi)有識(shí)別對(duì), 但是現(xiàn)在先不管.

復(fù)雜錯(cuò)誤

????有些編譯錯(cuò)誤很麻煩, 比如直接訪問(wèn)寄存器的函數(shù). 對(duì)于這種錯(cuò)誤, 先把它放一邊, 以后再處理, 先讓項(xiàng)目可以跑起來(lái)才是硬道理. 做法是將整個(gè)函數(shù)內(nèi)的語(yǔ)句全部注釋起來(lái), 然后再加上一個(gè)throw 語(yǔ)句, 以便跑起來(lái)后運(yùn)行到這里時(shí), 提醒我們?cè)摻鉀Q這個(gè)問(wèn)題了.

????

成果

????記事本項(xiàng)目就這么多編譯錯(cuò)誤了, 好了, 現(xiàn)在可以運(yùn)行項(xiàng)目看看效果了.

????欲知后事如何, 且聽(tīng)下回分解.

反編譯記事本(3) 解決編譯錯(cuò)誤的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
广南县| 新宾| 克东县| 库车县| 鹤峰县| 麻城市| 曲阳县| 潮安县| 临邑县| 泰来县| 楚雄市| 平安县| 滦平县| 工布江达县| 曲水县| 泊头市| 习水县| 稻城县| 合作市| 秦安县| 沙坪坝区| 孟州市| 会昌县| 五莲县| 菏泽市| 奉节县| 隆回县| 金湖县| 定兴县| 浦北县| 新余市| 新绛县| 普宁市| 六枝特区| 莆田市| 西乌珠穆沁旗| 西宁市| 汨罗市| 江城| 铜梁县| 克山县|