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

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

День добрый. мои попытки сделать скрипт на беск.патроны в 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]
}

 

 

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

1 час назад, krassdanek сказал:

скрипт на беск.патроны

Ты уверен, что в [eax+04] лежит именно max кол-во патронов?

Для NoReload тебе лучше использовать 3 инструкцию dec [esi+10], выложи АА-скрипт на эту инструкцию, поможем написать скрипт.   

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

ЗЫ: Кстати, если ты делал скрипт по уроку Xipho, то max патронов у него на видео лежит в [eax+14].

Т.е. нужно:

push [eax+14] // "вносим" наше макс.кол во патронов.
pop [eax+10] 

 

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

Ошибку нашел, исправил, но вместо 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 - писал, потом чего то стёр... результат тот же

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

1 минуту назад, krassdanek сказал:

dword ptr - писал, потом чего то стёр... результат тот же

дело то не в dword ptr, (в данном случае его не обязательно писать, так как игрушка 32 разрядная и в адреса будет по умолчанию писать 4 байта), а в том где находится max кол-во патронов, а оно находится по смещению +14 в структуре.

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

В 11.06.2016в10:30, Garik66 сказал:

дело то не в dword ptr, (в данном случае его не обязательно писать, так как игрушка 32 разрядная и в адреса будет по умолчанию писать 4 байта), а в том где находится max кол-во патронов, а оно находится по смещению +14 в структуре.

Верно, я не тот адресс использовал, макс.кол-во = +14, текущее =+10,только вместо ecx у меня esi, скрипт,вроде, правильно записан.

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

Только что, 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.

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

Но также можно просто занопить эту инструкцию:

Скрытый текст

[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. копировать полностью сообщение (особенно, если в нём есть скрипты, видео и т.д.) не нужно (очень потом не удобно читать топик).

Выдели в сообщении только то предложение, которое нужно, появиться "Цитировать" и нажми на это "Цитировать".

Пример;

bandicam 2016-06-11 10-54-32-353.jpg

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

dword ptr в обще не обязательно писать...а вот word ptr или byte ptr иногда приходится писать...если рядом есть значения которые отвечают за что-то другое например.

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

4 минуты назад, krocki сказал:

dword ptr в обще не обязательно писать...а вот word ptr или byte ptr иногда приходится писать...если рядом есть значения которые отвечают за что-то другое например.

Не до конца верно в 64 битных игрушках нужно указывать и dword.

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

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

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

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