Перейти к содержанию

Рекомендуемые сообщения

Сделал тайпдеф typedef void(__cdecl* _SendF)(int MinusOne, int One, char* ri3, int SV_ITEMACC, int Item, int sender);
Сделал саму инициализацию и вызов ф-ии

_SendF SendF = (_SendF)(0x00433E40);
SendF(0xFFFFFFFF , 1, "ri3", 0x29 , 0x1F3, 0);

Проблема только в пятом аргументе - на каждой карте он разный и для каждого предмета в игре тоже

Знаю что он храниться в регистре ecx тут 
.text:00439A18                 mov     ebx, [esi+4]
.text:00439A1B                 push    ecx                   <-------
.text:00439A1C                 call    serverPickUp]

Сам вопрос в том, как его доставать каждый раз, ну или сделать инициализацию прямо в коде

Screen

Изменено пользователем roma91212
Ссылка на комментарий
Поделиться на другие сайты

а это ecx откуда берется?выше же видно должно быть

на скрине из чата видно что он берется из [eax+4], а eax из стека

Изменено пользователем X86Jumps
Ссылка на комментарий
Поделиться на другие сайты

Только что, X86Jumps сказал:

а это ecx откуда берется?выше же видно должно быть

Что мне могут дать строки выше. Надо ведь получать значение, которое будет меняться только при подборе различных предметов

Ссылка на комментарий
Поделиться на другие сайты

а как ты хочешь получить ответ ? вот если ecx тебе нужен, то смотришь откуда он берется, берется из eax+4

ты его скорее всего знаешь, раз ты только про ecx спросил

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, roma91212 сказал:

Сам вопрос в том, как его доставать каждый раз, ну или сделать инициализацию прямо в коде

 

Ищешь указатель на ecx, делаешь сигнатуру на этот указатель и получаешь значения на лету. 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.