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

[Skylords Reborn] Фильтр чужой-свой


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

Доброго времени суток. Отчаялся от безуспешных попыток написать фильтр отделяющий своё здоровье от здоровья врага и открытием карты. Прошу помощи.

Я новичок в этой сфере, посмотрев все уроки от gamehacklab получилось частично создать парочку скриптов на мапхак , бесконечную  энергию , убрать туман войны, но занявшись god_mode обнаружил, что без вашей помощи мне не обойтись. Прикреплю наработки скриптов (сильно не смейтесь, я только учусь, буду рад поправкам и советам)

Спойлер

\\  Бесконечная энергия 

[ENABLE]
aobscanmodule(ennn,BattleForge.exe,D9 47 54 D9 44 24 14)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  mov [edi+54],(float)600
  mov [edi+58],(float)600
  mov [edi+68],(float)300
  mov [edi+6C],(float)300
code:
  fld dword ptr [edi+54]
  fld dword ptr [esp+14]
  jmp return

ennn:
  jmp newmem
  nop
  nop
return:
registersymbol(ennn)

[DISABLE]
ennn:
  db D9 47 54 D9 44 24 14

unregistersymbol(ennn)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+1195A2A

"BattleForge.exe"+1195A07: 8B 47 60              -  mov eax,[edi+60]
"BattleForge.exe"+1195A0A: DD 05 10 86 C5 01     -  fld qword ptr [BattleForge.exe+1858610]
"BattleForge.exe"+1195A10: 85 C0                 -  test eax,eax
"BattleForge.exe"+1195A12: D8 C9                 -  fmul st(0),st(1)
"BattleForge.exe"+1195A14: 89 44 24 28           -  mov [esp+28],eax
"BattleForge.exe"+1195A18: DB 44 24 28           -  fild dword ptr [esp+28]
"BattleForge.exe"+1195A1C: 7D 06                 -  jnl BattleForge.exe+1195A24
"BattleForge.exe"+1195A1E: D8 05 04 93 A6 01     -  fadd dword ptr [BattleForge.exe+1669304]
"BattleForge.exe"+1195A24: DE F9                 -  fdivp st(1),st(0)
"BattleForge.exe"+1195A26: D9 5C 24 14           -  fstp dword ptr [esp+14]
// ---------- INJECTING HERE ----------
"BattleForge.exe"+1195A2A: D9 47 54              -  fld dword ptr [edi+54]
"BattleForge.exe"+1195A2D: D9 44 24 14           -  fld dword ptr [esp+14]
// ---------- DONE INJECTING  ----------
"BattleForge.exe"+1195A31: DE D9                 -  fcompp
"BattleForge.exe"+1195A33: DF E0                 -  fnstsw ax
"BattleForge.exe"+1195A35: F6 C4 01              -  test ah,01
"BattleForge.exe"+1195A38: 75 13                 -  jne BattleForge.exe+1195A4D
"BattleForge.exe"+1195A3A: 83 7D 34 13           -  cmp dword ptr [ebp+34],13
"BattleForge.exe"+1195A3E: 75 0D                 -  jne BattleForge.exe+1195A4D
"BattleForge.exe"+1195A40: 8B CD                 -  mov ecx,ebp
"BattleForge.exe"+1195A42: DD D8                 -  fstp st(0)
"BattleForge.exe"+1195A44: E8 F7 4F FB FF        -  call BattleForge.exe+114AA40
"BattleForge.exe"+1195A49: D9 44 24 24           -  fld dword ptr [esp+24]
}

 

Спойлер

// MapHack

[ENABLE]

aobscanmodule(maphack,BattleForge.exe,8D 3C 51 33 C9)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  nop
  nop
  nop
  xor ecx,ecx
  jmp return

maphack:
  jmp code
return:
registersymbol(maphack)

[DISABLE]

maphack:
  db 8D 3C 51 33 C9

unregistersymbol(maphack)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+BC175F

"BattleForge.exe"+BC173D: 39 46 58              -  cmp [esi+58],eax
"BattleForge.exe"+BC1740: 89 54 24 20           -  mov [esp+20],edx
"BattleForge.exe"+BC1744: D9 6C 24 18           -  fldcw [esp+18]
"BattleForge.exe"+BC1748: 89 44 24 44           -  mov [esp+44],eax
"BattleForge.exe"+BC174C: 76 59                 -  jna BattleForge.exe+BC17A7
"BattleForge.exe"+BC174E: 8B 4C 24 20           -  mov ecx,[esp+20]
"BattleForge.exe"+BC1752: 8D 14 08              -  lea edx,[eax+ecx]
"BattleForge.exe"+BC1755: 0F AF 53 04           -  imul edx,[ebx+04]
"BattleForge.exe"+BC1759: 03 54 24 1C           -  add edx,[esp+1C]
"BattleForge.exe"+BC175D: 8B 0B                 -  mov ecx,[ebx]
// ---------- INJECTING HERE ----------
"BattleForge.exe"+BC175F: 8D 3C 51              -  lea edi,[ecx+edx*2]
"BattleForge.exe"+BC1762: 33 C9                 -  xor ecx,ecx
// ---------- DONE INJECTING  ----------
"BattleForge.exe"+BC1764: 39 4E 54              -  cmp [esi+54],ecx
"BattleForge.exe"+BC1767: 76 32                 -  jna BattleForge.exe+BC179B
"BattleForge.exe"+BC1769: 0F B7 54 24 28        -  movzx edx,word ptr [esp+28]
"BattleForge.exe"+BC176E: 8B FF                 -  mov edi,edi
"BattleForge.exe"+BC1770: 0F B7 07              -  movzx eax,word ptr [edi]
"BattleForge.exe"+BC1773: F7 D8                 -  neg eax
"BattleForge.exe"+BC1775: 8D 1C 02              -  lea ebx,[edx+eax]
"BattleForge.exe"+BC1778: C1 F8 10              -  sar eax,10
"BattleForge.exe"+BC177B: C1 FB 10              -  sar ebx,10
"BattleForge.exe"+BC177E: 24 3F                 -  and al,3F
}

 

Спойлер

// Туман войны
[ENABLE]

aobscanmodule(fog,BattleForge.exe,24 3F 0A D8 88 5D 00)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  nop
  nop
  or bl,al
  mov [ebp+00],bl
  jmp return

fog:
  jmp code
  nop
  nop
return:
registersymbol(fog)

[DISABLE]

fog:
  db 24 3F 0A D8 88 5D 00

unregistersymbol(fog)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+BC177E

"BattleForge.exe"+BC1762: 33 C9                 -  xor ecx,ecx
"BattleForge.exe"+BC1764: 39 4E 54              -  cmp [esi+54],ecx
"BattleForge.exe"+BC1767: 76 32                 -  jna BattleForge.exe+BC179B
"BattleForge.exe"+BC1769: 0F B7 54 24 28        -  movzx edx,word ptr [esp+28]
"BattleForge.exe"+BC176E: 8B FF                 -  mov edi,edi
"BattleForge.exe"+BC1770: 0F B7 07              -  movzx eax,word ptr [edi]
"BattleForge.exe"+BC1773: F7 D8                 -  neg eax
"BattleForge.exe"+BC1775: 8D 1C 02              -  lea ebx,[edx+eax]
"BattleForge.exe"+BC1778: C1 F8 10              -  sar eax,10
"BattleForge.exe"+BC177B: C1 FB 10              -  sar ebx,10
// ---------- INJECTING HERE ----------
"BattleForge.exe"+BC177E: 24 3F                 -  and al,3F
"BattleForge.exe"+BC1780: 0A D8                 -  or bl,al
"BattleForge.exe"+BC1782: 88 5D 00              -  mov [ebp+00],bl
// ---------- DONE INJECTING  ----------
"BattleForge.exe"+BC1785: 83 C1 01              -  add ecx,01
"BattleForge.exe"+BC1788: 83 C7 02              -  add edi,02
"BattleForge.exe"+BC178B: 83 C5 01              -  add ebp,01
"BattleForge.exe"+BC178E: 3B 4E 54              -  cmp ecx,[esi+54]
"BattleForge.exe"+BC1791: 72 DD                 -  jb BattleForge.exe+BC1770
"BattleForge.exe"+BC1793: 8B 5C 24 2C           -  mov ebx,[esp+2C]
"BattleForge.exe"+BC1797: 8B 44 24 44           -  mov eax,[esp+44]
"BattleForge.exe"+BC179B: 83 C0 01              -  add eax,01
"BattleForge.exe"+BC179E: 3B 46 58              -  cmp eax,[esi+58]
"BattleForge.exe"+BC17A1: 89 44 24 44           -  mov [esp+44],eax
}

 

Спойлер

// GodMode
[ENABLE]

aobscanmodule(BRANNOK,BattleForge.exe,D9 40 50 EB 02 D9 EE D9)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
push dword ptr [eax+54]
pop dword ptr [eax+50]
code:
  fld dword ptr [eax+50]
  jmp BattleForge.exe+DBB903
  jmp return

BRANNOK:
  jmp newmem
return:
registersymbol(BRANNOK)

[DISABLE]

BRANNOK:
  db D9 40 50 EB 02

unregistersymbol(BRANNOK)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+DBB8FC

"BattleForge.exe"+DBB8E0: 83 7E 34 01        -  cmp dword ptr [esi+34],01
"BattleForge.exe"+DBB8E4: 75 2D              -  jne BattleForge.exe+DBB913
"BattleForge.exe"+DBB8E6: 6A 08              -  push 08
"BattleForge.exe"+DBB8E8: 8B CE              -  mov ecx,esi
"BattleForge.exe"+DBB8EA: E8 41 F8 35 00     -  call BattleForge.exe+111B130
"BattleForge.exe"+DBB8EF: 85 C0              -  test eax,eax
"BattleForge.exe"+DBB8F1: 74 0E              -  je BattleForge.exe+DBB901
"BattleForge.exe"+DBB8F3: 6A 08              -  push 08
"BattleForge.exe"+DBB8F5: 8B CE              -  mov ecx,esi
"BattleForge.exe"+DBB8F7: E8 04 F8 35 00     -  call BattleForge.exe+111B100
// ---------- INJECTING HERE ----------
"BattleForge.exe"+DBB8FC: D9 40 50           -  fld dword ptr [eax+50]
"BattleForge.exe"+DBB8FF: EB 02              -  jmp BattleForge.exe+DBB903
// ---------- DONE INJECTING  ----------
"BattleForge.exe"+DBB901: D9 EE              -  fldz 
"BattleForge.exe"+DBB903: D9 5C 24 10        -  fstp dword ptr [esp+10]
"BattleForge.exe"+DBB907: D9 44 24 10        -  fld dword ptr [esp+10]
"BattleForge.exe"+DBB90B: D8 44 24 0C        -  fadd dword ptr [esp+0C]
"BattleForge.exe"+DBB90F: D9 5C 24 0C        -  fstp dword ptr [esp+0C]
"BattleForge.exe"+DBB913: 83 C7 04           -  add edi,04
"BattleForge.exe"+DBB916: 3B 7B 04           -  cmp edi,[ebx+04]
"BattleForge.exe"+DBB919: 75 B5              -  jne BattleForge.exe+DBB8D0
"BattleForge.exe"+DBB91B: 5E                 -  pop esi
"BattleForge.exe"+DBB91C: D9 44 24 08        -  fld dword ptr [esp+08]
}

 

AmQupuwnRQyiuPrtKdANWQ.pngezgif-5-4b9b13386430.gif

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

Привет, трассировку кода пробовал? У меня есть в одном из видео, как я с помощью трассировки определяю, где код расходится для игрока и врагов, и там я делаю инъекцию, чтобы работало только для игрока.

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

В 16.03.2019 в 14:36, Xipho сказал:

Привет, трассировку кода пробовал? У меня есть в одном из видео, как я с помощью трассировки определяю, где код расходится для игрока и врагов, и там я делаю инъекцию, чтобы работало только для игрока.

Если вы про урок Staple Intersection на примере игры "серьёзный сэм" , то да, пробовал, и через экранное значение, ничего не вышло(опыта маловато). 

Спойлер

(это экранное значение) складывается ощущение, что собственное здоровье и здоровье врагов в разных регистрах, но инструкция обрабатывает их одна. 

kQwphEHBQtOgpTITZ_aw0g.png

Спойлер

3khxqqsBTAigUxAaFrU3OQ.png

 

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

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

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

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