在Windows 11上游玩Tinker
Windows Vista Ultimate 有個(gè)很不錯(cuò)的游戲叫Tinker,可惜僅限Windows Vista Ultimate游玩,本文記錄了為了讓Tinker 在Windows 11 上運(yùn)行對(duì)Tinker 做的修改。
啟動(dòng)失敗現(xiàn)象
此游戲僅適用于Windows Vista? Ultimate。

根據(jù)這個(gè)提示猜測(cè),如果想要游戲運(yùn)行,需要干掉游戲的系統(tǒng)版本檢測(cè)。
干掉版本檢測(cè)
這里使用IDA Freeware進(jìn)行反編譯。
首先IDA打開游戲的主程序Tinker.exe,查找游戲調(diào)用的外部接口,嘗試尋找獲取Windows 版本的API。

有一個(gè)函數(shù)名叫GetVersionExW,跟著函數(shù)名找到了調(diào)用的地方

此處即為判斷Windows 版本號(hào)的地方。

查看偽代碼并查閱GetVersionExW和GetProductInfo的文檔,推斷v48為是否是Windows Vista,v43為是否是Ultimate。若需要在Windows 11上運(yùn)行,VersionInfomation[8],即dwMinorVersion
應(yīng)當(dāng)為非0,v43的1和28為PRODUCT_ULTIMATE和PRODUCT_ULTIMATE_N,均為Ultimate的產(chǎn)品類型,需要修改為對(duì)應(yīng)Windows 10的產(chǎn)品類型,例如PRODUCT_PROFESSIONAL或PRODUCT_CORE,或修改跳轉(zhuǎn)條件為任意條件。
修改代碼
修改此處jnz和jz跳轉(zhuǎn),使跳轉(zhuǎn)條件永遠(yuǎn)不成立,跳過Widows 版本不匹配的分支


修改完成后Patch一下,運(yùn)行查看效果

運(yùn)行非常完美,甚至可以直接識(shí)別我的XBOX手柄,不過這游戲手柄體驗(yàn)一般。至此,Tinker在Windows 11上完美運(yùn)行,功能正常,可正常游戲。