#1 17-12-2011 11:38

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

GTA IV и ArtMoney/CheatEngine

Допустим, есть адресс

0x11DC83C - [dword] __pLastPlayerVehicle // 1.0.7

Как его найти в ArtMoney или CheatEngine? Нужно ли ещё что-то добавлять?
Ещё пытался свериться так: перешёл в ArtMoney по адрессу 0x401000, включил тип данных "ASM instruction"
Но получаю совсем другие команды, нежели те, что вижу в IDA.


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#2 17-12-2011 13:41

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: GTA IV и ArtMoney/CheatEngine

Возможно там надо вводить не адрес, а оффсет от начала файла.

Offline

#3 17-12-2011 14:06

Jack Daniel's
Registered: 05-07-2011
Posts: 211

Re: GTA IV и ArtMoney/CheatEngine

Не знаю, как в ArtM, но в CE надо вводить адрес, и там вообще можно вводить типа такого eax.dll+смещение.
А про разность кода - в art money, наверное, стоит какой-нибудь бесплатный дизасм движок, различия не большие, но могут быть, а если уж код совсем другой, то x3

Last edited by Jack Daniel's (17-12-2011 14:08)

Offline

#4 17-02-2012 22:01

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: GTA IV и ArtMoney/CheatEngine

Я только сегодня разобрался. Надо к адресу добавлять +0x9C0000.


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#5 18-02-2012 00:32

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: GTA IV и ArtMoney/CheatEngine

Ещё пара вопросов.
1) Куда (в какую процедуру) лучше делать инжект в IV? (чтобы код работал постоянно)
2) Как настроить проект в MSVC++, чтобы после компиляции dll была готова к использованию в игре?


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#6 18-02-2012 00:42

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: GTA IV и ArtMoney/CheatEngine

Offline

#7 18-02-2012 01:44

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: GTA IV и ArtMoney/CheatEngine

Хм, как тогда делают плагины для 4? (тот же ин-гейм редактор weapon.dat)?


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#8 19-02-2012 01:48

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: GTA IV и ArtMoney/CheatEngine

Как-то так:

dwLoadOffset = (DWORD)GetModuleHandle (NULL)-0x400000;

С глобальной точки зрения, это не совсем корректный пример, потому что он позволяет получить адрес загрузки только основного модуля, но, в практических целях его хватит.

Offline

#9 22-02-2012 12:11

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: GTA IV и ArtMoney/CheatEngine

Т.е., к статичному адресу в IDA надо будет добавить dwLoadOffset?


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#10 23-02-2012 10:09

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: GTA IV и ArtMoney/CheatEngine

Да, именно так.

Offline

#11 11-03-2012 11:04

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: GTA IV и ArtMoney/CheatEngine

В общем, всё заработало, спасибо, listener.
Тут приметил, что очень часто используется регистр xmm0 и команда movss, что они делают?
IDA сразу кидает этот код в __asm{ } lol
Ну и ещё, я так и не понял, есть ли в структуре авто незавсимые crBone (или это характеристика исключительно для моделей?, - ведь в SA указатели на rwFrame хранились в структуре автомобиля...)
Или ещё одно предположение - в структуре автомобиля находятся "упрощенные" структуры crBone (которые содержат только информацию о положении компонента).


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#12 11-03-2012 11:38

Jack Daniel's
Registered: 05-07-2011
Posts: 211

Re: GTA IV и ArtMoney/CheatEngine

Это так скажем "отдельные" регистры (в x86 каждый имеет размер 64 бита, в x64 - 128) для других целей, однако можно использовать их как обычные регистры. Советую почитать об этом где-нибудь отдельно.

Попутный вопрос, если кто знает:
Как переслать из fpu регистра (ну, или памяти) в старший разряд mmx регистра данные (я знаю только как в младший)?

Last edited by Jack Daniel's (11-03-2012 14:47)

Offline

#13 12-03-2012 00:37

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: GTA IV и ArtMoney/CheatEngine

что касается xmmN - они всегда по 128 бит. В x86 их 8, в x64 - 16.
Они могут использоваться для разных целей. Самая распространенная - использование для floating point, чтобы не возиться со стековой сопроцессорной арифметикой. 

Альтернативное (вообще-то, оно задумывалось как основное) использование - параллельное выполнение действий над несколькими операндами.

   // прибавление числа ко всем элементам вектора двумя командами
    __inline Vector4& operator += (const float f) { v = _mm_add_ps (v, _mm_set_ps1 (f)); return *this; }

С пересылкой: нужно именно MMX или SSE ? MMX не работает с плавающей точкой.

@DK22Pac -
Вместо указателя на rwFrame, есть указатели на несколько структур.
Кусочек ivModels.h

class ivBaseModelInfo {  // size = 0x60
public:
// ... здесь были методы...
    phArchetypeGta *        m_pArchetype;   // +04 - физика
    gtaFragType *           m_pFragType;    // +08 - frag. используется только в ivPedModelInfo и ivVehicleModelInfo
    ivDrawableReference *   m_pDrawableRef; // +0C - модель. Используется для всех остальных классов
    Vector4             m_vCenter;      // +10
//#define m_fRadius (m_vCenter.w) // +1C
    Vector4             m_vAabbMin;     // +20
//#define m_fDrawDistance (m_vAabbMin.w) // +2C
    Vector3             m_vAabbMax;     // +30
//#define m_dwModelId (_f30.pad)  // +3C 
    DWORD               m_dwFlags;      // +40  -- 0x800000: auto allocated
    DWORD               m_dwRefCount;   // +44
    WORD                m_wTxdId;       // +48
    WORD                m_wFirst2dfxRef;// +4A  - index of the first 2dfx reference in ivModelInfoStore::ms_2dfxRefs1
    WORD                m_wAmatCount;   // +4C  - number of the first audio material
    WORD                m_wFirstAmatID; // +4E  - count of the audio materials used
    WORD                _f50;           // +50 - index of _F27FC4 
    WORD                m_wBoundId;     // +52
    WORD                m_wLodId;       // +54
    WORD                m_wAnimationId; // +56
    WORD                m_wBlendshapeId;// +58
    BYTE                m_nb2dEffectCount; // +5A
    BYTE                _f5B;   // 2dfx flags: 0x40 - have light shaft
    DWORD               _f5C;   // +5C TODO: m_dwFragTypeAssignTime ? 
};

struct ivDrawableReference {
    rage::rmcDrawable *         pDrawable;      // +0
    ivCustomShaderEffectBase *  pShaderEffect;  // +4
    DWORD                       _f8;
    ivDrawableReference *       pPrev;          // +C
    ivDrawableReference *       pNext;          // +10
// и здесь были методы
};

Offline

#14 12-03-2012 12:22

Jack Daniel's
Registered: 05-07-2011
Posts: 211

Re: GTA IV и ArtMoney/CheatEngine

А, да, невнимательно прочел его пост, попутал xmm и mmx)
А насчет пересылки: было бы хорошо по mmx, да,  т.к по нему не нашел полной информации (кроме сайтиков с десятком опкодов для работы с ним)

Last edited by Jack Daniel's (12-03-2012 12:24)

Offline

Board footer

Powered by FluxBB