首页
社区
课程
招聘
[旧帖] [求助]XP SP2 的“系统”属性是如何最系统版本的 0.00雪花
发表于: 2009-9-24 16:24 6152

[旧帖] [求助]XP SP2 的“系统”属性是如何最系统版本的 0.00雪花

2009-9-24 16:24
6152
有一个游戏要 XP Service Pack 3 支持才能玩的, 我用的是 SP2,

如果改下面的 KEY 要重启才生效(但我不能重启):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows]
"CSDVersion"=dword:00000300

我本已为勾了 GetVersionExA ,GetVersionExW 后返回值中改成“Service Pack 3”,可以骗了“系统”属或“游戏(侠盗猎车手4)”, 但“系统”属性的还是“Service Pack 2”。
我自已在勾了 GetVersionExA ,GetVersionExW 的情况下调用 GetVersionExA, 已确实是按我指定的返回了“Service Pack 3”.....

  请问大家有什么方法可以知“系统”属性是如何检查系统版本号的?
  或有什么方法可以实现改上面的注册表 KEY 并重启的效果(但我不能重启, 有还原软件)

  先谢谢大家了...

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
PS大法,楼下继续.
2009-9-24 19:03
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
他木有调用GetVersion,而用了其他方法
2009-9-24 20:38
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
.........
2009-9-25 05:03
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主玩GTA4?
2009-9-25 13:47
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
不是,我不玩 GTA4...
2009-9-26 10:37
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
调用了, 你无分析过吗?
2009-9-26 10:38
0
雪    币: 454
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
sysdm.cpl
上传的附件:
2009-9-27 00:10
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
sysdm.cpl 调用了 GetVersionEx , 但显示的字符串“Service Pack 2”,不是用 GetVersionEx 来确定的, 也不是注册表。

请问, 你是改注册表吗?
2009-9-27 06:01
0
雪    币: 454
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果仅让它显示是"Service Pack 3",用资源编辑器改就行...
上传的附件:
2009-9-27 10:11
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
11
Peb里面0x1f4h处也有SP的版号,不过那是一个Unicode的字符串。我这边调试sysdm.cpl的时候,他显示的SP版号似乎就是从这个字符串获得的。

他查询系统的SP版号也是使用的GetVersionExW,你钩挂的时候可能没改写OSVERSIONINFO.szCSDVersion成员变量....
2009-9-27 11:00
0
雪    币: 454
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
当然最简单的是在注册表中改了,
看下面----------->
上传的附件:
2009-9-27 11:04
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
13
楼主受还原软件的困扰,改注册表得等重启吧?所以还是Hook GetVersionExW算了

不过如果你Hook了GetVersionExW就不在再挂ExA了,他会调用ExW版的。另外如果想更隐蔽一点,可以挂上ntdll.RtlGetVersion,或者自己来以暂停模式启动进程,然后把它的Peb里面的SP版号数字和字符串全部改了再让他继续运行好了。这样应该是效率最高的方法了。。。
2009-9-27 11:11
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
你好, 我改了的啊, 我还做了一个程序一测试结果, 结果如我所改和, 我自已在勾了 GetVersionExA , GetVersionExW 的情况下调用 GetVersionExA, 已确实是按我指定的返回了“Service Pack 3(OSVERSIONINFO.szCSDVersion)”.....
2009-9-27 15:23
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
  谢谢, 这个方法是好, 但对游戏不太好用, 因为这个游戏有很多进程都调用了 GetVersionExW, 我以前也试过手动直接改游戏 的 GetVersionExW 返回结果, 当时好像是改了游戏的成 4 个程序, 但还是不行, 所以改用 HOOK........
2009-9-27 15:28
0
雪    币: 148
活跃值: (59)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
我觉得是不是先看看它调用了哪些函数,然后再勾
我是新手
2009-9-27 17:52
0
雪    币: 148
活跃值: (59)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
另外侠盗飞车4早就过时啦,现在都玩《侠盗飞车5:圣地安列斯》,很不错,可以联机的,有很多服务器
2009-9-27 17:54
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
我想解决问题, 不是玩....
2009-9-29 23:45
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
19
直接调试游戏,在它判断版本的地方给改一下
2009-9-30 10:21
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
改过了, 没用!!!
2009-10-1 16:31
0
游客
登录 | 注册 方可回帖
返回
//