krassdanek Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 День добрый. мои попытки сделать скрипт на беск.патроны в zombiedriver обвенчались радостной грусть. Т.е скрипт работает,но не так,как надо. Должно быть макс.кол-во патронов,т.е 150, а у меня идет просто заморозка. В чем ошибка? Скрытый текст { Game : ZombieDriver.exe Version: Date : 2016-06-12 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(ammo,ZombieDriver.exe,CC 68 10 8D 4C 24 74) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: push dword ptr [eax+0004] // "вносим" наше макс.кол во патронов. pop dword ptr [eax+10] // убираем code: mov ebp,[eax+10] lea ecx,[esp+74] jmp return ammo: jmp newmem nop nop return: registersymbol(ammo) [DISABLE] //code from here till the end of the code will be used to disable the cheat ammo: db CC 68 10 8D 4C 24 74 unregistersymbol(ammo) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "ZombieDriver.exe"+98C55 "ZombieDriver.exe"+98C31: 50 - push eax "ZombieDriver.exe"+98C32: 8B 42 34 - mov eax,[edx+34] "ZombieDriver.exe"+98C35: 8B CF - mov ecx,edi "ZombieDriver.exe"+98C37: FF D0 - call eax "ZombieDriver.exe"+98C39: 89 AC 24 B8 00 00 00 - mov [esp+000000B8],ebp "ZombieDriver.exe"+98C40: 8D 4C 24 14 - lea ecx,[esp+14] "ZombieDriver.exe"+98C44: FF 15 E4 C1 41 00 - call dword ptr [ZombieDriver.exe+FC1E4] "ZombieDriver.exe"+98C4A: E8 F1 A2 FB FF - call ZombieDriver.exe+52F40 "ZombieDriver.exe"+98C4F: 8B 40 04 - mov eax,[eax+04] "ZombieDriver.exe"+98C52: 8B 40 24 - mov eax,[eax+24] // ---------- INJECTING HERE ---------- "ZombieDriver.exe"+98C55: 8B 68 10 - mov ebp,[eax+10] "ZombieDriver.exe"+98C58: 8D 4C 24 74 - lea ecx,[esp+74] // ---------- DONE INJECTING ---------- "ZombieDriver.exe"+98C5C: FF 15 CC C1 41 00 - call dword ptr [ZombieDriver.exe+FC1CC] "ZombieDriver.exe"+98C62: C7 84 24 B8 00 00 00 03 00 00 00 - mov [esp+000000B8],00000003 "ZombieDriver.exe"+98C6D: 83 FD 0A - cmp ebp,0A "ZombieDriver.exe"+98C70: 7D 07 - jnl ZombieDriver.exe+98C79 "ZombieDriver.exe"+98C72: 68 7C 42 42 00 - push ZombieDriver.exe+10427C "ZombieDriver.exe"+98C77: EB 0A - jmp ZombieDriver.exe+98C83 "ZombieDriver.exe"+98C79: 83 FD 64 - cmp ebp,64 "ZombieDriver.exe"+98C7C: 7D 0F - jnl ZombieDriver.exe+98C8D "ZombieDriver.exe"+98C7E: 68 80 42 42 00 - push ZombieDriver.exe+104280 "ZombieDriver.exe"+98C83: 8D 4C 24 78 - lea ecx,[esp+78] } Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 (изменено) 1 час назад, krassdanek сказал: скрипт на беск.патроны Ты уверен, что в [eax+04] лежит именно max кол-во патронов? Для NoReload тебе лучше использовать 3 инструкцию dec [esi+10], выложи АА-скрипт на эту инструкцию, поможем написать скрипт. Изменено 11 июня, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 ЗЫ: Кстати, если ты делал скрипт по уроку Xipho, то max патронов у него на видео лежит в [eax+14]. Т.е. нужно: push [eax+14] // "вносим" наше макс.кол во патронов. pop [eax+10] Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 Ошибку нашел, исправил, но вместо 150 макс. патрон у меня появляется 149 Скрытый текст { Game : ZombieDriver.exe Version: Date : 2016-06-12 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(aMMO,ZombieDriver.exe,FF 4E 10 E8 39 E8 FF FF) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: push [esi+14] pop [esi+10] code: dec [esi+10] call ZombieDriver.exe+4C370 jmp return aMMO: jmp newmem nop nop nop return: registersymbol(aMMO) [DISABLE] //code from here till the end of the code will be used to disable the cheat aMMO: db FF 4E 10 E8 39 E8 FF FF unregistersymbol(aMMO) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "ZombieDriver.exe"+4DB2F "ZombieDriver.exe"+4DB14: 8B 49 08 - mov ecx,[ecx+08] "ZombieDriver.exe"+4DB17: 52 - push edx "ZombieDriver.exe"+4DB18: 57 - push edi "ZombieDriver.exe"+4DB19: 89 58 04 - mov [eax+04],ebx "ZombieDriver.exe"+4DB1C: 51 - push ecx "ZombieDriver.exe"+4DB1D: 89 48 08 - mov [eax+08],ecx "ZombieDriver.exe"+4DB20: E8 0B F9 01 00 - call ZombieDriver.exe+6D430 "ZombieDriver.exe"+4DB25: 83 C4 04 - add esp,04 "ZombieDriver.exe"+4DB28: 8B C8 - mov ecx,eax "ZombieDriver.exe"+4DB2A: E8 61 3B 02 00 - call ZombieDriver.exe+71690 // ---------- INJECTING HERE ---------- "ZombieDriver.exe"+4DB2F: FF 4E 10 - dec [esi+10] "ZombieDriver.exe"+4DB32: E8 39 E8 FF FF - call ZombieDriver.exe+4C370 // ---------- DONE INJECTING ---------- "ZombieDriver.exe"+4DB37: E8 94 BC 02 00 - call ZombieDriver.exe+797D0 "ZombieDriver.exe"+4DB3C: 8B 4C 24 78 - mov ecx,[esp+78] "ZombieDriver.exe"+4DB40: 64 89 0D 00 00 00 00 - mov fs:[00000000],ecx "ZombieDriver.exe"+4DB47: 59 - pop ecx "ZombieDriver.exe"+4DB48: 5F - pop edi "ZombieDriver.exe"+4DB49: 5E - pop esi "ZombieDriver.exe"+4DB4A: 5B - pop ebx "ZombieDriver.exe"+4DB4B: 8B E5 - mov esp,ebp "ZombieDriver.exe"+4DB4D: 5D - pop ebp "ZombieDriver.exe"+4DB4E: C2 10 00 - ret 0010 } dword ptr - писал, потом чего то стёр... результат тот же Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 1 минуту назад, krassdanek сказал: dword ptr - писал, потом чего то стёр... результат тот же дело то не в dword ptr, (в данном случае его не обязательно писать, так как игрушка 32 разрядная и в адреса будет по умолчанию писать 4 байта), а в том где находится max кол-во патронов, а оно находится по смещению +14 в структуре. Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 В 11.06.2016в10:30, Garik66 сказал: дело то не в dword ptr, (в данном случае его не обязательно писать, так как игрушка 32 разрядная и в адреса будет по умолчанию писать 4 байта), а в том где находится max кол-во патронов, а оно находится по смещению +14 в структуре. Верно, я не тот адресс использовал, макс.кол-во = +14, текущее =+10,только вместо ecx у меня esi, скрипт,вроде, правильно записан. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 Только что, krassdanek сказал: Верно, я не тот адресс использовал, макс.кол-во = +14, текущее =+10,только вместо ecx у меня esi, скрипт,вроде, правильно записан. Правильно будет записывать именно 149 в твоём скрипте, про это я уже создавал тему - это стандартная ошибка новичков. newmem: push [esi+14] pop [esi+10] // ты записал сюда max code: dec [esi+10] // а потом отнял 1 патрон. а нужно сделать так: newmem: dec [esi+10] push [esi+14] pop [esi+10] code: И тогда кол-во будет 150. Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 Ахах, спасибо,дошло... Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 Но также можно просто занопить эту инструкцию: Скрытый текст [ENABLE] aobscanmodule(aMMO,ZombieDriver.exe,FF 4E 10 E8 39 E8 FF FF) // should be unique registersymbol(aMMO) aMMO: db 90 90 90 [DISABLE] aMMO: db FF 4E 10 unregistersymbol(aMMO) { // ORIGINAL CODE - INJECTION POINT: "ZombieDriver.exe"+4DB2F "ZombieDriver.exe"+4DB14: 8B 49 08 - mov ecx,[ecx+08] "ZombieDriver.exe"+4DB17: 52 - push edx "ZombieDriver.exe"+4DB18: 57 - push edi "ZombieDriver.exe"+4DB19: 89 58 04 - mov [eax+04],ebx "ZombieDriver.exe"+4DB1C: 51 - push ecx "ZombieDriver.exe"+4DB1D: 89 48 08 - mov [eax+08],ecx "ZombieDriver.exe"+4DB20: E8 0B F9 01 00 - call ZombieDriver.exe+6D430 "ZombieDriver.exe"+4DB25: 83 C4 04 - add esp,04 "ZombieDriver.exe"+4DB28: 8B C8 - mov ecx,eax "ZombieDriver.exe"+4DB2A: E8 61 3B 02 00 - call ZombieDriver.exe+71690 // ---------- INJECTING HERE ---------- "ZombieDriver.exe"+4DB2F: FF 4E 10 - dec [esi+10] "ZombieDriver.exe"+4DB32: E8 39 E8 FF FF - call ZombieDriver.exe+4C370 // ---------- DONE INJECTING ---------- "ZombieDriver.exe"+4DB37: E8 94 BC 02 00 - call ZombieDriver.exe+797D0 "ZombieDriver.exe"+4DB3C: 8B 4C 24 78 - mov ecx,[esp+78] "ZombieDriver.exe"+4DB40: 64 89 0D 00 00 00 00 - mov fs:[00000000],ecx "ZombieDriver.exe"+4DB47: 59 - pop ecx "ZombieDriver.exe"+4DB48: 5F - pop edi "ZombieDriver.exe"+4DB49: 5E - pop esi "ZombieDriver.exe"+4DB4A: 5B - pop ebx "ZombieDriver.exe"+4DB4B: 8B E5 - mov esp,ebp "ZombieDriver.exe"+4DB4D: 5D - pop ebp "ZombieDriver.exe"+4DB4E: C2 10 00 - ret 0010 } Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 NOP'ом не пользуюсь по возможности) А пока учусь на "легких" сингл играх - такая возможность есть всегда) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 krassdanek. копировать полностью сообщение (особенно, если в нём есть скрипты, видео и т.д.) не нужно (очень потом не удобно читать топик). Выдели в сообщении только то предложение, которое нужно, появиться "Цитировать" и нажми на это "Цитировать". Пример; Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 dword ptr в обще не обязательно писать...а вот word ptr или byte ptr иногда приходится писать...если рядом есть значения которые отвечают за что-то другое например. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 4 минуты назад, krocki сказал: dword ptr в обще не обязательно писать...а вот word ptr или byte ptr иногда приходится писать...если рядом есть значения которые отвечают за что-то другое например. Не до конца верно в 64 битных игрушках нужно указывать и dword. Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 В 11.06.2016в12:06, Garik66 сказал: 64 битных игрушках а как определить какая игра? 64\32? Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 Тоже верно...и от игры тоже может зависить...как говорится всякое бывает! Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 Если у тебя 32 битка, то сразу поймёшь...а так может есть утилита какая та для проверки...хз...гугл в помощь! Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 у меня 64 бит) гляну, спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 11 июня, 2016 Поделиться Опубликовано 11 июня, 2016 6 минут назад, krassdanek сказал: а как определить какая игра? 64\32? 32 BIT - eax, ebx, ebp, ecx 64 BIT - rax, rbx, rbp, rcx Ссылка на комментарий Поделиться на другие сайты Поделиться
krassdanek Опубликовано 11 июня, 2016 Автор Поделиться Опубликовано 11 июня, 2016 Так, в блокнотик и в голову ^^, благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения