[IL2CPP逆向] 某立志传 - 脱离Steam运行

这篇具有很好参考价值的文章主要介绍了[IL2CPP逆向] 某立志传 - 脱离Steam运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

喜欢的请支持正版,此版本仅用于学习,不可用于商业目的,请在下载后于24小时内删除。
喜欢的请支持正版,此版本仅用于学习,不可用于商业目的,请在下载后于24小时内删除。
喜欢的请支持正版,此版本仅用于学习,不可用于商业目的,请在下载后于24小时内删除。
重要的事情说三遍

前言

游戏是Unity游戏,但是用了il2cpp,非mono编译,只看GameAssembly.dll,dnspy可以pass掉了。
为了更好的分析游戏的逻辑,用到以下工具:
IDA Pro
Il2CppDumper
CheatEngine

先用Il2CppDumper 把游戏符号Dump出来,接着IDA配合CE调试分析。

一、配置逆向环境

1、IL2CppDumper

  1. 添加到环境变量
  2. 将GameAssembly.dll、global-metadata.dat单独放到一个文件夹(游戏根目录自己找)
  3. cmd调用,下面是命令格式
Il2CppDumper GameAssembly.dll global-metadata.dat [要dump的文件夹]
  1. 最终结果就是拿到下面这个目录
Wulin-Dump:.
│  dump.cs
│  il2cpp.h
│  script.json
│  stringliteral.json
└─DummyDll

2、IDA

  1. 先把GameAssembly.dll分析完(大概九万多个函数,半小时左右)
  2. 安装IDAPython(IDA7.0及以上自带,吾爱有现成的,记得要添加环境变量 PYTHONPATH)
  3. IDA左上角File ->Script File… ->Il2CppDumper 目录下的ida_with_struct.py,后面依次选择之前dump出来的script.json和il2cpp.h,等待脚本执行完成,中间可能会有警告和报错,直接无视
  4. 开始分析,符号都已经加载好了,只不过从原来的CSharp变成了cpp,需要一定逆向功底

3、CE

  1. CE自带mono分析,菜单上的Mono就是,可以打开.Net info搜索相关方法调试

二、开始逆向

1、资料

逆向之前,我们要做好充分的准备,想要入手,首先要知道Steam相关的SDK是怎么对接的,因为这是个Unity游戏,所以直接搜关键Steamwork.Net,可以参考以下文章。

[使用Steamwork.Net 接入Steam一点心得](https://zhuanlan.zhihu.com/p/523483071)
[steam游戏上架流程二:steamworks SDK API steamworks.net 对接 unity](https://blog.csdn.net/qq_42672770/article/details/104444771)

2、逆向

了解之后,知道游戏启动后会先对环境进行一些检查,并且初始化SteamManager,然后接下来会调用SteamAPI.Init()来初始化,这是个关键方法,我们从这里入手。
gameassembly.dll,unity,游戏引擎,windows
这边我们没有必要去逆向steam_api64.dll,直接往上找
gameassembly.dll,unity,游戏引擎,windows
这里看到有两个,只有第一个会执行,
gameassembly.dll,unity,游戏引擎,windows

直接在ShitimuManager__Awake下断
打开游戏,断下一直单步,发现在ShitimuManager__get_Instance里面有调用,接着下断,重启游戏,断下后回溯到了游戏主要逻辑部分,往下看,发现有个判断,如果SteamApi初始化失败则UnityEngine_Application__Quit,直接nop,重启游戏。PS:这块结合IDA看会比较清晰
gameassembly.dll,unity,游戏引擎,windows

结果发现游戏倒是不退出了,但是相关数据不正常,并且无法读取存档,再回过头来看这个函数,发现有个关键方法 WuLin_ThirdPlatformManager__OnLogin,正常从steam打开游戏,nop掉这个call,复现了之前的情况,确定就是这个call的问题。
gameassembly.dll,unity,游戏引擎,windows

调试可以拿到自己的steamid,不过貌似随便填一个都可以,为了保险还是直接把steamid填上
gameassembly.dll,unity,游戏引擎,windows

现在打开游戏,正常存档游玩。
有空还会发相关逆向教程,比如添加物品、各种修改功能…

By x1a0reN.文章来源地址https://www.toymoban.com/news/detail-779230.html

到了这里,关于[IL2CPP逆向] 某立志传 - 脱离Steam运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity的IL2CPP

    ​ 目录 背景 概念 AOT编译器 运行时库 对比 Mono IL2CPP

    2024年02月11日
    浏览(52)
  • Unity IL2CPP 游戏分析入门

    很多时候App加密本身并不难,难得是他用了一套新玩意,天生自带加密光环。例如PC时代的VB,直接ida的话,汇编代码能把你看懵。 但是要是搞明白了他的玩法,VB Decompiler一上,那妥妥的就是源码。 Unity 和 Flutter 也是如此。 最近迷上了一个小游戏 Dream Blast,今天就拿他解剖

    2024年01月18日
    浏览(46)
  • Unity 使用 IL2CPP 发布项目

    Unity的IL2CPP(Intermediate Language to C++)是一个编译技术,它将C#代码转换为C++代码,然后再编译成平台相关的二进制代码。IL2CPP提供了几个优点,特别是在性能和跨平台部署方面。以下是IL2CPP的一些主要优点: 1.性能提升 :IL2CPP通常能提供比传统的Mono运行时更好的性能,因为它

    2024年04月28日
    浏览(42)
  • Unity使用IL2CPP方式打Windows包

    笔者Unity版本2021.3.8f1 1,确保安装了对应版本的扩展包:UnitySetup-Windows-IL2CPP-Support-for-Editor 2,打包报错: 和 这里:unable-to-build-il2cpp 建议使用Visual Studio Installer补充安装一些C++相关的工具包。 3,若依旧报错类似 Building LibraryBeeartifactsWinPlayerBuildProgramei6vjejx6_b_vm6.lump.obj failed w

    2024年02月11日
    浏览(51)
  • Exception: D:\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe did not run properly!

    问题出现于Unity 2019.4 Windows il2cpp build  问题描述:  原因:由于安装的Window SDK在之前卸载时并未清空注册表中的信息所以再通过注册表信息索引Windows SDK时就会找不到被卸载的SDK。(具体问题描述:Bug - IL2CPP build problem - Unity Forum) 解决: 根据Debug中的提示找到注册表中的条

    2024年02月15日
    浏览(43)
  • 一次Unity3D IL2CPP 打包错误

    目录 一、错误描述 二、问题分析 三、解决方法 四、效果验证 五、后记 采用IL2CPP生成的时候,出现了4个错误: (1)Building LibraryBeeartifactsWinPlayerBuildProgramei6vjku08_i_vm6.lump.obj failed with output: (2)BuildFailedException: Incremental Player build failed! (3)Build completed with a result of ‘

    2024年02月03日
    浏览(45)
  • 解决Unity安卓编译错误: IL2CPP需要的资源提取失败

    解决Unity安卓编译错误: IL2CPP需要的资源提取失败 在开发Unity游戏时,我们经常会遇到各种各样的问题。其中一个常见的问题是,当我们尝试将游戏导出为Android应用程序时,可能会遇到一个名为\\\"Failed to extract resources needed by IL2CPP\\\"的错误。本文将介绍如何解决这个问题,并提供

    2024年02月03日
    浏览(48)
  • Unity 安卓构建错误:IL2cpp 需要提取的资源提取失败

    Unity 安卓构建错误:IL2cpp 需要提取的资源提取失败 问题描述: 在 Unity 中进行安卓构建时,可能会遇到一个报错信息:“failed to extract resources needed by IL2cpp”。这个错误通常发生在将 Unity 项目构建为安卓应用程序时,而 IL2cpp 则是 Unity 用于将 C# 代码编译为本地代码的工具。

    2024年02月04日
    浏览(42)
  • Unity2020 打包报错:windowUnity.IL2CPP.Building.BuilderFailedException

    在打包的时候报错:windowUnity.IL2CPP.Building.BuilderFailedException 解决方法:把IL2CPP换成mono,重新打包即可 依次点击:Edit-Player-Configuration-Mono 再次重新打包即可

    2024年02月16日
    浏览(43)
  • unity导入Android报错Unity.IL2CPP.Building.BuilderFailedException

    把从unity导出的Android包作为一个模块嵌入至Android程序 在解决了sdk31损坏等一系列问题,终于将程序成功安装到了手机上,以为就要通向光明未来了,结果在手机端调试时发现本人手机硬件(高通778,v8)不支持unity程序。 经过百度发现我导出的unity项目只支持处理器架构v7的手

    2024年02月05日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包