forked from XIV-Tools/CustomizePlus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNopHookViewModel.cs
61 lines (51 loc) · 1 KB
/
NopHookViewModel.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// © Anamnesis.
// Developed by W and A Walsh.
// Licensed under the MIT license.
namespace Anamnesis.Memory
{
using System;
public class NopHookViewModel
{
private IntPtr address;
private byte[] originalValue;
private byte[] nopValue;
private bool value;
public NopHookViewModel(IntPtr address, int count)
{
this.address = address;
this.originalValue = new byte[count];
this.nopValue = new byte[count];
MemoryService.Read(this.address, this.originalValue, this.originalValue.Length);
for (int i = 0; i < count; i++)
{
this.nopValue[i] = 0x90;
}
}
public bool Enabled
{
get
{
return this.value;
}
set
{
this.value = value;
this.SetEnabled(value);
}
}
public void SetEnabled(bool enabled)
{
this.value = enabled;
if (enabled)
{
// Write Nop
MemoryService.Write(this.address, this.nopValue);
}
else
{
// Write the original value
MemoryService.Write(this.address, this.originalValue);
}
}
}
}