Unity游戏破解 - 在C++中调用FindObjectsOfType

Unity游戏破解 - 在C++中调用FindObjectsOfType

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

本文介绍了如何在Unity游戏中通过类名查找对象,适用于mono游戏。首先需初始化mono以访问游戏功能,使用“FindObjectsOfType”函数获取对象。通过创建字符串和辅助函数,可以解析类并获取所需对象,从而实现查找功能。

🎯

关键要点

  • 本文介绍了如何通过类名查找Unity游戏中的对象,仅适用于mono游戏。
  • Unity中的对象是类的实例,例如渲染的对象和本地玩家实例。
  • 使用'FindObjectsOfType'函数可以获取对象,需要先初始化mono以访问游戏内部功能。
  • 需要创建一个名为'mono-loader.h'的文件来获取mono符号,以便从C++调用它们。
  • 通过调用'LoadMonoFunctions'和执行'mono_thread_attach_func'来准备调用mono函数。
  • 在'DnSpy'中查看'UnityEngine.CoreModule'中的'Object'类,找到静态函数'FindObjectsOfType'。
  • 需要创建一个字符串来获取UnityEngine的类型,并定义'MonoString'函数以创建Mono字符串实例。
  • 实现多个辅助函数以解析类、检索mono模块和获取类方法。
  • 通过实现'GetObjectsOfType'函数,可以返回指向C#数组的指针。
  • 使用'FindObjectsByType'函数时,第一个参数是构造的对象名称字符串,格式为'<classname>, <module-name>'。
  • 通过这些步骤,用户可以在游戏中检索敌人数组并进行黑客操作。

延伸问答

如何在Unity游戏中通过类名查找对象?

可以使用'FindObjectsOfType'函数来查找对象,但需要先初始化mono以访问游戏内部功能。

在使用'FindObjectsOfType'之前需要做什么准备?

需要创建'mono-loader.h'文件以获取mono符号,并调用'LoadMonoFunctions'和'mono_thread_attach_func'。

如何构造'FindObjectsByType'函数的参数?

第一个参数是构造的对象名称字符串,格式为'<classname>, <module-name>',如果有命名空间则为'<classname>, <module-name>, <namespace>'。

在Unity中,什么是对象?

对象是类的实例,例如渲染的对象和本地玩家实例。

如何在C++中调用Unity的mono函数?

需要通过创建辅助函数来解析类、检索mono模块和获取类方法,然后实现'GetObjectsOfType'函数。

使用'DnSpy'可以查看哪些信息?

可以查看'UnityEngine.CoreModule'中的'Object'类,找到静态函数'FindObjectsOfType'。

➡️

继续阅读