Показать сообщение отдельно
Старый 20.01.2015, 17:47   #3
Lynatik
Нуб
Аватар для Lynatik
OFFLINE
Регистрация: 24.04.2014
Возраст: 32
Сообщений: 0
Благодарностей:
1 всего
Репутация: 4
Отправить сообщение для Lynatik с помощью ICQ Отправить сообщение для Lynatik с помощью Skype™

Цитата:
Сообщение от dark Посмотреть сообщение
Укажи, что ищешь 5 lvl указатели максимум. Он тебе их найдёт под лям. Перезайди в игру и отсеивай. Какие проблемы?
угу спасибо, немного туплю. Но жутко камп тормозит когда сканирует)
При том что камп мочный)
Вот кому интересно МП нашел)
C#
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.ComponentModel;
namespace ConsoleApplication9
{

    class Program
    {
        [Flags]
        public enum ProcessAccessFlags : uint
        {
            All = 0x001F0FFF,
            Terminate = 0x00000001,
            CreateThread = 0x00000002,
            VirtualMemoryOperation = 0x00000008,
            VirtualMemoryRead = 0x00000010,
            VirtualMemoryWrite = 0x00000020,
            DuplicateHandle = 0x00000040,
            CreateProcess = 0x000000080,
            SetQuota = 0x00000100,
            SetInformation = 0x00000200,
            QueryInformation = 0x00000400,
            QueryLimitedInformation = 0x00001000,
            Synchronize = 0x00100000
        }

        [DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(
             ProcessAccessFlags processAccess,
             bool bInheritHandle,
             int processId
        );
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [Out] byte[] lpBuffer, int dwSize, IntPtr lpNumberOfBytesRead);
        static void Main(string[] args)
        {

            var process = Process.GetProcessesByName("TERA")[0];
            Int32[] offset = {0x14,0x40,0x10,0x78};
            byte[] buffer = new byte[4];
            int bytesread;
            var baseadres = 0x400000 + 0x01CB53B8;

            var handl = OpenProcess(ProcessAccessFlags.All, false, process.Id);
            ReadProcessMemory(process.Handle, (IntPtr)baseadres, buffer, 4, IntPtr.Zero);
            for (int i = 0; i < offset.Length; i++)
            {
                baseadres = BitConverter.ToInt32(buffer, 0);
                baseadres += offset[i];
                ReadProcessMemory(process.Handle, (IntPtr)baseadres, buffer, 4, IntPtr.Zero);
            }
            var res = BitConverter.ToInt32(buffer, 0);
            
        }
    }
}
Добавлено через 5 минут
на гомнокодил ибо просто тестил ибо 1 раз работал с указателями в памяти и просто проверял)
Базовый адрес
Код:
var baseadres = 0x400000 + 0x01CB53B8;
смещения
Код:
Int32[] offset = {0x14,0x40,0x10,0x78};

Последний раз редактировалось Lynatik; 20.01.2015 в 17:54. Причина: Добавлено сообщение
 
Ответить с цитированием