无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ó)家法律
江阴市| 富宁县| 乌苏市| 宜宾市| 大新县| 通山县| 湖口县| 昌黎县| 商南县| 巴南区| 景德镇市| 多伦县| 古交市| 桑日县| 阳江市| 阿鲁科尔沁旗| 郎溪县| 桃园市| 神农架林区| 常州市| 类乌齐县| 蓬莱市| 舟曲县| 吉安县| 乌什县| 新干县| 章丘市| 昂仁县| 潞城市| 南丰县| 鲁甸县| 阜城县| 滁州市| 富源县| 出国| 肥西县| 周口市| 天等县| 江西省| 湘阴县| 天峨县|