deathguru Опубликовано 27 апреля, 2016 Поделиться Опубликовано 27 апреля, 2016 В общем ситуация такая: После каждой игры, я так полагаю, на сервер отправляется значение экспы. Я нашел это значение, и, если его заморозить - можно просто играть и быстро апать уровень. Но со скриптом у меня не клеится совсем( Spoiler Сразу по окончанию матча выполняется (с выделенной строки): Spoiler Spoiler Сигнатура (значение по смещению D4 - на скрине заморожено с окна программы) Spoiler Пытался добавить в скрипт записать: mov [rax+D4],186A0 - не срабатывает Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 28 апреля, 2016 Поделиться Опубликовано 28 апреля, 2016 (изменено) А что в процессе игры нет ни каких бряков? А так обычно пробовал...2-й скрин, 3-инструкция: mov [rax+rcx*4],186A0 Изменено 28 апреля, 2016 пользователем krocki Ссылка на комментарий Поделиться на другие сайты Поделиться
deathguru Опубликовано 28 апреля, 2016 Автор Поделиться Опубликовано 28 апреля, 2016 так тоже пробовал - во время игры отображается получение экспы, но уровень не апается( Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 28 апреля, 2016 Поделиться Опубликовано 28 апреля, 2016 14 часа назад, deathguru сказал: Пытался добавить в скрипт записать: mov [rax+D4],186A0 - не срабатывает Должен был сработать, предполагаю, что ошибка в скрипте в другом месте, поэтому проще - выложи свой скрипт, проверим. Ссылка на комментарий Поделиться на другие сайты Поделиться
deathguru Опубликовано 28 апреля, 2016 Автор Поделиться Опубликовано 28 апреля, 2016 8 hours ago, Garik66 said: Должен был сработать, предполагаю, что ошибка в скрипте в другом месте, поэтому проще - выложи свой скрипт, проверим. да самый обычный, с одной новой командой: Spoiler [ENABLE] aobscanmodule(EXP,mgsvmgo.exe,42 8B 0C 80 01 0A) alloc(newmem,$1000,"mgsvmgo.exe"+2A0EC16) label(code) label(return) newmem: mov [rax+D4],186A0 code: mov ecx,[rax+r8*4] add [rdx],ecx jmp return EXP: jmp newmem nop return: registersymbol(EXP) [DISABLE] EXP: db 42 8B 0C 80 01 0A unregistersymbol(EXP) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "mgsvmgo.exe"+2A0EC16 "mgsvmgo.exe"+2A0EBFC: 3B 04 01 - cmp eax,[rcx+rax] "mgsvmgo.exe"+2A0EBFF: C3 - ret "mgsvmgo.exe"+2A0EC00: FA - cli "mgsvmgo.exe"+2A0EC01: 89 F8 - mov eax,edi "mgsvmgo.exe"+2A0EC03: 0F B7 C8 - movzx ecx,ax "mgsvmgo.exe"+2A0EC06: 39 F9 - cmp ecx,edi "mgsvmgo.exe"+2A0EC08: 74 21 - je mgsvmgo.exe+2A0EC2B "mgsvmgo.exe"+2A0EC0A: 48 8B 46 38 - mov rax,[rsi+38] "mgsvmgo.exe"+2A0EC0E: 48 8D 14 88 - lea rdx,[rax+rcx*4] "mgsvmgo.exe"+2A0EC12: 48 8B 46 28 - mov rax,[rsi+28] // ---------- INJECTING HERE ---------- "mgsvmgo.exe"+2A0EC16: 42 8B 0C 80 - mov ecx,[rax+r8*4] "mgsvmgo.exe"+2A0EC1A: 01 0A - add [rdx],ecx // ---------- DONE INJECTING ---------- "mgsvmgo.exe"+2A0EC1C: 44 0F B7 1D 24 7B 44 FF - movzx r11d,word ptr [mgsvmgo.exe+1E56748] "mgsvmgo.exe"+2A0EC24: 4C 8B 15 05 7B 44 FF - mov r10,[mgsvmgo.exe+1E56730] "mgsvmgo.exe"+2A0EC2B: 41 FF C0 - inc r8d "mgsvmgo.exe"+2A0EC2E: 41 0F B7 C3 - movzx eax,r11w "mgsvmgo.exe"+2A0EC32: 41 39 C0 - cmp r8d,eax "mgsvmgo.exe"+2A0EC35: 0F 82 73 FF FF FF - jb mgsvmgo.exe+2A0EBAE "mgsvmgo.exe"+2A0EC3B: 48 8B 5C 24 30 - mov rbx,[rsp+30] "mgsvmgo.exe"+2A0EC40: 48 8B 74 24 40 - mov rsi,[rsp+40] "mgsvmgo.exe"+2A0EC45: 48 83 C4 20 - add rsp,20 "mgsvmgo.exe"+2A0EC49: 5F - pop rdi } Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 апреля, 2016 Поделиться Опубликовано 29 апреля, 2016 15 час назад, deathguru сказал: да самый обычный, с одной новой командой: действительно, самый простой, визуально ошибок нет, ну только я бы всё-таки dword ptr поставил (хотя не должно это мешать работе скрипта). Инструкция, судя по скрину не часто работает, так что можно было сделать add: Скрытый текст [ENABLE] aobscanmodule(EXP,mgsvmgo.exe,42 8B 0C 80 01 0A) alloc(newmem,$1000,"mgsvmgo.exe"+2A0EC16) label(code) label(return) registersymbol(EXP) newmem: add dword ptr [rax+D4],#10000 code: mov ecx,[rax+r8*4] add [rdx],ecx jmp return EXP: jmp newmem nop return: [DISABLE] EXP: db 42 8B 0C 80 01 0A unregistersymbol(EXP) dealloc(newmem) Попробуй так. Ссылка на комментарий Поделиться на другие сайты Поделиться
deathguru Опубликовано 29 апреля, 2016 Автор Поделиться Опубликовано 29 апреля, 2016 заработало О_О спасибо огромное! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 апреля, 2016 Поделиться Опубликовано 29 апреля, 2016 3 часа назад, deathguru сказал: заработало О_О спасибо огромное! Отлично! Когда писал для тебя скрипт, я так и предполагал: У тебя ошибка не в скрипте, а в использовании операнда. Операнд MOV, мы используем когда хотим сделать, что-нибудь постоянным, например в скриптах Infinite HP, Infinite Ammo. А у тебя EXP и если EXPа - это не валюта, как в некоторых играх, то ты должен её каким-то образом добавить, например используя операнд ADD. А так, скрипт то у тебя был рабочий, просто ты не видишь изменений, так как значение EXPы остаётся постоянным. Ссылка на комментарий Поделиться на другие сайты Поделиться
deathguru Опубликовано 30 апреля, 2016 Автор Поделиться Опубликовано 30 апреля, 2016 (изменено) я пока не разбираюсь во всех этих нюансах. знаком с cheat engine неделю максимум, а ассемблер учил в 2006 году еще - помню только общие принципы. буду просветляться Изменено 30 апреля, 2016 пользователем deathguru Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения