Помогите с выбором оффсетов

Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
Здравствуйте, помогите с выбором оффсетов.
В данном видео человек использует оффсеты plr_num_offset, plr_list_offset, hp_offset и оффсет координат.
Какие оффсеты из этой темы: https://yougame.biz/threads/15306/page-2 относятся к его оффсетам?
 
Модератор форума
Модератор
Статус
Онлайн
Регистрация
2 Дек 2016
Сообщения
2,375
Реакции[?]
1,880
Поинты[?]
35K
hp_offset = m_iHealth;
plr_list_offset = пробуй сам найти , я хз
plr_num_offset = m_iTeamNum ;
p.s координаты можно и без оффсета найти :roflanEbalo:
 
//comment your shit paste
Пользователь
Статус
Оффлайн
Регистрация
16 Апр 2017
Сообщения
450
Реакции[?]
119
Поинты[?]
0
А как же нетвар? Ой бля, судя из темы у тебя его нет
 
Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
Имею вот такой код:
Код:
#include "hProcess.h"
#include "Offsets.h"
byte* ReadMemory(DWORD address, DWORD size)
{
    static byte* bytes = new byte[size];
    ReadProcessMemory(HandleProcess, (void*) address, bytes, size, NULL);
    CloseHandle(HandleProcess);
    return bytes;
}

DWORD CreateVar(DWORD address, DWORD size)
{
    byte* buffer = ReadMemory(address, size);
    DWORD buffer2 = 0;
    memcpy(&buffer2, buffer, sizeof(DWORD));
    return buffer2;
}

int main()
{
    
    return 0;
}
Код:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>

using namespace std;

LPCSTR ProcessName = "csgo.exe";

DWORD FindProcessByName(LPCSTR ProcessName)
{
    HANDLE hSnapshot;
    PROCESSENTRY32 pEntry = { 0 };
    pEntry.dwSize = sizeof(pEntry);
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
    if (hSnapshot == INVALID_HANDLE_VALUE)
    {
        CloseHandle(hSnapshot);
        return 0;
    }
    if (Process32First(hSnapshot, &pEntry))
    {
        while (Process32Next(hSnapshot, &pEntry))
        {
            if (!lstrcmpi(ProcessName, pEntry.szExeFile))
            {
                CloseHandle(hSnapshot);
                return pEntry.th32ProcessID;
            }
        }
    }
    CloseHandle(hSnapshot);
    return FALSE;
}

DWORD ProcessID = FindProcessByName(ProcessName);

DWORD GetModuleNamePointer(LPCSTR MoudleName, DWORD ProcessID)
{
    MODULEENTRY32 mEntry = { 0 };
    HANDLE hSnapshot;
    mEntry.dwSize = sizeof(mEntry);
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
    if (hSnapshot == INVALID_HANDLE_VALUE)
    {
        CloseHandle(hSnapshot);
        return 0;
    }
    if (Module32First(hSnapshot, &mEntry))
    {
        while (Module32Next(hSnapshot, &mEntry))
        {
            if (!lstrcmpi(mEntry.szModule, MoudleName))
            {
                CloseHandle(hSnapshot);
                return (DWORD)mEntry.modBaseAddr;
            }
        }
    }
    CloseHandle(hSnapshot);
    return FALSE;
}

class GetModulePointer
{
public:
    DWORD DLLServer = GetModuleNamePointer("server.dll", ProcessID);
    DWORD DLLEngine = GetModuleNamePointer("engine.dll", ProcessID);
    DWORD DLLClient = GetModuleNamePointer("client.dll", ProcessID);
    DWORD DLLVGUI = GetModuleNamePointer("vguimatsurface.dll", ProcessID);
};

GetModulePointer ModulePointer;

HANDLE Handle(DWORD ProcessID)
{
    HANDLE HandleProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
    if (HandleProcess) return HandleProcess;
    CloseHandle(HandleProcess);
    cout << "ErrorTakeHandle!" << endl;
    return NULL;
}

HANDLE HandleProcess = Handle(ProcessID);
Код:
const DWORD i_TeamNumber = 0x000000F0;
DWORD dwLocalPlayer = 0xA9C0DC;
DWORD dwEntityList = 0x4A78EE4;
DWORD m_iHealth = 0xFC;
Просто хочется сделать, как у этого человека.
Был бы рад любой помощи.
 
masta copypasta
Участник
Статус
Оффлайн
Регистрация
2 Июн 2017
Сообщения
683
Реакции[?]
253
Поинты[?]
0
Код:
const DWORD i_TeamNumber = 0xF0;
DWORD dwLocalPlayer = 0xA9C0DC;
DWORD dwEntityList = 0x4A78EE4;
DWORD m_iHealth = 0xFC;
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
Ну там челик weird первый оффсет превратил в константу, по такому канону и последний надо тоже. Если менять там оффсеты мануально, то можно вообще все в константы превратить
 
Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
Ребят, на что указывают оффсеты LocalPlayer и EntityList?
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
Ребят, на что указывают оффсеты LocalPlayer и EntityList?
LocalPlayer = Ты сам
EntityList = твое окружение
Если будешь с ними работать, то не забудь сдвигать относительно client.dll
 
Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
LocalPlayer = Ты сам
EntityList = твое окружение
Если будешь с ними работать, то не забудь сдвигать относительно client.dll
Т.е., мои координаты будут равны Client.dll + LocalPlayer, а координаты всех остальных client.dll + EntityList + любая переменная * 0x10?
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
Т.е., мои координаты будут равны Client.dll + LocalPlayer, а координаты всех остальных client.dll + EntityList + любая переменная * 0x10?
Client.dll + LocalPlayer = PlayerBase
PlayerBase + Офсет = Ты уже получаешь рабочую инфу
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Т.е., мои координаты будут равны Client.dll + LocalPlayer, а координаты всех остальных client.dll + EntityList + любая переменная * 0x10?
Мой совет: Напиши простенький дампер для своего чита. Это не так сложно сделать.
 
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
999
Реакции[?]
1,209
Поинты[?]
3K
Т.е., мои координаты будут равны Client.dll + LocalPlayer, а координаты всех остальных client.dll + EntityList + любая переменная * 0x10?
не любая переменная и номер(индекс) игрока в итерации твоего листа
Код:
for(size_t i = 0; i < PlayerCount; i++)
{
DWORD ptrEntityObject = Read(client.dll + EntityList + i * 0x10,sizeof(DWORD));
if(!ptrEntityObject)
      continue;

//todo
}

client.dll + EntityList это будет указателем на твою таблицу объектов(игроков)
0x10 - смещение между игроками(хотя оно тут какое-то маленькое)

Код:
class EntityList
{
public:
DWORD* Player0; //0x0000
   char _0x0004[0xC]; //0x0004 
DWORD* Player1; //0x0010
   char _0x0014[0xC]; //0x0014
DWORD* Player2; //0x0020
   char _0x0024[0xC]; //0x0024 
DWORD* Player3; //0x0030
 //.............
};
 
Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
Спасибо всем, кто помогал. Мне alexuiop1337 посоветовал посмотреть shock byte'a и мне его видео уроки действительно помогли.
 
Сверху Снизу