XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.MemoryEditor

【DLL】内存读写工具/编辑器

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.MemoryEditor

解决md文档乱码问题

b1b0959
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

1 个文件 +23 -16
Modified README.md +23 -16
@@ -1,57 +1,64 @@
1 1 # XFEExtension.NetCore.MemoryEditor
2 2
3 ## �����ڴ������
3 ## 内存管理器
4
5 ### 创建内存管理器(推荐使用可更新内存管理器)
6
4 7 ```csharp
5 8 public static class Program
6 9 {
7 public static UpdatableMemoryManager Manager { get; } = MemoryManager.CreateBuilder() //�����ڴ�������Ĺ�����
8 .WithAutoReacquireProcess("ExampleGame") //��Ŀ������˳����Զ����»�ȡĿ�����ƵĽ���
9 .WithFindProcessWhenCreate() //����������ʱ����ʼѰ��Ŀ�����ƵĽ��̣����ǰ��������Ŀ��������ƴ˴����Բ������ã�
10 public static UpdatableMemoryManager Manager { get; } = MemoryManager.CreateBuilder() //创建内存管理器的构建器
11 .WithAutoReacquireProcess("ExampleGame") //当目标进程退出后,自动重新获取目标名称的进程
12 .WithFindProcessWhenCreate() //创建管理器时,开始寻找目标名称的进程(如果前面设置了目标进程名称此处可以不用设置)
10 13 .BuildUpdatableManager(
11 MemoryItemBuilder.Create<int>("Level") //Ϊÿ����ַ����һ������
12 .WithResolvePointer("xxx-xxx-xx.dll", 0x0072A200, 0x14A0, 0x0, 0x80, 0xE4, 0x0, 0x1EC) //�ڴ��ַ��ģ�����ơ���ַ��ƫ�Ʋ���
13 .WithListener(), //���Ӽ�����
14 MemoryItemBuilder.Create<int>("Level") //为每个地址添加一个名称
15 .WithResolvePointer("xxx-xxx-xx.dll", 0x0072A200, 0x14A0, 0x0, 0x80, 0xE4, 0x0, 0x1EC) //内存地址的模块名称、基址和偏移部分
16 .WithListener(), //添加监听器
14 17 MemoryItemBuilder.Create<float>("HealthPoint")
15 18 .WithResolvePointer("xxx-xxx-xx.dll", 0x0072A200, 0x12E8, 0x0, 0x80, 0xE4, 0x0, 0x1E0)
16 19 .WithListener(),
17 20 MemoryItemBuilder.Create<float>("Stamina")
18 21 .WithResolvePointer("xxx-xxx-xx.dll", 0x0072A200, 0x14E0, 0x48, 0x10, 0x20, 0x50, 0x20, 0x1B0)
19 22 .WithListener());
20 //�Ƽ�ʹ�ÿɸ����ڴ������
23 //推荐使用可更新内存管理器
21 24 }
25 ```
22 26
27 ### 使用内存管理器
28
29 ```csharp
23 30 public partial class MainForm : Form
24 31 {
25 32 public MainForm()
26 33 {
27 34 InitializeComponent();
28 Program.Manager.ValueChanged += Manager_ValueChanged;//�����ڴ�ֵ�ı��¼�
35 Program.Manager.ValueChanged += Manager_ValueChanged;//订阅内存值改变事件
29 36 }
30 37
31 38 private void Manager_ValueChanged(XFEExtension.NetCore.MemoryEditor.Manager.MemoryItem sender, MemoryValue e)
32 39 {
33 Trace.WriteLine($"���ƣ�{e.CustomName} ��ַ��{sender:X}\t�Ƿ��ȡ��ֵ �ϴΣ�{e.PreviousValueGetSuccessful} ��Σ�{e.CurrentValueGetSuccessful} ֵ�ӣ�{e.PreviousValue} ���Ϊ��{e.CurrentValue}");
40 Trace.WriteLine($"名称:{e.CustomName} 地址:{sender:X}\t是否读取到值 上次:{e.PreviousValueGetSuccessful} 这次:{e.CurrentValueGetSuccessful} 值从:{e.PreviousValue} 变更为:{e.CurrentValue}");
34 41 switch (e.CustomName)
35 42 {
36 43 case "Level":
37 44 if (e.CurrentValueGetSuccessful)
38 45 {
39 if (!sender.Write(��д��ֵ))
40 Trace.WriteLine($"Level��д��ʧ��");
46 if (!sender.Write(待写入值))
47 Trace.WriteLine($"Level:写入失败");
41 48 }
42 49 break;
43 50 case "HealthPoint":
44 51 if (e.CurrentValueGetSuccessful)
45 52 {
46 if (!sender.Write(��д��ֵ))
47 Trace.WriteLine("HealthPoint��д��ʧ��");
53 if (!sender.Write(待写入值))
54 Trace.WriteLine("HealthPoint:写入失败");
48 55 }
49 56 break;
50 57 case "Stamina":
51 58 if (e.CurrentValueGetSuccessful)
52 59 {
53 if (!sender.Write(��д��ֵ))
54 Trace.WriteLine("Stamina��д��ʧ��");
60 if (!sender.Write(待写入值))
61 Trace.WriteLine("Stamina:写入失败");
55 62 }
56 63 break;
57 64 default: