• 注册
  • 安装教程 安装教程 关注:1785 内容:79

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

  • 查看作者
  • 打赏作者
  • 1
  • 安装教程
  • 初来乍到

    最近有点工作要做,所以往往是晚上上班,白天睡觉

    巧不巧,最近尼基塔给塔科夫上架到Steam了,SPT原有的正版验证也自然是要跟进,然后两天之内发了两个版,把SPT原有的一万年没改过的正版验证函数改了几次

    于是,我们的SPT Fuyu 2.0阵亡了两次。

    要更新也很简单,找到新的特征码,然后加上就好了。但这样也有弊端,最重要的一点就是,SPT发版的时候我刚进入梦乡,醒来已经是十几小时之后了,那怎么及时更新嘛。

    更何况,每次更新就把新的特征码加进列表,为了兼容旧版本又不得不留着旧版本,但凡他多更新几次,这特征码列表得叠成杀人书。

    而且说实话,每次更新又要重新修补,这又是多一步操作了。

    但一转头,想起来,原先最古老的思路(创建注册表项和文件),应该是能在更新后存活的。但我自己说过,这会留文件和注册表项,极其的不优雅,我总不能委曲求全然后打自己的脸吧。

    废话说多了,直接进入正题。

    既然SPT检查文件和注册表都是通过WindowsAPI,那我们直接挂钩,在需要的时候伪造返回值即可。

    我们用到的工具有:Procmon。

    怎么操作,怎么设置过滤项,百度说得很清楚,此处略过。

    直接一盯,好了,知道用的是RegOpenKey检查是不是存在了

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    顺便往旁边一盯,是用RegQueryKey获取注册表项的值,明白了。

    盯文件检查也是同理,为了截图再走一圈好麻烦,一样略过。

    那我们怎么Hook,我们用MinHook,怎么用文档也写得很明白了,我们主要讲思路。

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    直接检查是不是我们要“伪装”的注册表项,至于是哪个,能看到这一步的自然不用我再赘述

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    反正检查到只要是这个注册表项,就返回成功,告诉你确实有这个注册表项,完毕。保险起见,我给包装过的和底层的都钩住了。

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    至于注册表键值,直接返回我们的虚拟目录,完毕。它根本不需要存在于文件系统中,因为接下来我们会把文件系统访问的API也挂钩

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    和注册表同理,你问文件,有的!

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    你问文件是啥,我想让它是啥就告诉你啥。

    然后问题就解决了。

    那么怎么用呢?总不能每次都手动注入dll吧

    那就采用Dll Proxy的方法,请使用Dll Proxy Generator

    打开IDA,在导入表里找个软柿子,就user32.dll挺好的

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    然后

    老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证老思路,新方法。用简单的思路更优雅的过SPT启动器正版验证

    其余略,可以直接看源代码

    https://github.com/M3351AN/SPT-Fuyu/blob/32754921ca7bea72800c6dba21d8c679dbe64855/spt_fuyu_hook.cc

    然后拖到启动器同目录,每次启动启动器都会自动加载,完事。

    以上便是SPT Fuyu3.0的思路

    登堂入室

    没看明白,但感觉很牛,赞 [s-7]

    回复

    请登录之后再进行评论

    登录
    离线版教程
  • 今日 1
  • 内容 1047
  • 关注 1785
  • 聊天
    关注 17

    【招募】GRIFFIN TKF项目开工 期待你的加入 || 你是否想加入格里芬书写自己与人形的故事

    捐助我们

    • 微信
    • 支付宝
  • 签到
  • 任务
  • 发布
  • 模式切换
  • 偏好设置
  • 帖子间隔 侧栏位置: