简单去除泰拉瑞亚的Steam验证
本帖最后由 FatPigs 于 2021-2-13 23:37 编辑第一步:用DnSpy打开Terraria.exe.很惊喜,Tr并没有加混淆,这表明去除它的Steam验证会变得容易许多。
第二步:在项目上右键转到入口点,在可疑的语句上下断点,直到有关于Steam的报错停下,锁定Steam验证的语句。
根据找到的内容:SocialAPI.Initialize(null);,再定位到SocialAPI类里的Initialize方法。
public static void Initialize(SocialMode? mode = null)
{
if (mode == null)
{
mode = new SocialMode?(SocialMode.None);
mode = new SocialMode?(SocialMode.Steam);
}
SocialAPI._mode = mode.Value;
SocialAPI._modules = new List<ISocialModule>();
SocialAPI.JoinRequests = new ServerJoinRequestsManager();
Main.OnTickForInternalCodeOnly += SocialAPI.JoinRequests.Update;
SocialMode mode2 = SocialAPI.Mode;
if (mode2 != SocialMode.Steam)
{
if (mode2 == SocialMode.WeGame)
{
SocialAPI.LoadWeGame();
}
}
else
{
SocialAPI.LoadSteam();
}
foreach (ISocialModule socialModule in SocialAPI._modules)
{
socialModule.Initialize();
}
}
根据调用方法传递的参数(null)可知会执行
mode = new SocialMode?(SocialMode.None);
mode = new SocialMode?(SocialMode.Steam);
再分析下面的语句,得到思路:避免执行SocialAPI.LoadSteam();就可以跳过Steam验证。
而我们只需要把
mode = new SocialMode?(SocialMode.Steam);
这一行注释掉,就可以避免执行SocialAPI.LoadSteam();
编辑之后保存为Terraria-NoSteam.exe,一切顺利。
关掉Steam后,双击打开保存后的 Terraria-NoSteam.exe 没有报错,顺利进入了游戏!
非常的简单 为什么要去除呢?支持技术手段探究,但不喜欢这样,如果有能力,还是购买一个正版吧。 sky1209 发表于 2021-2-13 09:50
为什么要去除呢?支持技术手段探究,但不喜欢这样,如果有能力,还是购买一个正版吧。
然后你就点进来? sky1209 发表于 2021-2-13 09:50
为什么要去除呢?支持技术手段探究,但不喜欢这样,如果有能力,还是购买一个正版吧。
你为什么要引战呢? sky1209 发表于 2021-2-13 09:50
为什么要去除呢?支持技术手段探究,但不喜欢这样,如果有能力,还是购买一个正版吧。
你来论坛给我说正版,那你注册干什么? sky1209 发表于 2021-2-13 09:50
为什么要去除呢?支持技术手段探究,但不喜欢这样,如果有能力,还是购买一个正版吧。
疑惑?这本来就是技术帖,也没提供成品啊。而且注册会员的都是来想学破解技术的吧! xq1chy 发表于 2021-2-13 10:57
然后你就点进来?
是的呢,因为,我也是玩过网上的各种版本的泰拉瑞亚,感觉非常好!然后跑去STEAM上买了正版和正版强化,还有音乐包啊。但,买完正版之后,好象一直没有玩过呢。难道属于书非借而不能读也?怪哉! 其他游戏也可以这样嘛 额,我在steamunlocked下的盗版不需要steam验证。
既然去除了steam验证,还能用创意工坊吗? 感谢分享 如果可以的话能具体出一次如何去除验证的教程吗 例如:第二步:在项目上右键转到入口点,根据方法一个一个找与Steam相关的语段(或者一个一个下断点直到出现与Steam相关的报错)。 这句我就没太看明白 如果可以的话万分感谢! 妙啊!不过gog的话没有验证。。 去除验证 有点心得了 慢慢来 学习了,按照楼主的方法值得一试。 感谢分享,GET到了! 感谢楼主分享 感谢楼主分享楼主威武霸气 怎么看上去像是Java写的 对于其他只有Steam验证的游戏,这种方法应该也是有效的吧