关于Steam的漏洞

Steam这个平台其实非常的草台班子,大部分地方没有验证或是验证很容易绕过,而且官方默许很多漏洞利用。考虑了一下,值得单独拎出来讲讲。

• 盗版游戏
各位肯定很好奇盗版Steam游戏和清单入库的原理,其实易如反掌,首先是盗版游戏,Steam诞生于2003年,2005年发展成为一个游戏发布渠道,开发者可选使用Steam自家在2004年研发的SteamStub DRM,加上一个负责和服务器通讯的Steam API dll,实际上只是套了个壳子,早在2008年就有人发现可以反编译dll重定向API调用以绕过联网验证来离线运行游戏,那个时候就已经有少量盗版Steam游戏了,2013年,SmartSteamEmu的出现让任何人都能轻松绕过Steam的DRM,到了2018年,Goldberg模拟器横空出世,使用了更成熟的框架来重定向一切请求,沿用至今,使用GBE_fork重定向配合Steamless反编译exe移除DRM壳子来使游戏完全脱离Steam运行。
一个知名的GUI客户端让任何人都能够破解Steam DRM:
https://github.com/SteamAutoCracks/Steam-auto-crack
你购买游戏之后如果有DRM可以使用Steam-auto-crack破解DRM,然后退款,以后就可以离线畅玩。注意一个账号一个月只能退款3次不然容易被平台风控。
不过此类工具只支持Steam自家DRM,对于添加了第三方DRM比如Denuvo的游戏没有效果,这类游戏比较少,截至目前Steam总量的115784个游戏中也就500个不到,数据来源SteamDB:
https://steamdb.info/stats/releases/
https://steamdb.info/search/?a=app_keynames&type=1&keyname=427&operator=1&keyvalue=&all=1
就是说99.99%的游戏都能用上述的方法破解。

• 伪装正版
Steam最大的特色是广域网联机和创意工坊,成就系统,集换式卡牌等等,脱离Steam不就都体验不到了吗?这就要清单入库上场了,作为对https://t.me/ZGQincLiqun/3393 的补充。Steam下载和运行实际上并不会验证你账号是否拥有这个游戏,这是一个本地的验证流程,客户端想要下载游戏和DLC,会先从服务器获取manifest清单文件,格式是AppID_manifestID.manifest,然后需要用DecryptionKey来解密清单,manifestID会随着游戏更新而改变,但DecryptionKey就是和AppID对应不会改变,这2个和你账号没有任何联系,一旦从服务器获取到这些内容,你就可以拿着这2个东西告诉Steam资源分发网络,“哎呀你看我有这些,我肯定是买了正版呀。”,Steam说“好!那就给你这个游戏的全部访问权限。”
除此之外,online-fix利用官方演示游戏《Spacewar》(AppID为480)来伪造AppID,获得广域网联机许可;以及CreamAPI/SmokeAPI通过伪造API调用来解锁DLC。原理大同小异。

• 解锁成就
成就可以一键全解锁,利用这个工具:
https://github.com/gibbed/SteamAchievementManager
这个工具在2008年就已经出现,成就解锁不需要任何验证,工具只需要连接Steam让对应AppID的游戏切换到运行状态,然后给服务器发出成就已解锁的信号,就和打开开关一样简单。

• 挂卡方法
游戏运行的时间足够长,就有概率获得几张集换式卡牌,所以可以通过让游戏切换到运行状态来挂卡:
https://github.com/JustArchiNET/ArchiSteamFarm
https://github.com/JonasNilson/idle_master_extended

#Steam #游戏
 
 
Back to Top

©2024 ZGQ Inc. All rights reserved.