totorowldox的blog~

SCPSL_MP2_Cheat

这是👴专属的cheat!!!

没用的misc.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

using System.IO;
using System.Threading;
using UnityEngine;
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace SCPSLhax
{
public class Misc
{
public static void Run()
{

while (true)
{
if (Settings.allowFullauto)
{
Memory.WriteMemory<long>((long)Memory.GameAssemblyModule.BaseAddress + Offset.allowFullautoOffset + 0x**, 0x**);
}
else
{
Memory.WriteMemory<long>((long)Memory.GameAssemblyModule.BaseAddress + Offset.allowFullautoOffset + 0x**, 0x**);
}


long InventoryDisplay = Memory.ReadMemory<long>((long)Memory.GameAssemblyModule.BaseAddress + Offset.InventoryDisplayOffset);
if (InventoryDisplay != 0)
{
long InventoryDisplayStaticFields = Memory.ReadMemory<long>(InventoryDisplay + 0x**);
if (InventoryDisplayStaticFields != 0)
{
long Inventory = Memory.ReadMemory<long>(InventoryDisplayStaticFields + 0x**);
if (Inventory != 0)
{
long CharacterClassManager = Memory.ReadMemory<long>(Inventory + 0x**);
if (CharacterClassManager != 0)
{
long Classes = Memory.ReadMemory<long>(CharacterClassManager + 0x**);
int CurClass = Memory.ReadMemory<int>(CharacterClassManager + 0x**);
long Entity = Memory.ReadMemory<long>(Classes + 0x** + (CurClass * 8));

float walkSpeed = Memory.ReadMemory<float>(Entity + 0x**);
float runSpeed = Memory.ReadMemory<float>(Entity + 0x**);
float jumpSpeed = Memory.ReadMemory<float>(Entity + 0x**);

long FirstPersonController = Memory.ReadMemory<long>(CharacterClassManager + 0x**);
if (FirstPersonController != 0)
{
if (Settings.Speedhack)
{
Memory.WriteMemory<float>(FirstPersonController + 0x**, walkSpeed * 1.2f);
Memory.WriteMemory<float>(FirstPersonController + 0x**, runSpeed * 1.2f);
}
else
{
Memory.WriteMemory<float>(FirstPersonController + 0x**, walkSpeed);
Memory.WriteMemory<float>(FirstPersonController + 0x**, runSpeed);
}
if(Memory.ReadMemory<bool>(CharacterClassManager + 0x**) && Settings.immh)
Memory.WriteMemory<bool>(FirstPersonController + 0x**, false);
Memory.WriteMemory<bool>(FirstPersonController + 0x**, Settings.allowFullauto);
if(Settings.Noclip106)
Memory.WriteMemory<bool>(FirstPersonController + 0x**, true);
}
}
}
}
}
Memory.WriteMemory<long>((long)Memory.GameAssemblyModule.BaseAddress + Offset.FPC + 0x**, true);
long Radio = Memory.ReadMemory<long>((long)Memory.GameAssemblyModule.BaseAddress + Offset.RadioOffset);
if (Radio != 0)
{
long RadioClass = Memory.ReadMemory<long>(Radio + 0x**);
if (RadioClass != 0)
{
Memory.WriteMemory<bool>(RadioClass + 0x**, Settings.AllRadio);
}
}

if (Settings.NoSearchTime)
{
long Pickup = Memory.ReadMemory<long>((long)Memory.GameAssemblyModule.BaseAddress + Offset.PickupOffset);
if (Pickup != 0)
{
long PickupStaticFields = Memory.ReadMemory<long>(Pickup + 0x**);
if (PickupStaticFields != 0)
{
long Instances = Memory.ReadMemory<long>(PickupStaticFields + 0x**);
if (Instances != 0)
{
long Buffer = Memory.ReadMemory<long>(Instances + 0x**);
if (Buffer != 0)
{
int Count = Memory.ReadMemory<int>(Instances + 0x**);
for (int i = 0; i < Count; i++)
{
long Entity = Memory.ReadMemory<long>(Buffer + 0x** + (i * 8));
if (Entity != 0)
{
Memory.WriteMemory<float>(Entity + 0x**, 0);
}
}
}
}
}
}
}
Thread.Sleep(50);
}
}
}
}

👴把所有地址删喽

没用的Memory.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
62

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace SCPSLhax
{
public class Memory
{
public static Process Process;
public static IntPtr ProcessHandle;

public static ProcessModule GameAssemblyModule;

public static int m_iBytesRead = 0;
public static int m_iBytesWrite = 0;

public static T ReadMemory<T>(long Adress) where T : struct
{
int ByteSize = Marshal.SizeOf(typeof(T));
byte[] buffer = new byte[ByteSize];
Kernel32.ReadProcessMemory(ProcessHandle, (IntPtr)Adress, buffer, buffer.Length, ref m_iBytesRead);

return ByteArrayToStructure<T>(buffer);
}

public static void WriteMemory<T>(long Adress, object Value)
{
byte[] buffer = StructureToByteArray(Value);

Kernel32.WriteProcessMemory(ProcessHandle, (IntPtr)Adress, buffer, buffer.Length, out m_iBytesWrite);
}

public static T ByteArrayToStructure<T>(byte[] bytes) where T : struct
{
var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned);
try
{
return (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T));
}
finally
{
handle.Free();
}
}

public static byte[] StructureToByteArray(object obj)
{
int len = Marshal.SizeOf(obj);

byte[] arr = new byte[len];

IntPtr ptr = Marshal.AllocHGlobal(len);

Marshal.StructureToPtr(obj, ptr, true);
Marshal.Copy(ptr, arr, 0, len);
Marshal.FreeHGlobal(ptr);

return arr;
}
}
}

接下来是展示图片:

img

最后!!!

赞助满100元to public!!!

打赏