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

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

C++程序反編譯筆記(16) 修正掃雷窗口位置

2023-01-02 23:51 作者:GC_CH  | 我要投稿

????目前還存在一個(gè)比較明明顯的問(wèn)題

????啟動(dòng)項(xiàng)目后, 游戲只會(huì)出現(xiàn)在屏幕右上角.

CreateWindow

????一些重命名變量和函數(shù)的操作就跳過(guò)不說(shuō)了.

????在網(wǎng)上查了一下, 窗口的位置一般是用CreateWindow, 或MoveWindow來(lái)設(shè)置的.

????首先看一下WinMain中CreateWindow的調(diào)用.

????IDA Pro命名的X 和 Y 那里就是窗口的位置. 那么如何判斷是不是這里有問(wèn)題呢? 很簡(jiǎn)單, 把這兩個(gè)參數(shù)用常量替換一下然后運(yùn)行看結(jié)果就知道了,? 如果運(yùn)行后, 游戲窗口的位置和自己設(shè)置的常量位置一致, 那么就說(shuō)明這里錯(cuò)了, 否則, 說(shuō)明創(chuàng)建窗口后有其他地方修改了窗口的位置.

????經(jīng)過(guò)測(cè)試, 窗口位置還是在右上角.

MoveWindow

????接下來(lái)查看MoveWindow的調(diào)用

????只有這兩處調(diào)用了MoveWindow, 并且這兩處都使用了X和Y的值來(lái)設(shè)置位置(v3由Y賦值). 同樣的方法, 這次窗口出現(xiàn)在了設(shè)置的位置(300, 100).

修正位置

????其實(shí)上有一個(gè)很奇怪的地方,? 對(duì)X和Y的使用都是 *(_DWORD*)&X 或 *(int *)&X這種形式, 這不就是等價(jià)于 直接取X和Y的值嗎? 難道IDA Pro的bug?

????查看X和Y的定義, 發(fā)現(xiàn)X和Y居然是BYTE類(lèi)型的, BYTE類(lèi)型只有1個(gè)字節(jié), 使用的時(shí)候確實(shí)用到了4個(gè)字節(jié), 明顯是越界了.

????將X和Y的類(lèi)型改為int并修正所有使用到X和Y的地方后. 啟動(dòng)項(xiàng)目, 結(jié)果游戲的位置正確了.

????

????

????

C++程序反編譯筆記(16) 修正掃雷窗口位置的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
抚顺市| 朔州市| 原平市| 太康县| 焦作市| 河南省| 日照市| 大庆市| 临漳县| 普宁市| 高安市| 甘南县| 盐池县| 巴中市| 临朐县| 房产| 昭觉县| 宁津县| 朔州市| 苍山县| 永福县| 铁岭市| 灵璧县| 宝鸡市| 洪泽县| 聂荣县| 绥棱县| 绵阳市| 深州市| 淅川县| 广河县| 海宁市| 宽甸| 大余县| 玛曲县| 延长县| 文水县| 搜索| 长春市| 昌平区| 德清县|