Unity游戏C# dll注入

案例游戏下载

首先在网上下载个游戏案例,我就以Captain Molly游戏为例

这个游戏玩家默认生命值有5点,咱们通过dll注入修改为10点。

dnSpy

我使用dnSpy来查看Unity游戏生成的dll代码,当然你们也可以使用其他工具。

Unity游戏脚本代码最终是生成在Assembly-CSharp.dll里面,我们通过dnSpy打开Assembly-CSharp.dll进行查看。

首先可以看到使用的运行库

我们找到玩家生命值代码

通过代码可以发现,我们可以在其它dll里面调用RestoreHealth来修改玩家的生命值

(当然也可以直接修改这里的代码,这次主要演示dll注入修改)。

HKBH.dll

新建一个C# 类库,Framework就选择和前面一致的4。

添加引用

把Assembly-CSharp.dll和UnityEngine开头的dll都添加进来。

HKBHClass

新建一个HKBHClass类。

using UnityEngine;namespace HKBH
{public class HKBHClass{public static void Init(){HKBHClass.HKBHClassInstance = new GameObject();HKBHClass.HKBHClassInstance.AddComponent<Hack>();UnityEngine.GameObject.DontDestroyOnLoad(HKBHClassInstance);}public static void OnDestroy(){GameObject.Destroy(HKBHClassInstance);}private static GameObject HKBHClassInstance;}
}

Hack

新建一个Hack类。

using UnityEngine;
using ChatonShotgun;
namespace HKBH
{class Hack : MonoBehaviour{PlayerHealth playerHealth = FindObjectOfType<PlayerHealth>();private void Update(){playerHealth.RestoreHealth(10);if (Input.GetKeyDown(KeyCode.L)){HKBH.HKBHClass.OnDestroy();}}}
}

代码写完以后就可以生成dll了。

SharpMonoInjector

我们使用SharpMonoInjector工具来注入dll,当然你也可以使用其他的或者自己写一个。

测试

前面所有东西都准备好以后,打开游戏,然后使用SharpMonoInjector命令行版本来注入。

管理员身份打开cmd

使用教程

案例

结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20082.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS代码混淆,如何配置最合适?

JS混淆加密工具&#xff0c;通常有众多的加密选项。比如&#xff0c;著名的JShaman&#xff0c;中文版有十余种配置选项、英文则有二十余种配置。 ​ 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 当我们在对JS代码进行加密时&#xff0c;该启用哪些选…

SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现

系列文章&#xff1a; SpringBoot Vue前后端分离项目实战 || 一&#xff1a;Vue前端设计 SpringBoot Vue前后端分离项目实战 || 二&#xff1a;Spring Boot后端与数据库连接 SpringBoot Vue前后端分离项目实战 || 三&#xff1a;Spring Boot后端与Vue前端连接 SpringBoot V…

【调峰】储能辅助电力系统调峰的容量需求研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【数据挖掘】时间序列教程【十】

5.4 通用卡尔曼滤波 上一节中描述的状态空间模型作为观测方程的更一般的公式 和状态方程 这里是一个p1 向量是一个k1 向量, 是一个pk 矩阵, 是kk 矩阵。我们可以想到的和 给定初始状态 和 &#xff0c;预测方程为&#xff08;类似于上面&#xff09; 并且更新方程是&#x…

038、TiDB特性_聚簇索引和非聚簇索引

聚簇表 表中的行数据才能出顺序与主键存储的顺序一致表的主键即为KV映射中Key的一部分通过主键访问行记录时&#xff0c;可以直接获取行记录 create table t( a biging primary key clustered ,b varchar(255)); # a列为主键列&#xff0c;聚簇列聚簇表&#xff08;且ID为主键…

【MySQL】根据MVCC和Read View分析事务的四种隔离级别在读写场景分别是如何体现其隔离性的

目录 一、数据库并发的三种场景 二、读写场景的MVCC 1、3个&#xff08;4个&#xff09;记录隐藏列字段 2、undo log&#xff08;撤销日志&#xff09; 3、模拟MVCC场景 3.1update场景 3.2delete场景 3.3insert 3.4select场景 4、Read View 5、RR和RC的区别 5.1当…

云开发校园微社区-二手交易兼职交友微信小程序

云开发校园微社区微信小程序开源源码&#xff0c;这是一款云开发校园微社区-二手交易_兼职_交友_项目微信小程序开源源码&#xff0c;可以给你提供快捷方便的校园生活&#xff0c;有很多有趣实用的板块和功能&#xff0c;如&#xff1a;闲置交易、表白交友、疑问互答、任务兼职…

数据结构【二叉树】

数据结构之二叉树 二叉树的定义二叉树的5种基本形态二叉树的抽象类型定义二叉树的特殊类型二叉树的性质二叉树的存储结构1、顺序存储2、链式存储 遍历二叉树前序遍历中序遍历后序遍历遍历算法的分析 线索二叉树 二叉树的定义 在数据结构中&#xff0c;二叉树是n&#xff08;n&…

Databend 开源周报第 101 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 教程 | 使用 AW…

H5 与AI对话聊天框

一&#xff1a;最终实现效果展示 二&#xff1a;具体实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compa…

etcd的使用

什么是etcd ETCD是一个分布式、可靠的key-value存储的分布式系统&#xff0c;用于存储分布式系统中的关键数据&#xff1b;当然&#xff0c;它不仅仅用于存储&#xff0c;还提供配置共享及服务发现&#xff1b;基于Go语言实现 。 etcd的特点 完全复制&#xff1a;集群中的每…

opencv-图像处理基础-二值图像

opencv学习01_图像处理基础_二值图像 1&#xff0e;二值图像 二值图像是指仅仅包含黑色和白色两种颜色的图像。 在计算机中&#xff0c;通过一个栅格状排列的数据集&#xff08;矩阵&#xff09;来表示和处理图像。例如&#xff0c;图 2-1 是 一个字母 A 的图像&#xff0c;计算…