nedix Опубликовано 13 сентября, 2018 Поделиться Опубликовано 13 сентября, 2018 Приветствую. В игре есть тренажеры (например штанга), чтобы качаться нужно зажимать определенные клавиши. Используя Cheat Engine и его автоассемблер, хочу чтоб при нажатии хоткея посылался код, отвечающий за поднятие штанги. В Cheat Engine я нашел адрес (единственный, статический) и выявил инструкции (их 4): Спойлер 00467402 - DB 00 - fild dword ptr [eax] 00466456 - 8B 17 - mov edx,[edi] 00465FD9 - 8B 07 - mov eax,[edi] 00465F3F - 89 07 - mov [edi],eax Я пытался по разному добавлять код одной из инструкций, но никаких результатов не дало. Делал это через Template - AOB Injection и копировал в "newmem" содержимое 'code": Спойлер aobscanmodule(musk3,gta_sa.exe,89 07 5F 32 C0) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: mov [edi],eax pop edi xor al,al code: mov [edi],eax pop edi xor al,al jmp return musk3: jmp newmem return: registersymbol(musk3) Единственного результата добился, вылета, когда вставил все содержимое одной из инструкций: Спойлер newmem: mov edi,eax call gta_sa.exe+64790 fild dword ptr [eax] jmp gta_sa.exe+6717B push 02 jmp return code: fild dword ptr [eax] jmp gta_sa.exe+6717B jmp return Будьте добры, укажите на ошибки. Благодарю. P.S. Вообще хочу подобное реализовать в мультиплеере. Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuzia Опубликовано 13 сентября, 2018 Поделиться Опубликовано 13 сентября, 2018 16 часов назад, nedix сказал: Вообще хочу подобное реализовать в мультиплеере. Если значения/данные хранятся на сервере. То это дохлый номер. 16 часов назад, nedix сказал: newmem: mov [edi],eax pop edi xor al,al code: mov [edi],eax pop edi xor al,al jmp return Так ты же ничего не поменял. Оно просто взяло и повторило то что и должно было быть сделано. К примеру. Если бы ты сделал: newmem: add eax, #100 mov [edi],eax pop edi xor al,al Вот тогда, может быть, ты бы что-то получил. Ссылка на комментарий Поделиться на другие сайты Поделиться
nedix Опубликовано 14 сентября, 2018 Автор Поделиться Опубликовано 14 сентября, 2018 6 часов назад, Yuzia сказал: Если значения/данные хранятся на сервере. То это дохлый номер. Ну фиг знает по идеи да, но как то же взламывают мп игры. 6 часов назад, Yuzia сказал: Так ты же ничего не поменял. Оно просто взяло и повторило то что и должно было быть сделано. Ну так мне это и надо. Как бы определенное нажатие клавиш в игре вызывает код, который отвечает за +1 к скилу. Мне нужно просто самому вызвать этот же код. Возможно ошибаюсь. Ссылка на комментарий Поделиться на другие сайты Поделиться
nedix Опубликовано 14 сентября, 2018 Автор Поделиться Опубликовано 14 сентября, 2018 Только сейчас заметил, что тему переименовали и разместили в раздел мультиплеера. Хотя изначально вопрос был и остается по синглплееру. А про мультиплеер я упомянул, на тот случай если кто-то уже этим вопросом занимался. Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 Я не правильно понял направление разговора, в котором шла тема, поэтому перенес. Окей, я тогда перенесу обратно и удалю лишние сообщения, чтобы не смущать людей. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 8 часов назад, nedix сказал: Как бы определенное нажатие клавиш в игре вызывает код, который отвечает за +1 к скилу. Мне нужно просто самому вызвать этот же код. Есть же статья на форуме по реверсу чит-кодов в гта. Ссылка на комментарий Поделиться на другие сайты Поделиться
nedix Опубликовано 14 сентября, 2018 Автор Поделиться Опубликовано 14 сентября, 2018 @partoftheworlD, если ты об этом, спасибо, буду изучать Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 Еще наверное может вот эту посмотреть: Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 48 минут назад, nedix сказал: если ты об этом, спасибо, буду изучать нет, про 9 минут назад, srg91 сказал: Ссылка на комментарий Поделиться на другие сайты Поделиться
nedix Опубликовано 14 сентября, 2018 Автор Поделиться Опубликовано 14 сентября, 2018 35 минут назад, srg91 сказал: Еще наверное может вот эту посмотреть: Я так понял, чтобы сделать что-то в игре кодом, нужно создать поток "createthread"? Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 3 минуты назад, nedix сказал: Я так понял, чтобы сделать что-то в игре кодом, нужно создать поток "createthread"? Да, это один из вариантов. Внимательно посмотри код, который там в примерах, а то будешь ловить вылеты и не понимать почему они происходят. Ссылка на комментарий Поделиться на другие сайты Поделиться
nedix Опубликовано 14 сентября, 2018 Автор Поделиться Опубликовано 14 сентября, 2018 8 минут назад, srg91 сказал: Да, это один из вариантов. Внимательно посмотри код, который там в примерах, а то будешь ловить вылеты и не понимать почему они происходят. Можно спросить, почему в том коде нет "aobscanmodule()"? Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 1 минуту назад, nedix сказал: Можно спросить, почему в том коде нет "aobscanmodule()"? А зачем? Это обучение вызыва функций, а не туториал по всему cheat engine. Научишься применять createthread, потом научишься применять aobscanmodule где-нибудь еще. Ссылка на комментарий Поделиться на другие сайты Поделиться
nedix Опубликовано 14 сентября, 2018 Автор Поделиться Опубликовано 14 сентября, 2018 @srg91, спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения