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

[Cannon Brawl] Нахождение значения перезарядки у орудий, и возможность сделать без перезарядки.


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

Здравствуйте, уважаемые gamehacker! Такой вот вопрос: не могу найти значение на перезарядку орудия в игре Cannon Brawl. На деньги кое-что получилось, вот скрипт:

 

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2019-04-29
  Author : User

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscan(INJECT,47 D9 86 E4 00 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [esi+000000D4],-1
  jne @F
  mov [esi+000000E4],42c80000
  jmp code
@@:
  mov [esi+000000E4],(float)-200
code:
  fld dword ptr [esi+000000E4]
  jmp return

INJECT+01:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT+01:
  db D9 86 E4 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0906D285

0906D263: EB 06                 -  jmp 0906D26B
0906D265: D9 05 88 D3 06 09     -  fld dword ptr [0906D388]
0906D26B: 80 3D 98 56 2E 00 00  -  cmp byte ptr [002E5698],00
0906D272: 74 04                 -  je 0906D278
0906D274: DD D8                 -  fstp st(0)
0906D276: EB 54                 -  jmp 0906D2CC
0906D278: 80 3D 1D 54 2E 00 00  -  cmp byte ptr [002E541D],00
0906D27F: 74 04                 -  je 0906D285
0906D281: DD D8                 -  fstp st(0)
0906D283: EB 47                 -  jmp 0906D2CC
// ---------- INJECTING HERE ----------
0906D285: D9 86 E4 00 00 00     -  fld dword ptr [esi+000000E4]
// ---------- DONE INJECTING  ----------
0906D28B: D9 EE                 -  fldz 
0906D28D: DF F1                 -  fcomip st(0),st(1)
0906D28F: DD D8                 -  fstp st(0)
0906D291: 7A 0D                 -  jp 0906D2A0
0906D293: 75 0B                 -  jne 0906D2A0
0906D295: 83 7E 74 00           -  cmp dword ptr [esi+74],00
0906D299: 75 05                 -  jne 0906D2A0
0906D29B: D9 EE                 -  fldz 
0906D29D: D9 5D D0              -  fstp dword ptr [ebp-30]
0906D2A0: D8 8E E4 00 00 00     -  fmul dword ptr [esi+000000E4]
}

 

 

Есть несколько данных с сигнатурами, но они работают сразу с несколькими значениями - с деньгами, перезарядкой, здоровьем и т. п. Как это нашел:

На карте во втором раунде на деньги (после вставки  например Territory Balloon ) находятся три значения, самое первое значение ставлю брекпойнт на обращение, и выходит:

Спойлер

0072F1F8 - 88 58 08  - mov [eax+08],bl
0072F208 - 88 50 09  - mov [eax+09],dl
0072F218 - 88 50 0A  - mov [eax+0A],dl
0072F226 - 88 58 0B  - mov [eax+0B],bl
049D68DC - 30 01  - xor [ecx],al
0072F284 - 0FB6 41 08  - movzx eax,byte ptr [ecx+08]
0072F28D - 0FB6 51 09  - movzx edx,byte ptr [ecx+09]
0072F29B - 0FB6 51 0A  - movzx edx,byte ptr [ecx+0A]
0072F2A9 - 0FB6 51 0B  - movzx edx,byte ptr [ecx+0B]
0072F18D - 30 01  - xor [ecx],al

 

 0072F29B - 0FB6 51 0A  - movzx edx,byte ptr [ecx+0A]       nop этой инструкции как-то дает стрелять пушки без перезарядки, но работает она и с другими значениями (сама сигнатура - 0F B6 51 0A C1 E2 10 0B C2 83 FE 03 76 ) 

Пытался найти значение и так, и эдак, почти все они во float, по таймеру, через здоровье, но те значения, которые нашел, отвечают за графику или форму таймера, или часов.

 

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

  • 11 месяцев спустя...

Всем доброго времени суток! Вот кое-что нашел на перезарядку, работает хотя бы за принцессу когда играешь (нет перезарядки для орудий).

А также некоторые скрипты на улучшения.

 

Нет перезарядки (играть за Princess):

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-07
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,C3 8B 96 D8 00 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp [esi+000000E0],3F800000
  je code
  mov dword ptr [esi+000000E0],3
  jmp code
code:
  mov edx,[esi+000000D8]
  jmp return

INJECT+01:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT+01:
  db 8B 96 D8 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 00649D42

00649D2A: BD 05 2C AD 33        -  mov ebp,33AD2C05
00649D2F: 05 55 8B EC 56        -  add eax,56EC8B55
00649D34: 8B F1                 -  mov esi,ecx
00649D36: 8B 4E 68              -  mov ecx,[esi+68]
00649D39: 85 C9                 -  test ecx,ecx
00649D3B: 75 05                 -  jne 00649D42
00649D3D: D9 EE                 -  fldz 
00649D3F: 5E                    -  pop esi
00649D40: 5D                    -  pop ebp
00649D41: C3                    -  ret 
// ---------- INJECTING HERE ----------
00649D42: 8B 96 D8 00 00 00     -  mov edx,[esi+000000D8]
// ---------- DONE INJECTING  ----------
00649D48: 39 09                 -  cmp [ecx],ecx
00649D4A: FF 15 F0 2F 33 05     -  call dword ptr [05332FF0]
00649D50: D8 8E E0 00 00 00     -  fmul dword ptr [esi+000000E0]
00649D56: 5E                    -  pop esi
00649D57: 5D                    -  pop ebp
00649D58: C3                    -  ret 
00649D59: 00 00                 -  add [eax],al
00649D5B: 00 00                 -  add [eax],al
00649D5D: 00 00                 -  add [eax],al
00649D5F: 00 E4                 -  add ah,ah
}

 

 

Деньги только у нас, у противника - 0 (этот скрипт исправлен, то что был выложен сначала,  не всегда срабатывало):

Спойлер

{ Game   : Cannon Brawl.exe
  Version:
  Date   : 2019-04-29
  Author : User

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat



aobscan(INJECT,47 D9 86 E4 00 00 00) // should be unique
alloc(newmem,$100)

label(code)
label(return)

newmem:
  cmp byte ptr [esi+000000FF],1
  jne @F
  mov [esi+000000E4],42c80000
  jmp code
@@:
  mov [esi+000000E4],(float)-200
code:
  fld dword ptr [esi+000000E4]
  jmp return

INJECT+01:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT+01:
  db D9 86 E4 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0906D285

0906D263: EB 06                 -  jmp 0906D26B
0906D265: D9 05 88 D3 06 09     -  fld dword ptr [0906D388]
0906D26B: 80 3D 98 56 2E 00 00  -  cmp byte ptr [002E5698],00
0906D272: 74 04                 -  je 0906D278
0906D274: DD D8                 -  fstp st(0)
0906D276: EB 54                 -  jmp 0906D2CC
0906D278: 80 3D 1D 54 2E 00 00  -  cmp byte ptr [002E541D],00
0906D27F: 74 04                 -  je 0906D285
0906D281: DD D8                 -  fstp st(0)
0906D283: EB 47                 -  jmp 0906D2CC
// ---------- INJECTING HERE ----------
0906D285: D9 86 E4 00 00 00     -  fld dword ptr [esi+000000E4]
// ---------- DONE INJECTING  ----------
0906D28B: D9 EE                 -  fldz
0906D28D: DF F1                 -  fcomip st(0),st(1)
0906D28F: DD D8                 -  fstp st(0)
0906D291: 7A 0D                 -  jp 0906D2A0
0906D293: 75 0B                 -  jne 0906D2A0
0906D295: 83 7E 74 00           -  cmp dword ptr [esi+74],00
0906D299: 75 05                 -  jne 0906D2A0
0906D29B: D9 EE                 -  fldz
0906D29D: D9 5D D0              -  fstp dword ptr [ebp-30]
0906D2A0: D8 8E E4 00 00 00     -  fmul dword ptr [esi+000000E4]

 

 

Целый мешок золота:

Спойлер

{ Game   : Cannon Brawl.exe
  Version:
  Date   : 2019-04-29
  Author : User

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat



aobscan(INJECT,47 D9 86 E4 00 00 00) // should be unique
alloc(newmem,$100)

label(code)
label(return)

newmem:
  cmp byte ptr [esi+000000FF],1
  jne code
  mov [esi+000000E4],42c80000
code:
  fld dword ptr [esi+000000E4]
  jmp return

INJECT+01:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT+01:
  db D9 86 E4 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0906D285

0906D263: EB 06                 -  jmp 0906D26B
0906D265: D9 05 88 D3 06 09     -  fld dword ptr [0906D388]
0906D26B: 80 3D 98 56 2E 00 00  -  cmp byte ptr [002E5698],00
0906D272: 74 04                 -  je 0906D278
0906D274: DD D8                 -  fstp st(0)
0906D276: EB 54                 -  jmp 0906D2CC
0906D278: 80 3D 1D 54 2E 00 00  -  cmp byte ptr [002E541D],00
0906D27F: 74 04                 -  je 0906D285
0906D281: DD D8                 -  fstp st(0)
0906D283: EB 47                 -  jmp 0906D2CC
// ---------- INJECTING HERE ----------
0906D285: D9 86 E4 00 00 00     -  fld dword ptr [esi+000000E4]
// ---------- DONE INJECTING  ----------
0906D28B: D9 EE                 -  fldz
0906D28D: DF F1                 -  fcomip st(0),st(1)
0906D28F: DD D8                 -  fstp st(0)
0906D291: 7A 0D                 -  jp 0906D2A0
0906D293: 75 0B                 -  jne 0906D2A0
0906D295: 83 7E 74 00           -  cmp dword ptr [esi+74],00
0906D299: 75 05                 -  jne 0906D2A0
0906D29B: D9 EE                 -  fldz
0906D29D: D9 5D D0              -  fstp dword ptr [ebp-30]
0906D2A0: D8 8E E4 00 00 00     -  fmul dword ptr [esi+000000E4]

 

 

Количество слоев защиты:

 

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,8B 91 8C 00 00 00 8B C2) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [ecx+00000084],0
  jne code
  mov dword ptr [ecx+0000008C],64
code:
  mov edx,[ecx+0000008C]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 8B 91 8C 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0601BE9C

0601BE7A: 5E                    -  pop esi
0601BE7B: 5F                    -  pop edi
0601BE7C: 5D                    -  pop ebp
0601BE7D: C2 04 00              -  ret 0004
0601BE80: E8 AB 75 94 63        -  call clr.dll+353430
0601BE85: CC                    -  int 3 
0601BE86: 00 00                 -  add [eax],al
0601BE88: C4 73 E3 05 00 00 00  -  add rax,00000000
0601BE8F: 00 BC 73 E3 05 58 2E  -  add [ebx+esi*2+2E5805E3],bh
0601BE96: 86 05 55 8B EC 50     -  xchg [50EC8B55],al
// ---------- INJECTING HERE ----------
0601BE9C: 8B 91 8C 00 00 00     -  mov edx,[ecx+0000008C]
// ---------- DONE INJECTING  ----------
0601BEA2: 8B C2                 -  mov eax,edx
0601BEA4: 2B 81 88 00 00 00     -  sub eax,[ecx+00000088]
0601BEAA: 89 45 FC              -  mov [ebp-04],eax
0601BEAD: DB 45 FC              -  fild dword ptr [ebp-04]
0601BEB0: D9 5D FC              -  fstp dword ptr [ebp-04]
0601BEB3: D9 45 FC              -  fld dword ptr [ebp-04]
0601BEB6: 89 55 FC              -  mov [ebp-04],edx
0601BEB9: DB 45 FC              -  fild dword ptr [ebp-04]
0601BEBC: D9 5D FC              -  fstp dword ptr [ebp-04]
0601BEBF: D9 45 FC              -  fld dword ptr [ebp-04]
}

 

 

Нет защиты у врага:

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,0F B6 81 AE 00 00 00 5D) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [ecx+00000084],0
  jne @F
  mov byte ptr [ecx+000000AE],1
  jmp code

@@:
  mov byte ptr [ecx+000000AE],0

code:
  movzx eax,byte ptr [ecx+000000AE]
  jmp return

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

[DISABLE]

INJECT:
  db 0F B6 81 AE 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0554A7E3

0554A7CD: CC                    -  int 3 
0554A7CE: 00 00                 -  add [eax],al
0554A7D0: E8 68 45 05 00        -  call 0559ED3D
0554A7D5: 00 00                 -  add [eax],al
0554A7D7: 00 E0                 -  add al,ah
0554A7D9: 68 45 05 4C 2E        -  push 2E4C0545
0554A7DE: 42                    -  inc edx
0554A7DF: 05                    - db 05  // SHORTENED TO HIT INJECTION FROM:  add eax,0FEC8B55
0554A7E0: 55                    -  push ebp
0554A7E1: 8B EC                 -  mov ebp,esp
// ---------- INJECTING HERE ----------
0554A7E3: 0F B6 81 AE 00 00 00  -  movzx eax,byte ptr [ecx+000000AE]
// ---------- DONE INJECTING  ----------
0554A7EA: 5D                    -  pop ebp
0554A7EB: C3                    -  ret 
0554A7EC: 00 00                 -  add [eax],al
0554A7EE: 00 00                 -  add [eax],al
0554A7F0: 50                    -  push eax
0554A7F1: 69 45 05 00 00 00 00  -  imul eax,[ebp+05]00000000
0554A7F8: F4                    -  hlt 
0554A7F9: 68 45 05 04 30        -  push 30040545
0554A7FE: 42                    -  inc edx
0554A7FF: 05 55 8B EC 57        -  add eax,57EC8B55
}

 

 

Радиус защиты:

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,D9 83 98 00 00 00 D8 35) // should be unique
alloc(newmem,$100)

label(code)
label(return)

newmem:
  cmp dword ptr [ebx+00000084],0
  jne code
  mov dword ptr [ebx+00000098],(float)10
code:
  fld dword ptr [ebx+00000098]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db D9 83 98 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 06019DA0

06019D75: 8D 45 88           -  lea eax,[ebp-78]
06019D78: 83 EC 08           -  sub esp,08
06019D7B: F3 0F 7E 00        -  movq xmm0,[eax]
06019D7F: 66 0F D6 04 24     -  movq [esp],xmm0
06019D84: B9 FF 00 00 FF     -  mov ecx,FF0000FF
06019D89: E8 92 3D DC FF     -  call 05DDDB20
06019D8E: 8D 83 B8 00 00 00  -  lea eax,[ebx+000000B8]
06019D94: 83 EC 08           -  sub esp,08
06019D97: F3 0F 7E 00        -  movq xmm0,[eax]
06019D9B: 66 0F D6 04 24     -  movq [esp],xmm0
// ---------- INJECTING HERE ----------
06019DA0: D9 83 98 00 00 00  -  fld dword ptr [ebx+00000098]
// ---------- DONE INJECTING  ----------
06019DA6: D8 35 B0 A6 01 06  -  fdiv dword ptr [0601A6B0]
06019DAC: 83 EC 04           -  sub esp,04
06019DAF: D9 1C 24           -  fstp dword ptr [esp]
06019DB2: 8D 4D 80           -  lea ecx,[ebp-80]
06019DB5: FF 15 10 46 31 05  -  call dword ptr [05314610]
06019DBB: 8D 83 B8 00 00 00  -  lea eax,[ebx+000000B8]
06019DC1: 83 EC 08           -  sub esp,08
06019DC4: F3 0F 7E 00        -  movq xmm0,[eax]
06019DC8: 66 0F D6 04 24     -  movq [esp],xmm0
06019DCD: D9 05 B8 56 35 00  -  fld dword ptr [003556B8]
}

 

 

Большой защитный слой:

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,D9 80 A0 00 00 00 8B) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [eax+00000084],0
  jne code
  mov dword ptr [eax+000000A0],(float)500
code:
  fld dword ptr [eax+000000A0]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db D9 80 A0 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0601B908

0601B8D2: 8B 86 24 01 00 00  -  mov eax,[esi+00000124]
0601B8D8: 38 80 A0 00 00 00  -  cmp [eax+000000A0],al
0601B8DE: 8B 86 24 01 00 00  -  mov eax,[esi+00000124]
0601B8E4: 38 80 98 00 00 00  -  cmp [eax+00000098],al
0601B8EA: 8D BD 68 FF FF FF  -  lea edi,[ebp-00000098]
0601B8F0: 0F 57 C0           -  xorps xmm0,xmm0
0601B8F3: 66 0F D6 07        -  movq [edi],xmm0
0601B8F7: 8B BE 18 01 00 00  -  mov edi,[esi+00000118]
0601B8FD: 68 CD CC AC 3F     -  push 3FACCCCD
0601B902: 8B 86 24 01 00 00  -  mov eax,[esi+00000124]
// ---------- INJECTING HERE ----------
0601B908: D9 80 A0 00 00 00  -  fld dword ptr [eax+000000A0]
// ---------- DONE INJECTING  ----------
0601B90E: 8B 86 18 01 00 00  -  mov eax,[esi+00000118]
0601B914: DB 40 58           -  fild dword ptr [eax+58]
0601B917: D9 9D 18 FF FF FF  -  fstp dword ptr [ebp-000000E8]
0601B91D: D9 85 18 FF FF FF  -  fld dword ptr [ebp-000000E8]
0601B923: DE F9              -  fdivp st(1),st(0)
0601B925: 83 EC 04           -  sub esp,04
0601B928: D9 1C 24           -  fstp dword ptr [esp]
0601B92B: 8D 8D 68 FF FF FF  -  lea ecx,[ebp-00000098]
0601B931: E8 BA E1 55 FA     -  call 00579AF0
0601B936: 8D 85 68 FF FF FF  -  lea eax,[ebp-00000098]
}

 

 

Дальность стрельбы снарядов у орудий:

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,D8 88 A4 00 00 00) // should be unique
alloc(newmem,$100)

label(code)
label(return)

newmem:
  cmp dword ptr [eax+0000008C],0
  jne code
  mov dword ptr [eax+000000A4],(float)400
code:
  fmul dword ptr [eax+000000A4]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db D8 88 A4 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 05DFB00B

05DFAFDD: 89 95 94 FE FF FF  -  mov [ebp-0000016C],edx
05DFAFE3: 8D 55 EC           -  lea edx,[ebp-14]
05DFAFE6: 8B 8D 98 FE FF FF  -  mov ecx,[ebp-00000168]
05DFAFEC: E8 EF 90 24 00     -  call 060440E0
05DFAFF1: 8D BD AC FE FF FF  -  lea edi,[ebp-00000154]
05DFAFF7: 8D 75 EC           -  lea esi,[ebp-14]
05DFAFFA: F3 0F 7E 06        -  movq xmm0,[esi]
05DFAFFE: 66 0F D6 07        -  movq [edi],xmm0
05DFB002: D9 45 18           -  fld dword ptr [ebp+18]
05DFB005: 8B 85 98 FE FF FF  -  mov eax,[ebp-00000168]
// ---------- INJECTING HERE ----------
05DFB00B: D8 88 A4 00 00 00  -  fmul dword ptr [eax+000000A4]
// ---------- DONE INJECTING  ----------
05DFB011: D9 9D 90 FE FF FF  -  fstp dword ptr [ebp-00000170]
05DFB017: D9 85 90 FE FF FF  -  fld dword ptr [ebp-00000170]
05DFB01D: 8D BD B4 FE FF FF  -  lea edi,[ebp-0000014C]
05DFB023: 0F 57 C0           -  xorps xmm0,xmm0
05DFB026: 66 0F D6 07        -  movq [edi],xmm0
05DFB02A: D9 85 AC FE FF FF  -  fld dword ptr [ebp-00000154]
05DFB030: D8 C9              -  fmul st(0),st(1)
05DFB032: D9 9D B4 FE FF FF  -  fstp dword ptr [ebp-0000014C]
05DFB038: D9 85 B0 FE FF FF  -  fld dword ptr [ebp-00000150]
05DFB03E: DE C9              -  fmulp st(1),st(0)
}

 

 

Увеличен радиус постройки зданий:

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,D9 81 84 00 00 00 5D) // should be unique
alloc(newmem,$180)

label(code)
label(return)

newmem:
  cmp dword ptr [ecx+0000006C],0
  jne code
  cmp dword ptr [ecx+00000084],(float)212.5
  je code
  mov dword ptr [ecx+00000084],(float)500
code:
  fld dword ptr [ecx+00000084]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db D9 81 84 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 055A8553

055A853E: 00 00                          -  add [eax],al
055A8540: 48                             -  dec eax
055A8541: EE                             -  out dx,al
055A8542: 58                             -  pop eax
055A8543: 05 00 00 00 00                 -  add eax,00000000
055A8548: 3C EE                          -  cmp al,-12
055A854A: 58                             -  pop eax
055A854B: 05 04 BC 34 05                 -  add eax,0534BC04
055A8550: 55                             -  push ebp
055A8551: 8B EC                          -  mov ebp,esp
// ---------- INJECTING HERE ----------
055A8553: D9 81 84 00 00 00              -  fld dword ptr [ecx+00000084]
// ---------- DONE INJECTING  ----------
055A8559: 5D                             -  pop ebp
055A855A: C3                             -  ret 
055A855B: 00 00                          -  add [eax],al
055A855D: 00 00                          -  add [eax],al
055A855F: 00 5C EE 58                    -  add [esi+ebp*8+58],bl
055A8563: 05 00 00 00 00                 -  add eax,00000000
055A8568: 54                             -  push esp
055A8569: EE                             -  out dx,al
055A856A: 58                             -  pop eax
055A856B: 05 B8 BB 34 05                 -  add eax,0534BBB8
}

 

 

Пушки все до третьего уровня (иногда глючит):

Спойлер

{ Game   : Cannon Brawl.exe
  Version: 
  Date   : 2020-04-12
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,8B 81 D8 00 00 00 5D) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [ecx+000000E0],(float)1
  je code
  mov dword ptr [ecx+000000D8],2
code:
  mov eax,[ecx+000000D8]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 8B 81 D8 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 057CFD83

057CFD62: D9 59 04              -  fstp dword ptr [ecx+04]
057CFD65: D9 44 24 04           -  fld dword ptr [esp+04]
057CFD69: D9 59 08              -  fstp dword ptr [ecx+08]
057CFD6C: C2 0C 00              -  ret 000C
057CFD6F: 00 50 B3              -  add [eax-4D],dl
057CFD72: 6B 05 00 00 00 00 48  -  imul eax,[00000000],48
057CFD79: B3 6B                 -  mov bl,6B
057CFD7B: 05 58 AC 06 05        -  add eax,0506AC58
057CFD80: 55                    -  push ebp
057CFD81: 8B EC                 -  mov ebp,esp
// ---------- INJECTING HERE ----------
057CFD83: 8B 81 D8 00 00 00     -  mov eax,[ecx+000000D8]
// ---------- DONE INJECTING  ----------
057CFD89: 5D                    -  pop ebp
057CFD8A: C3                    -  ret 
057CFD8B: 00 00                 -  add [eax],al
057CFD8D: 00 00                 -  add [eax],al
057CFD8F: 00 68 B3              -  add [eax-4D],ch
057CFD92: 6B 05 00 00 00 00 5C  -  imul eax,[00000000],5C
057CFD99: B3 6B                 -  mov bl,6B
057CFD9B: 05 A0 D7 B1 00        -  add eax,00B1D7A0
057CFDA0: 55                    -  push ebp
057CFDA1: 8B EC                 -  mov ebp,esp
}

 

 

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

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

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

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