在Windows 11上游玩Tinker
2023-08-21 15:46 作者:D0000000000 | 我要投稿
Windows Vista Ultimate 有个很不错的游戏叫Tinker,可惜仅限Windows Vista Ultimate游玩,本文记录了为了让Tinker 在Windows 11 上运行对Tinker 做的修改。
启动失败现象
此游戏仅适用于Windows Vista® Ultimate。

根据这个提示猜测,如果想要游戏运行,需要干掉游戏的系统版本检测。
干掉版本检测
这里使用IDA Freeware进行反编译。
首先IDA打开游戏的主程序Tinker.exe,查找游戏调用的外部接口,尝试寻找获取Windows 版本的API。

有一个函数名叫GetVersionExW,跟着函数名找到了调用的地方

此处即为判断Windows 版本号的地方。

查看伪代码并查阅GetVersionExW和GetProductInfo的文档,推断v48为是否是Windows Vista,v43为是否是Ultimate。若需要在Windows 11上运行,VersionInfomation[8],即dwMinorVersion
应当为非0,v43的1和28为PRODUCT_ULTIMATE和PRODUCT_ULTIMATE_N,均为Ultimate的产品类型,需要修改为对应Windows 10的产品类型,例如PRODUCT_PROFESSIONAL或PRODUCT_CORE,或修改跳转条件为任意条件。
修改代码
修改此处jnz和jz跳转,使跳转条件永远不成立,跳过Widows 版本不匹配的分支


修改完成后Patch一下,运行查看效果

运行非常完美,甚至可以直接识别我的XBOX手柄,不过这游戏手柄体验一般。至此,Tinker在Windows 11上完美运行,功能正常,可正常游戏。