Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public unsafe static byte* FindPattern(string pattern, string mask)
- {
- ProcessModule module = Process.GetCurrentProcess().MainModule;
- ulong address = (ulong)module.BaseAddress.ToInt64();
- ulong endAddress = address + (ulong)module.ModuleMemorySize;
- for (; address < endAddress; address++)
- {
- for (int i = 0; i < pattern.Length; i++)
- {
- if (mask[i] != '?' && ((byte*)address)[i] != pattern[i])
- {
- break;
- }
- else if (i + 1 == pattern.Length)
- {
- return (byte*)address;
- }
- }
- }
- return null;
- }
- void UnlockDecorator()
- {
- unsafe
- {
- IntPtr addr = (IntPtr)FindPattern("\x40\x53\x48\x83\xEC\x20\x80\x3D\x00\x00\x00\x00\x00\x8B\xDA\x75\x29",
- "xxxxxxxx????xxxxx");
- if (addr != IntPtr.Zero)
- {
- byte* g_bIsDecorRegisterLockedPtr = (byte*)(addr + *(int*)(addr + 8) + 13);
- *g_bIsDecorRegisterLockedPtr = 0;
- }
- }
- }
- void LockDecotator()
- {
- unsafe
- {
- IntPtr addr = (IntPtr)FindPattern("\x40\x53\x48\x83\xEC\x20\x80\x3D\x00\x00\x00\x00\x00\x8B\xDA\x75\x29",
- "xxxxxxxx????xxxxx");
- if (addr != IntPtr.Zero)
- {
- byte* g_bIsDecorRegisterLockedPtr = (byte*)(addr + *(int*)(addr + 8) + 13);
- *g_bIsDecorRegisterLockedPtr = 1;
- }
- }
- }
Add Comment
Please, Sign In to add comment