[MOD] Community Code/Offset List - 1.8.5

Posts 1–15 of 16 · Page 1 of 2
[MOD] Community Code/Offset List - 1.63
I'm from the Xbox 360 modding scene and this is something that's pretty popular over there (except we do it with COD games and whatnot) so I figured we could do this here aswell!

What is this exactly?
This is a list of code/offsets that can be used or contributed to by anyone in the community. If you want something added just comment it down below and I'll add it to the list. If you post something that is not yours you must give credit for it and if you use code or offsets from this list you must give credit where it is due.

Offsets
Code:
const DWORD ScriptFunc_activateAddons = 0x0079982B;
const DWORD ScriptFunc_cameraInterest = 0x00778761;
const DWORD ScriptFunc_createMine = 0x00786CD4;
const DWORD ScriptFunc_createVehicle = 0x00797C23;
const DWORD ScriptFunc_deleteWaypoint = 0x0079DA80;
const DWORD ScriptFunc_hideBody = 0x0077695B;
const DWORD ScriptFunc_openMap = 0x0076A32C;
const DWORD ScriptFunc_player = 0x0077063A;
const DWORD ScriptFunc_preloadCamera = 0x00778692;
const DWORD ScriptFunc_preloadSound = 0x007832F7;
const DWORD ScriptFunc_scriptDone = 0x0076FAD2;
const DWORD ScriptFunc_selectPlayer = 0x00779A84;
const DWORD ScriptFunc_setPlayable = 0x00779C53;
const DWORD ScriptFunc_setPlayerRespawnTime = 0x00769FBE;
const DWORD ScriptFunc_surfaceIsWater = 0x0076AAFF;
const DWORD ScriptFunc_surfaceType = 0x0078343D;
const DWORD ScriptFunc_terminate = 0x0076FB07;

DWORD World = *(DWORD*)0x00DA8208;
DWORD EntityLink = *(DWORD*)(World + 0x13A8);
DWORD Entity = *(DWORD*)(EntityLink + 4);
DWORD VisualState = *(DWORD*)(Entity + 0x18);
Vector3 Coordinates = *(Vector3*)(VisualState + 0x28);
Code
 
MemoryHelper
Code:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace XeClutch
{
    class MemoryHelper
    {
        // Structures
        public struct Vector3
        {
            public float x, y, z;
        }

        // Variables
        public bool m_Attached;
        public IntPtr m_Handle;
        public Process m_Process;
        public string m_ProcessName;

        // Kernel Imports
        [DllImport("kernel32.dll")]
        static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [Out] byte[] lpBuffer, int dwSize, out int lpNumberOfBytesRead);
        [DllImport("kernel32.dll")]
        static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int nSize, out int lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")]
        static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool CloseHandle(IntPtr hObject);

        // Constructor
        public MemoryHelper(string szProcessName)
        {
            m_Attached = false;
            m_Handle = IntPtr.Zero;
            m_Process = null;
            m_ProcessName = szProcessName;
        }

        // Methods
        public bool Attach(int AccessFlag)
        {
            Process[] processes = Process.GetProcessesByName(m_ProcessName);
            if (processes.Length != 1)
                return (m_Attached = false);
            m_Process = processes[0];
            m_Handle = OpenProcess((int)AccessFlag, true, m_Process.Id);
            return (m_Attached = true);
        }
        public bool Detach()
        {
            try
            {
                CloseHandle(m_Handle);
                return true;
            }
            catch
            {
                return false;
            }
        }
        public void PatchCall(uint address, uint calladdress)
        {
            byte[] final = { 0xE8, 0x00, 0x00, 0x00, 0x00 };
            uint buffer = 0xFFFFFFFF - (address - calladdress);
            if (calladdress > (address - 5))
                buffer = calladdress - (address + 5);
            Array.Copy(BitConverter.GetBytes(buffer), 0, final, 1, 4);
            WriteBytes(address, final);
        }
        public void PatchJump(uint address, uint jumpaddress)
        {
            byte[] final = { 0xE9, 0x00, 0x00, 0x00, 0x00 };
            uint buffer = 0xFFFFFFFF - (address - jumpaddress);
            if (jumpaddress > (address - 5))
                buffer = jumpaddress - (address + 5);
            Array.Copy(BitConverter.GetBytes(buffer), 0, final, 1, 4);
            WriteBytes(address, final);
        }
        public byte ReadByte(uint address)
        {
            return ReadBytes(address, 1)[0];
        }
        public byte[] ReadBytes(uint address, int len)
        {
            int buffer = 0;
            byte[] output = new byte[len];
            bool worked = ReadProcessMemory(m_Handle, (IntPtr)address, output, len, out buffer);
            int err = Marshal.GetLastWin32Error();
            return output;
        }
        public float ReadFloat(uint address)
        {
            return BitConverter.ToSingle(ReadBytes(address, 4), 0);
        }
        public string ReadString(uint address, int len)
        {
            return Encoding.ASCII.GetString(ReadBytes(address, len));
        }
        public uint ReadUInt32(uint address)
        {
            return BitConverter.ToUInt32(ReadBytes(address, 4), 0);
        }
        public Vector3 ReadVector3(uint address)
        {
            Vector3 ret;
            ret.x = ReadFloat(address);
            ret.y = ReadFloat(address + 4);
            ret.z = ReadFloat(address + 8);
            return ret;
        }
        public uint SearchBytes(uint address, int len, byte[] data)
        {
            byte[] bytes = ReadBytes(address, len);
            string bytestosearch = "";
            string bytesscanning = "";
            foreach (byte b in data)
                bytestosearch += b.ToString("X2");
            for (uint i = 0; i < (len - data.Length); i++)
            {
                bytesscanning = "";
                for (int j = 0; j < data.Length; i++)
                    bytesscanning += bytes[i + j].ToString("X2");
                if (bytesscanning == bytestosearch)
                    return address + i;
            }
            return 0;
        }
        public uint SearchFloat(uint address, int len, float data)
        {
            return SearchBytes(address, len, BitConverter.GetBytes(data));
        }
        public uint SearchString(uint address, int len, string data)
        {
            return SearchBytes(address, len, Encoding.ASCII.GetBytes(data));
        }
        public uint SearchUInt32(uint address, int len, uint data)
        {
            return SearchBytes(address, len, BitConverter.GetBytes(data));
        }
        public void WriteByte(uint address, byte data)
        {
            WriteBytes(address, new byte[] { data });
        }
        public void WriteBytes(uint address, byte[] data)
        {
            int buffer = 0;
            WriteProcessMemory(m_Handle, (IntPtr)address, data, data.Length, out buffer);
        }
        public void WriteFloat(uint address, float data)
        {
            WriteBytes(address, BitConverter.GetBytes(data));
        }
        public void WriteNOP(uint address, int len)
        {
            byte[] nop = new byte[len];
            for (int i = 0; i < len; i++)
                nop[i] = 0x90;
            WriteBytes(address, nop);
        }
        public void WriteString(uint address, string data)
        {
            WriteBytes(address, Encoding.ASCII.GetBytes(data));
        }
        public void WriteUInt32(uint address, uint data)
        {
            WriteBytes(address, BitConverter.GetBytes(data));
        }
        public void WriteVector3(uint address, Vector3 data)
        {
            WriteFloat(address, data.x);
            WriteFloat(address + 4, data.y);
            WriteFloat(address + 8, data.z);
        }
    }
}
wait arn't u that guy who bought xelive from s7 pro then got scammed by dreammods . anyway welcome to dayz modding and btw you only need to get offsets per game updates. like right now its 1.63 ( have been for lik 1 year) not by dayzmod verisons like dayzmod,epoch,overwatch ect..
Quote Originally Posted by 5^*hdrrfgfbs#%R$ View Post
wait arn't u that guy who bought xelive from s7 pro then got scammed by dreammods . anyway welcome to dayz modding and btw you only need to get offsets per game updates. like right now its 1.63 ( have been for lik 1 year) not by dayzmod verisons like dayzmod,epoch,overwatch ect..
Dream bought XeLiveHive from Godly (S7 Pro) and hired me as the main dev, after I had gotten the server up and running I stayed for awhile, made some sales and decided to leave because Dream was very unprofessional about running the server. One of our agreements (since he was banned from PayPal) was that if any sales that I had acted as a middleman (the buyer sent me the money through PayPal and I would buy Dream an Amazon card for the same amount) had been disputed he would send me the money I lost from the dispute. Well, that happened and I lost over $650 and as a result I was sitting at about -$500. He refused to pay me so I did some things to the server that I'm not completely comfortable saying on here.

Anyways, thanks and so I guess I should go by the version of the arma2oa file then?
Yeah arma 2 oa version. I would suggest you start off with something easier like csgo or something with vac . I would also suggest to learn c++ , kernel stuff.
Quote Originally Posted by 5^*hdrrfgfbs#%R$ View Post
Yeah arma 2 oa version. I would suggest you start off with something easier like csgo or something with vac . I would also suggest to learn c++ , kernel stuff.
I've messed with Halo Online before and made a pretty effective trainer (full projectile editing, infinite ammo, god mode, etc..) so I have a little bit of experience. I also know C++ very well.
Quote Originally Posted by Joshe343 View Post
I've messed with Halo Online before and made a pretty effective trainer (full projectile editing, infinite ammo, god mode, etc..) so I have a little bit of experience. I also know C++ very well.
Ok <3 , I would suggest making your cheat internal . Making a external is a bit harder with battleye now.
Quote Originally Posted by 5^*hdrrfgfbs#%R$ View Post
Ok <3 , I would suggest making your cheat internal . Making a external is a bit harder with battleye now.
Yeah I've heard. I really just wanted to make an external radar to keep people from sneaking up on me (I'm honestly not big on cheating unless the cheats involve non-malicious scripts (scripts that don't negatively impact other players) on games like GTA V). I've heard of people unregistering the callback OpenProcess callback to read from the arma2oa process while BattlEye is enabled and I've also heard of people writing up their own method of reading from the process that doesn't involve OpenProcess or ReadProcessMemory (I'm trying to find out how I'd be able to do this because it seems very interesting).

EDIT: Would it be possible to make an internal cheat FUD? The only way I can think of actually making the cheat internal is installing a hook somewhere in the game (effectively writing over some point of the process' memory which would get picked up by BattlEye unless you installed another hook in BattlEye that spoofed that check).
Quote Originally Posted by Joshe343 View Post
Yeah I've heard. I really just wanted to make an external radar to keep people from sneaking up on me (I'm honestly not big on cheating unless the cheats involve non-malicious scripts (scripts that don't negatively impact other players) on games like GTA V). I've heard of people unregistering the callback OpenProcess callback to read from the arma2oa process while BattlEye is enabled and I've also heard of people writing up their own method of reading from the process that doesn't involve OpenProcess or ReadProcessMemory (I'm trying to find out how I'd be able to do this because it seems very interesting).

EDIT: Would it be possible to make an internal cheat FUD? The only way I can think of actually making the cheat internal is installing a hook somewhere in the game (effectively writing over some point of the process' memory which would get picked up by BattlEye unless you installed another hook in BattlEye that spoofed that check).
Internal cheats can never be COMPLETELY FUD. Battleye can pick it up, that is, if they knew anything about keeping a game secure.
Quote Originally Posted by Declared View Post
Internal cheats can never be COMPLETELY FUD. Battleye can pick it up, that is, if they knew anything about keeping a game secure.
So you're saying that external cheats can?
Quote Originally Posted by gtaplayer2 View Post
So you're saying that external cheats can?
If you look closely he ASKED about INTERNAL cheats. So I informed him on internal cheats. Thanks for not reading the original post though.
Quote Originally Posted by Declared View Post
If you look closely he ASKED about INTERNAL cheats. So I informed him on internal cheats. Thanks for not reading the original post though.
You specified that INTERNAL cheats can never be completly fud. So I asked about external ones. What's your problem?
glad to see a new face in the community
Quote Originally Posted by Joshe343 View Post
I'm from the Xbox 360 modding scene and this is something that's pretty popular over there (except we do it with COD games and whatnot) so I figured we could do this here aswell!

What is this exactly?
This is a list of code/offsets that can be used or contributed to by anyone in the community. If you want something added just comment it down below and I'll add it to the list. If you post something that is not yours you must give credit for it and if you use code or offsets from this list you must give credit where it is due.

Offsets
Code:
const DWORD ScriptFunc_activateAddons = 0x0079982B;
const DWORD ScriptFunc_cameraInterest = 0x00778761;
const DWORD ScriptFunc_createMine = 0x00786CD4;
const DWORD ScriptFunc_createVehicle = 0x00797C23;
const DWORD ScriptFunc_deleteWaypoint = 0x0079DA80;
const DWORD ScriptFunc_hideBody = 0x0077695B;
const DWORD ScriptFunc_openMap = 0x0076A32C;
const DWORD ScriptFunc_player = 0x0077063A;
const DWORD ScriptFunc_preloadCamera = 0x00778692;
const DWORD ScriptFunc_preloadSound = 0x007832F7;
const DWORD ScriptFunc_scriptDone = 0x0076FAD2;
const DWORD ScriptFunc_selectPlayer = 0x00779A84;
const DWORD ScriptFunc_setPlayable = 0x00779C53;
const DWORD ScriptFunc_setPlayerRespawnTime = 0x00769FBE;
const DWORD ScriptFunc_surfaceIsWater = 0x0076AAFF;
const DWORD ScriptFunc_surfaceType = 0x0078343D;
const DWORD ScriptFunc_terminate = 0x0076FB07;

DWORD World = *(DWORD*)0x00DA8208;
DWORD EntityLink = *(DWORD*)(World + 0x13A8);
DWORD Entity = *(DWORD*)(EntityLink + 4);
DWORD VisualState = *(DWORD*)(Entity + 0x18);
Vector3 Coordinates = *(Vector3*)(VisualState + 0x28);
Code
 
MemoryHelper
Code:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace XeClutch
{
    class MemoryHelper
    {
        // Structures
        public struct Vector3
        {
            public float x, y, z;
        }

        // Variables
        public bool m_Attached;
        public IntPtr m_Handle;
        public Process m_Process;
        public string m_ProcessName;

        // Kernel Imports
        [DllImport("kernel32.dll")]
        static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [Out] byte[] lpBuffer, int dwSize, out int lpNumberOfBytesRead);
        [DllImport("kernel32.dll")]
        static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int nSize, out int lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")]
        static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool CloseHandle(IntPtr hObject);

        // Constructor
        public MemoryHelper(string szProcessName)
        {
            m_Attached = false;
            m_Handle = IntPtr.Zero;
            m_Process = null;
            m_ProcessName = szProcessName;
        }

        // Methods
        public bool Attach(int AccessFlag)
        {
            Process[] processes = Process.GetProcessesByName(m_ProcessName);
            if (processes.Length != 1)
                return (m_Attached = false);
            m_Process = processes[0];
            m_Handle = OpenProcess((int)AccessFlag, true, m_Process.Id);
            return (m_Attached = true);
        }
        public bool Detach()
        {
            try
            {
                CloseHandle(m_Handle);
                return true;
            }
            catch
            {
                return false;
            }
        }
        public void PatchCall(uint address, uint calladdress)
        {
            byte[] final = { 0xE8, 0x00, 0x00, 0x00, 0x00 };
            uint buffer = 0xFFFFFFFF - (address - calladdress);
            if (calladdress > (address - 5))
                buffer = calladdress - (address + 5);
            Array.Copy(BitConverter.GetBytes(buffer), 0, final, 1, 4);
            WriteBytes(address, final);
        }
        public void PatchJump(uint address, uint jumpaddress)
        {
            byte[] final = { 0xE9, 0x00, 0x00, 0x00, 0x00 };
            uint buffer = 0xFFFFFFFF - (address - jumpaddress);
            if (jumpaddress > (address - 5))
                buffer = jumpaddress - (address + 5);
            Array.Copy(BitConverter.GetBytes(buffer), 0, final, 1, 4);
            WriteBytes(address, final);
        }
        public byte ReadByte(uint address)
        {
            return ReadBytes(address, 1)[0];
        }
        public byte[] ReadBytes(uint address, int len)
        {
            int buffer = 0;
            byte[] output = new byte[len];
            bool worked = ReadProcessMemory(m_Handle, (IntPtr)address, output, len, out buffer);
            int err = Marshal.GetLastWin32Error();
            return output;
        }
        public float ReadFloat(uint address)
        {
            return BitConverter.ToSingle(ReadBytes(address, 4), 0);
        }
        public string ReadString(uint address, int len)
        {
            return Encoding.ASCII.GetString(ReadBytes(address, len));
        }
        public uint ReadUInt32(uint address)
        {
            return BitConverter.ToUInt32(ReadBytes(address, 4), 0);
        }
        public Vector3 ReadVector3(uint address)
        {
            Vector3 ret;
            ret.x = ReadFloat(address);
            ret.y = ReadFloat(address + 4);
            ret.z = ReadFloat(address + 8);
            return ret;
        }
        public uint SearchBytes(uint address, int len, byte[] data)
        {
            byte[] bytes = ReadBytes(address, len);
            string bytestosearch = "";
            string bytesscanning = "";
            foreach (byte b in data)
                bytestosearch += b.ToString("X2");
            for (uint i = 0; i < (len - data.Length); i++)
            {
                bytesscanning = "";
                for (int j = 0; j < data.Length; i++)
                    bytesscanning += bytes[i + j].ToString("X2");
                if (bytesscanning == bytestosearch)
                    return address + i;
            }
            return 0;
        }
        public uint SearchFloat(uint address, int len, float data)
        {
            return SearchBytes(address, len, BitConverter.GetBytes(data));
        }
        public uint SearchString(uint address, int len, string data)
        {
            return SearchBytes(address, len, Encoding.ASCII.GetBytes(data));
        }
        public uint SearchUInt32(uint address, int len, uint data)
        {
            return SearchBytes(address, len, BitConverter.GetBytes(data));
        }
        public void WriteByte(uint address, byte data)
        {
            WriteBytes(address, new byte[] { data });
        }
        public void WriteBytes(uint address, byte[] data)
        {
            int buffer = 0;
            WriteProcessMemory(m_Handle, (IntPtr)address, data, data.Length, out buffer);
        }
        public void WriteFloat(uint address, float data)
        {
            WriteBytes(address, BitConverter.GetBytes(data));
        }
        public void WriteNOP(uint address, int len)
        {
            byte[] nop = new byte[len];
            for (int i = 0; i < len; i++)
                nop[i] = 0x90;
            WriteBytes(address, nop);
        }
        public void WriteString(uint address, string data)
        {
            WriteBytes(address, Encoding.ASCII.GetBytes(data));
        }
        public void WriteUInt32(uint address, uint data)
        {
            WriteBytes(address, BitConverter.GetBytes(data));
        }
        public void WriteVector3(uint address, Vector3 data)
        {
            WriteFloat(address, data.x);
            WriteFloat(address + 4, data.y);
            WriteFloat(address + 8, data.z);
        }
    }
}
Why not put them all in a struct?!?!?
Quote Originally Posted by gladtwoown View Post
Why not put them all in a struct?!?!?
Because I feel like I don't have enough mapped out and there would be too many things that aren't labeled properly.
Quote Originally Posted by Joshe343 View Post
Because I feel like I don't have enough mapped out and there would be too many things that aren't labeled properly.
or just use reclass classes, much more efficient.
Posts 1–15 of 16 · Page 1 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?