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

Battle Of The Heroes 2 Echo Of War God Mode + OHK + Experience + Resources


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

Предыдущая тема (2013 г.) по этой игре.

СкриптЫ:

Numpad 0      Resources:

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

{ Game   : BHero2.exe
  Version: 
  Date   : 2017-12-01
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
{$LUA}
getAddressList().getMemoryRecordByID(16).Color=0x0008000
PlaySound(findTableFile([[Activate]]))
{$ASM}
aobscanmodule(resources,BHero2.exe,8B 4D 0C 8B 10) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(flag)
registersymbol(flag)
registersymbol(resources)

newmem:
  mov ecx,[ebp+0C]
  cmp [flag],4
  je code
  inc [flag]
  mov edx,[eax]
  add edx,#100000
  mov [eax],edx

code:
  mov edx,[eax]
  jmp return

flag:
  dd 1

resources:
  jmp newmem
return:

[DISABLE]
{$LUA}
getAddressList().getMemoryRecordByID(16).Color=0x00000ff
PlaySound(findTableFile([[Deactivate]]))
{$ASM}
resources:
  db 8B 4D 0C 8B 10

unregistersymbol(flag)
unregistersymbol(resources)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BHero2.exe"+4D341

"BHero2.exe"+4D325: C1 E1 08           -  shl ecx,08
"BHero2.exe"+4D328: 8B 91 50 AB 57 00  -  mov edx,[ecx+BHero2.exe+17AB50]
"BHero2.exe"+4D32E: 89 15 B8 F2 6B 00  -  mov [BHero2.exe+2BF2B8],edx
"BHero2.exe"+4D334: 8B E5              -  mov esp,ebp
"BHero2.exe"+4D336: 5D                 -  pop ebp
"BHero2.exe"+4D337: C3                 -  ret 
"BHero2.exe"+4D338: 55                 -  push ebp
"BHero2.exe"+4D339: 8B EC              -  mov ebp,esp
"BHero2.exe"+4D33B: 83 EC 08           -  sub esp,08
"BHero2.exe"+4D33E: 8B 45 08           -  mov eax,[ebp+08]
// ---------- INJECTING HERE ----------
"BHero2.exe"+4D341: 8B 4D 0C           -  mov ecx,[ebp+0C]
"BHero2.exe"+4D344: 8B 10              -  mov edx,[eax]
// ---------- DONE INJECTING  ----------
"BHero2.exe"+4D346: 3B 11              -  cmp edx,[ecx]
"BHero2.exe"+4D348: 0F 84 A0 00 00 00  -  je BHero2.exe+4D3EE
"BHero2.exe"+4D34E: 6A 00              -  push 00
"BHero2.exe"+4D350: 6A 00              -  push 00
"BHero2.exe"+4D352: 6A 00              -  push 00
"BHero2.exe"+4D354: A1 88 5A D4 02     -  mov eax,[BHero2.exe+2945A88]
"BHero2.exe"+4D359: 50                 -  push eax
"BHero2.exe"+4D35A: 68 94 86 55 00     -  push BHero2.exe+158694
"BHero2.exe"+4D35F: 6A 13              -  push 13
"BHero2.exe"+4D361: 8B 4D 14           -  mov ecx,[ebp+14]
}

 

Numpad 1      God Mode:

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

{ Game   : BHero2.exe
  Version: 
  Date   : 2017-12-01
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
{$LUA}
getAddressList().getMemoryRecordByID(26).Color=0x0008000
PlaySound(findTableFile([[Activate]]))
{$ASM}
aobscanmodule(God,BHero2.exe,8B 91 54 AB 57 00 89 15 * * * * 8D) // should be unique
aobscanmodule(Mana,BHero2.exe,8B 88 50 AB 57 00 89 0D)
alloc(newmem,$1000)
label(newmem1)
label(code)
label(code1)
label(return)
label(return1)
label(ID_hero)
registersymbol(ID_hero)
registersymbol(Mana)
registersymbol(God)

newmem:
  cmp ecx,0001F900
  je @f
  cmp ecx,0001E900
  je @f
  cmp ecx,00026C00
  je @f
  cmp ecx,0002A300
  je @f
  jmp code

@@:
  mov [ID_hero],ecx

@@:
  mov [ecx+BHero2.exe+17AB54],#1000

code:
  mov edx,[ecx+BHero2.exe+17AB54]
  jmp return

newmem1:
  cmp ecx,[ID_hero]
  je @f
  mov [ecx+BHero2.exe+17AB50],0
  jmp code1

@@:
  mov [ecx+BHero2.exe+17AB50],#1000

code1:
  mov ecx,[eax+BHero2.exe+17AB50]
  jmp return1

ID_hero:
  dd 0

God:
  jmp newmem
  db 90
return:

Mana:
  jmp newmem1
  db 90
return1:

[DISABLE]
{$LUA}
getAddressList().getMemoryRecordByID(26).Color=0x00000ff
PlaySound(findTableFile([[Deactivate]]))
{$ASM}
God:
  db 8B 91 54 AB 57 00
Mana:
  db 8B 88 50 AB 57 00

unregistersymbol(ID_hero)
unregistersymbol(Mana)
unregistersymbol(God)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BHero2.exe"+A6419

"BHero2.exe"+A63ED: 83 C4 14              -  add esp,14
"BHero2.exe"+A63F0: 83 7D B8 03           -  cmp dword ptr [ebp-48],03
"BHero2.exe"+A63F4: 0F 84 20 01 00 00     -  je BHero2.exe+A651A
"BHero2.exe"+A63FA: 8B 15 3C E1 6A 00     -  mov edx,[BHero2.exe+2AE13C]
"BHero2.exe"+A6400: C1 E2 08              -  shl edx,08
"BHero2.exe"+A6403: A1 1C 79 A0 00        -  mov eax,[BHero2.exe+60791C]
"BHero2.exe"+A6408: 3B 82 54 AB 57 00     -  cmp eax,[edx+BHero2.exe+17AB54]
"BHero2.exe"+A640E: 74 7A                 -  je BHero2.exe+A648A
"BHero2.exe"+A6410: 8B 0D 3C E1 6A 00     -  mov ecx,[BHero2.exe+2AE13C]
"BHero2.exe"+A6416: C1 E1 08              -  shl ecx,08
// ---------- INJECTING HERE ----------
"BHero2.exe"+A6419: 8B 91 54 AB 57 00     -  mov edx,[ecx+BHero2.exe+17AB54]
// ---------- DONE INJECTING  ----------
"BHero2.exe"+A641F: 89 15 1C 79 A0 00     -  mov [BHero2.exe+60791C],edx
"BHero2.exe"+A6425: 8D 45 CC              -  lea eax,[ebp-34]
"BHero2.exe"+A6428: 50                    -  push eax
"BHero2.exe"+A6429: 6A 04                 -  push 04
"BHero2.exe"+A642B: 6A 3B                 -  push 3B
"BHero2.exe"+A642D: 8B 4D C8              -  mov ecx,[ebp-38]
"BHero2.exe"+A6430: 83 C1 40              -  add ecx,40
"BHero2.exe"+A6433: 51                    -  push ecx
"BHero2.exe"+A6434: 6A 03                 -  push 03
"BHero2.exe"+A6436: 8B 15 38 5B D4 02     -  mov edx,[BHero2.exe+2945B38]
}
{
// ORIGINAL CODE - INJECTION POINT: "BHero2.exe"+A64A9

"BHero2.exe"+A6481: 50                 -  push eax
"BHero2.exe"+A6482: E8 D3 7F FA FF     -  call BHero2.exe+4E45A
"BHero2.exe"+A6487: 83 C4 20           -  add esp,20
"BHero2.exe"+A648A: 8B 0D 3C E1 6A 00  -  mov ecx,[BHero2.exe+2AE13C]
"BHero2.exe"+A6490: C1 E1 08           -  shl ecx,08
"BHero2.exe"+A6493: 8B 15 58 7A A0 00  -  mov edx,[BHero2.exe+607A58]
"BHero2.exe"+A6499: 3B 91 50 AB 57 00  -  cmp edx,[ecx+BHero2.exe+17AB50]
"BHero2.exe"+A649F: 74 79              -  je BHero2.exe+A651A
"BHero2.exe"+A64A1: A1 3C E1 6A 00     -  mov eax,[BHero2.exe+2AE13C]
"BHero2.exe"+A64A6: C1 E0 08           -  shl eax,08
// ---------- INJECTING HERE ----------
"BHero2.exe"+A64A9: 8B 88 50 AB 57 00  -  mov ecx,[eax+BHero2.exe+17AB50]
// ---------- DONE INJECTING  ----------
"BHero2.exe"+A64AF: 89 0D 58 7A A0 00  -  mov [BHero2.exe+607A58],ecx
"BHero2.exe"+A64B5: 8D 55 CC           -  lea edx,[ebp-34]
"BHero2.exe"+A64B8: 52                 -  push edx
"BHero2.exe"+A64B9: 6A 04              -  push 04
"BHero2.exe"+A64BB: 6A 3B              -  push 3B
"BHero2.exe"+A64BD: 8B 45 C8           -  mov eax,[ebp-38]
"BHero2.exe"+A64C0: 83 C0 47           -  add eax,47
"BHero2.exe"+A64C3: 50                 -  push eax
"BHero2.exe"+A64C4: 6A 03              -  push 03
"BHero2.exe"+A64C6: 8B 0D 38 5B D4 02  -  mov ecx,[BHero2.exe+2945B38]
}

 

Numpad -      OHK:

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

{ Game   : BHero2.exe
  Version: 
  Date   : 2017-12-02
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
{$LUA}
getAddressList().getMemoryRecordByID(35).Color=0x0008000
PlaySound(findTableFile([[Activate]]))
{$ASM}
aobscanmodule(OHK,BHero2.exe,8B 91 54 AB 57 00 89 15) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(OHK)

newmem:
  cmp ecx,[ID_hero]
  je @f
  mov [ecx+BHero2.exe+17AB54],0
  jmp code

@@:
  mov [ecx+BHero2.exe+17AB54],#1000

code:
  mov edx,[ecx+BHero2.exe+17AB54]
  jmp return

OHK:
  jmp newmem
  nop
return:

[DISABLE]
{$LUA}
getAddressList().getMemoryRecordByID(35).Color=0x00000ff
PlaySound(findTableFile([[Deactivate]]))
{$ASM}
OHK:
  db 8B 91 54 AB 57 00

unregistersymbol(OHK)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BHero2.exe"+4D192

"BHero2.exe"+4D172: 8B 55 84              -  mov edx,[ebp-7C]
"BHero2.exe"+4D175: 52                    -  push edx
"BHero2.exe"+4D176: 68 00 01 00 00        -  push 00000100
"BHero2.exe"+4D17B: 6A 00                 -  push 00
"BHero2.exe"+4D17D: 8B 85 70 FF FF FF     -  mov eax,[ebp-00000090]
"BHero2.exe"+4D183: 50                    -  push eax
"BHero2.exe"+4D184: E8 EF 71 FD FF        -  call BHero2.exe+24378
"BHero2.exe"+4D189: 83 C4 1C              -  add esp,1C
"BHero2.exe"+4D18C: 8B 4D AC              -  mov ecx,[ebp-54]
"BHero2.exe"+4D18F: C1 E1 08              -  shl ecx,08
// ---------- INJECTING HERE ----------
"BHero2.exe"+4D192: 8B 91 54 AB 57 00     -  mov edx,[ecx+BHero2.exe+17AB54]
// ---------- DONE INJECTING  ----------
"BHero2.exe"+4D198: 89 15 B4 F2 6B 00     -  mov [BHero2.exe+2BF2B4],edx
"BHero2.exe"+4D19E: 8B 45 AC              -  mov eax,[ebp-54]
"BHero2.exe"+4D1A1: C1 E0 08              -  shl eax,08
"BHero2.exe"+4D1A4: 8B 0D B8 F2 6B 00     -  mov ecx,[BHero2.exe+2BF2B8]
"BHero2.exe"+4D1AA: 3B 88 50 AB 57 00     -  cmp ecx,[eax+BHero2.exe+17AB50]
"BHero2.exe"+4D1B0: 0F 84 7E 01 00 00     -  je BHero2.exe+4D334
"BHero2.exe"+4D1B6: 8B 55 AC              -  mov edx,[ebp-54]
"BHero2.exe"+4D1B9: 52                    -  push edx
"BHero2.exe"+4D1BA: E8 48 68 00 00        -  call BHero2.exe+53A07
"BHero2.exe"+4D1BF: 83 C4 04              -  add esp,04
}

 

Numpad 2      Experience:

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

{ Game   : BHero2.exe
  Version: 
  Date   : 2017-12-02
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
{$LUA}
getAddressList().getMemoryRecordByID(39).Color=0x0008000
PlaySound(findTableFile([[Activate]]))
{$ASM}
aobscanmodule(level,BHero2.exe,89 15 BC F2 6B 00) // should be unique
aobscanmodule(experience,BHero2.exe,8B 88 7C AB 57 00 89)
alloc(newmem,$1000)
label(newmem1)
label(code)
label(code1)
label(return)
label(return1)
label(Plus)
label(flag1)
label(Level)
registersymbol(experience)
registersymbol(level)

newmem:
  cmp ecx,[ID_hero]
  jne code
  mov [Level],edx
  cmp [BHero2.exe+2BF2BC],edx
  je code
  mov [flag1],1

code:
  mov [BHero2.exe+2BF2BC],edx
  jmp return

newmem1:
  cmp eax,[ID_hero]
  jne code1
  cmp [flag1],1
  jne code1

  mov ecx,[Level]
  inc ecx
  cmp [ID_hero],0001F900
  jne @f
  imul ecx,ecx,453
  dec ecx
  jmp Plus

@@:
  cmp [ID_hero],0001E900
  jne @f
  imul ecx,ecx,437
  dec ecx
  jmp Plus

@@:
  cmp [ID_hero],00026C00
  jne @f
  imul ecx,ecx,441
  dec ecx
  jmp Plus

@@:
  cmp [ID_hero],0002A300
  jne code1
  imul ecx,ecx,431
  dec ecx

Plus:
  mov [eax+BHero2.exe+17AB7C],ecx
  mov [flag1],0

code1:
  mov ecx,[eax+BHero2.exe+17AB7C]
  jmp return1

flag1:
  dd 1
Level:
  dd 0

level:
  jmp newmem
  db 90
return:

experience:
  jmp newmem1
  db 90
return1:

[DISABLE]
{$LUA}
getAddressList().getMemoryRecordByID(39).Color=0x00000ff
PlaySound(findTableFile([[Deactivate]]))
{$ASM}
level:
  db 89 15 BC F2 6B 00
  experience:
  db 8B 88 7C AB 57 00

unregistersymbol(experience)
unregistersymbol(level)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BHero2.exe"+4CDE5

"BHero2.exe"+4CDBD: E8 B6 75 FD FF                 -  call BHero2.exe+24378
"BHero2.exe"+4CDC2: 83 C4 1C                       -  add esp,1C
"BHero2.exe"+4CDC5: 8B 55 AC                       -  mov edx,[ebp-54]
"BHero2.exe"+4CDC8: C1 E2 08                       -  shl edx,08
"BHero2.exe"+4CDCB: 8B 82 7C AB 57 00              -  mov eax,[edx+BHero2.exe+17AB7C]
"BHero2.exe"+4CDD1: A3 A8 F2 6B 00                 -  mov [BHero2.exe+2BF2A8],eax
"BHero2.exe"+4CDD6: 8B 4D AC                       -  mov ecx,[ebp-54]
"BHero2.exe"+4CDD9: C1 E1 08                       -  shl ecx,08
"BHero2.exe"+4CDDC: 33 D2                          -  xor edx,edx
"BHero2.exe"+4CDDE: 66 8B 91 3C AB 57 00           -  mov dx,[ecx+BHero2.exe+17AB3C]
// ---------- INJECTING HERE ----------
"BHero2.exe"+4CDE5: 89 15 BC F2 6B 00              -  mov [BHero2.exe+2BF2BC],edx
// ---------- DONE INJECTING  ----------
"BHero2.exe"+4CDEB: 8B 45 AC                       -  mov eax,[ebp-54]
"BHero2.exe"+4CDEE: C1 E0 08                       -  shl eax,08
"BHero2.exe"+4CDF1: 8B 0D AC F2 6B 00              -  mov ecx,[BHero2.exe+2BF2AC]
"BHero2.exe"+4CDF7: 3B 88 44 AB 57 00              -  cmp ecx,[eax+BHero2.exe+17AB44]
"BHero2.exe"+4CDFD: 0F 84 E9 00 00 00              -  je BHero2.exe+4CEEC
"BHero2.exe"+4CE03: 6A 00                          -  push 00
"BHero2.exe"+4CE05: 6A 00                          -  push 00
"BHero2.exe"+4CE07: 6A 00                          -  push 00
"BHero2.exe"+4CE09: 8B 15 88 5A D4 02              -  mov edx,[BHero2.exe+2945A88]
"BHero2.exe"+4CE0F: 52                             -  push edx
}
{
// ORIGINAL CODE - INJECTION POINT: "BHero2.exe"+4CD4E

"BHero2.exe"+4CD2E: 51                             -  push ecx
"BHero2.exe"+4CD2F: 6A 08                          -  push 08
"BHero2.exe"+4CD31: 68 00 02 00 00                 -  push 00000200
"BHero2.exe"+4CD36: 8B 55 A8                       -  mov edx,[ebp-58]
"BHero2.exe"+4CD39: 81 C2 08 08 00 00              -  add edx,00000808
"BHero2.exe"+4CD3F: 52                             -  push edx
"BHero2.exe"+4CD40: E8 8A 83 02 00                 -  call BHero2.exe+750CF
"BHero2.exe"+4CD45: 83 C4 1C                       -  add esp,1C
"BHero2.exe"+4CD48: 8B 45 AC                       -  mov eax,[ebp-54]
"BHero2.exe"+4CD4B: C1 E0 08                       -  shl eax,08
// ---------- INJECTING HERE ----------
"BHero2.exe"+4CD4E: 8B 88 7C AB 57 00              -  mov ecx,[eax+BHero2.exe+17AB7C]
// ---------- DONE INJECTING  ----------
"BHero2.exe"+4CD54: 89 0D A8 F2 6B 00              -  mov [BHero2.exe+2BF2A8],ecx
"BHero2.exe"+4CD5A: 8B 55 AC                       -  mov edx,[ebp-54]
"BHero2.exe"+4CD5D: C1 E2 08                       -  shl edx,08
"BHero2.exe"+4CD60: 33 C0                          -  xor eax,eax
"BHero2.exe"+4CD62: 66 8B 82 3C AB 57 00           -  mov ax,[edx+BHero2.exe+17AB3C]
"BHero2.exe"+4CD69: 50                             -  push eax
"BHero2.exe"+4CD6A: 8B 0D 54 94 48 03              -  mov ecx,[BHero2.exe+3089454]
"BHero2.exe"+4CD70: 51                             -  push ecx
"BHero2.exe"+4CD71: 68 64 E5 70 00                 -  push BHero2.exe+30E564
"BHero2.exe"+4CD76: FF 15 68 82 51 00              -  call dword ptr [BHero2.exe+118268]
}

 

Видео:

Табличка:

 

BHero2.CT

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

  • 3 года спустя...
6 часов назад, Aztec2012 сказал:

Для Battle Of The Heroes 2 без аддона Echo Of War подойдёт?

Возьми да проверь. Или ты предлагаешь автору снова игру качать и ставить, чтобы тебе ответить на вопрос? 

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

В 07.03.2021 в 22:29, Xipho сказал:

Возьми да проверь. Или ты предлагаешь автору снова игру качать и ставить, чтобы тебе ответить на вопрос? 

 

В 08.03.2021 в 08:05, Garik66 сказал:

Ответил на Тюбе

 

Проверил. Не работает с 4 героями из оригинала которые выбираются в меню выбора героев после нажатия кнопки Оригинал. Автор таблицы об этом не знал. Причина - взлом делался по ID героя, а ID 4 оригинальных героев в скрипте нету. И хорошо бы добавить взлом очков или характеристик т.к. в игре автолевелинг врагов.

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

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

Проверил.

Пересмотрел свое видео - там все понятно объяснено. как сделать скрипт. (как найти ID героев, какие адреса являются рабочими)
Сомневаюсь. что разработчики что-то сильно изменили в игре. 

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

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

Пересмотрел свое видео - там все понятно объяснено. как сделать скрипт. (как найти ID героев, какие адреса являются рабочими)
Сомневаюсь. что разработчики что-то сильно изменили в игре. 

 

Дважды пересмотрел видео. Сказано про опыт про год мод. Но где взять сами Id_hero не сказано. И для не программиста это сложновато.

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

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

Но где взять сами Id_hero не сказано.

Сказано, не внимательно смотрел и слушал.
В ЕСХ лежит ID из инструкции на здоровье

Спойлер

"BHero2.exe"+A6410: 8B 0D 3C E1 6A 00     -  mov ecx,[BHero2.exe+2AE13C]
"BHero2.exe"+A6416: C1 E1 08              -  shl ecx,08                        // Вот после срабатывания этой инструкции в ЕСХ лежит ID      
// ---------- INJECTING HERE ----------
"BHero2.exe"+A6419: 8B 91 54 AB 57 00     -  mov edx,[ecx+BHero2.exe+17AB54]

 



 

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

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

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

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