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

Cannon Fodder 3 v1.0


Partizan

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

1. Жизни не кочаются

Спойлер

[ENABLE]
aobscanmodule(Hp,cf3.exe,96 EB FF 8B 10 8B C8 8B 42 18 FF D0 89 44 24 04)
registersymbol(Hp)
Hp+0A:
db 90 90

[DISABLE]
Hp+0A:
db FF D0//call eax
unregistersymbol(Hp)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: cf3.exe+503EB9
cf3.exe+503E9F: CC                 - int 3 
cf3.exe+503EA0: 51                 - push ecx
cf3.exe+503EA1: 56                 - push esi
cf3.exe+503EA2: 8B 74 24 0C        - mov esi,[esp+0C]
cf3.exe+503EA6: B8 01 00 00 00     - mov eax,00000001
cf3.exe+503EAB: 8B CE              - mov ecx,esi
cf3.exe+503EAD: E8 8E 96 EB FF     - call cf3.exe+3BD540
cf3.exe+503EB2: 8B 10              - mov edx,[eax]
cf3.exe+503EB4: 8B C8              - mov ecx,eax
cf3.exe+503EB6: 8B 42 18           - mov eax,[edx+18]
// ---------- INJECTING HERE ----------
cf3.exe+503EB9: FF D0              - call eax
// ---------- DONE INJECTING  ----------
cf3.exe+503EBB: 89 44 24 04        - mov [esp+04],eax
cf3.exe+503EBF: DB 44 24 04        - fild dword ptr [esp+04]
cf3.exe+503EC3: 85 C0              - test eax,eax
cf3.exe+503EC5: 7D 06              - jnl cf3.exe+503ECD
cf3.exe+503EC7: D8 05 C0 02 B0 00  - fadd dword ptr [cf3.exe+7002C0]
cf3.exe+503ECD: 51                 - push ecx
cf3.exe+503ECE: D9 1C 24           - fstp dword ptr [esp]
cf3.exe+503ED1: 56                 - push esi
cf3.exe+503ED2: E8 B9 F3 C7 FF     - call cf3.exe+183290
cf3.exe+503ED7: 83 C4 08           - add esp,08
}

 

2. Бесконечный боезапас

Спойлер

[ENABLE]
aobscanmodule(Ammo,cf3.exe,F0 8B 46 20 85 C0 74 1A 83 78 50 00 75 14)
alloc(newmem,$1000)
label(return)
registersymbol(Ammo)

newmem:
  mov dword ptr [eax+50],#99
  cmp dword ptr [eax+50],00
  jne cf3.exe+339842
  jmp return

Ammo+08:
  jmp newmem
  nop
return:

[DISABLE]
Ammo+08:
db 83 78 50 00 75 14
unregistersymbol(Ammo)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: cf3.exe+339828
cf3.exe+33980E: CC                    - int 3 
cf3.exe+33980F: CC                    - int 3 
cf3.exe+339810: 8B 4C 24 04           - mov ecx,[esp+04]
cf3.exe+339814: 56                    - push esi
cf3.exe+339815: B8 01 00 00 00        - mov eax,00000001
cf3.exe+33981A: E8 21 3D 08 00        - call cf3.exe+3BD540
cf3.exe+33981F: 8B F0                 - mov esi,eax
cf3.exe+339821: 8B 46 20              - mov eax,[esi+20]
cf3.exe+339824: 85 C0                 - test eax,eax
cf3.exe+339826: 74 1A                 - je cf3.exe+339842
// ---------- INJECTING HERE ----------
cf3.exe+339828: 83 78 50 00           - cmp dword ptr [eax+50],00
// ---------- DONE INJECTING  ----------
cf3.exe+33982C: 75 14                 - jne cf3.exe+339842
cf3.exe+33982E: 8B C8                 - mov ecx,eax
cf3.exe+339830: 85 C9                 - test ecx,ecx
cf3.exe+339832: 74 0E                 - je cf3.exe+339842
cf3.exe+339834: 8B 01                 - mov eax,[ecx]
cf3.exe+339836: 8B 50 08              - mov edx,[eax+08]
cf3.exe+339839: FF D2                 - call edx
cf3.exe+33983B: C7 46 20 00 00 00 00  - mov [esi+20],00000000
cf3.exe+339842: 8B C6                 - mov eax,esi
cf3.exe+339844: E8 67 E6 FF FF        - call cf3.exe+337EB0
}

 

3. Враги не атакуют

Спойлер

[ENABLE]
aobscanmodule(no_attac,cf3.exe,75 1F 8B 4E 10) // should be unique
registersymbol(no_attac)
no_attac:
db 74 1F

[DISABLE]
no_attac:
db 75 1F
unregistersymbol(no_attac)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: cf3.exe+199D66
cf3.exe+199D47: E8 E4 E0 FF FF     - call cf3.exe+197E30
cf3.exe+199D4C: 8B C8              - mov ecx,eax
cf3.exe+199D4E: 83 C4 0C           - add esp,0C
cf3.exe+199D51: 83 79 04 00        - cmp dword ptr [ecx+04],00
cf3.exe+199D55: 89 4C 24 10        - mov [esp+10],ecx
cf3.exe+199D59: 75 2C              - jne cf3.exe+199D87
cf3.exe+199D5B: 8B 43 08           - mov eax,[ebx+08]
cf3.exe+199D5E: 85 C0              - test eax,eax
cf3.exe+199D60: 74 25              - je cf3.exe+199D87
cf3.exe+199D62: F6 40 06 02        - test byte ptr [eax+06],02
// ---------- INJECTING HERE ----------
cf3.exe+199D66: 75 1F              - jne cf3.exe+199D87
// ---------- DONE INJECTING  ----------
cf3.exe+199D68: 8B 4E 10           - mov ecx,[esi+10]
cf3.exe+199D6B: 8B 91 A8 00 00 00  - mov edx,[ecx+000000A8]
cf3.exe+199D71: 52                 - push edx
cf3.exe+199D72: 6A 01              - push 01
cf3.exe+199D74: 50                 - push eax
cf3.exe+199D75: E8 76 F0 FF FF     - call cf3.exe+198DF0
cf3.exe+199D7A: 8B F8              - mov edi,eax
cf3.exe+199D7C: 83 C4 0C           - add esp,0C
cf3.exe+199D7F: 85 FF              - test edi,edi
cf3.exe+199D81: 75 6E              - jne cf3.exe+199DF1
}

 

Посмотреть ролик

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

6 часов назад, Partizan сказал:

Жизни

 

как искал беск. здоровье  можешь рассказать ?  вроде там  не просто )))

 

еще я  не много не понял . ты занопил  call eax , но тогда  у тебя в еах  останеться  адрес инструкции  вызова  который  ты переводишь  в float . почему  не записал в еах  число , а оставил инструкцию  ?

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

12 часов назад, Alex2411 сказал:

ты занопил  call eax

Так оно кривое это бессмертие..  Он игру то c включенной функцией не загружал. Попробует пусть :)  Если включать и выключать каждый раз перед загрузкой игры, но попрёт...  Но как то не красиво это выглядит.

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

13 часов назад, Partizan сказал:

Ксипо вроде хотел сделать по этой игре урок

 

ты не много не так  меня понял . мне интересно  как ты сам  выходил на эту инструкцию , а не урок  как надо ломать эту игру .

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

4 часа назад, LIRW сказал:

Так оно кривое это бессмертие..  Он игру то c включенной функцией не загружал. Попробует пусть :)  Если включать и выключать каждый раз перед загрузкой игры, но попрёт...  Но как то не красиво это выглядит.

Да... Косяк.

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

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

Да... Косяк.

В этой игре есть меню разработчиков... Но это над сидеть думать, как его врубить... Сама функция то есть, но тут время на эту игру нет. 

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

14 минут назад, LIRW сказал:

В этой игре есть меню разработчиков... Но это над сидеть думать, как его врубить... Сама функция то есть, но тут время на эту игру нет. 

Это я уже понял

godmode.png

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

  • 2 недели спустя...

Госпадин Ксипо не надо меня сразу минусоватю. Вы обещали публично её взломать?

Умоляю Вас сделать ЭТО!

Только не надо говорить что я Вас чемто оскорбил!

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

  • 2 недели спустя...
  • 2 недели спустя...
10 часов назад, Partizan сказал:

За обещание ксипо я минус получил

Точно минус? И точно именно за моё обещание? Подумай, а то в этот раз рискуешь от меня минус получить за необдуманные высказывания...

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

  • 1 год спустя...

Как же оказалось всё просто. И что я раньше тупил? С этими жизнями.

Спойлер
[ENABLE]
aobscanmodule(HP,cf3.exe,2C 8B 10 89 11 8B 50 04)
alloc(newmem,$1000)
label(return)
registersymbol(HP)

newmem:
  cmp [esp+0C],4E//фильтр от всего кроме игрока и врагов
  jne short @F
  cmp [ecx+14],3F800000//непосредственно фильтр на игрока
  jne short @F
  mov edx,(float)10
@@:
  mov [ecx],edx
  mov edx,[eax+04]
  jmp return

HP+03:
  jmp newmem
return:

[DISABLE]
HP+03:
db 89 11 8B 50 04
unregistersymbol(*)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: cf3.exe+199D95
cf3.exe+199D75: E8 76 F0 FF FF     - call cf3.exe+198DF0
cf3.exe+199D7A: 8B F8              - mov edi,eax
cf3.exe+199D7C: 83 C4 0C           - add esp,0C
cf3.exe+199D7F: 85 FF              - test edi,edi
cf3.exe+199D81: 75 6E              - jne cf3.exe+199DF1
cf3.exe+199D83: 8B 4C 24 10        - mov ecx,[esp+10]
cf3.exe+199D87: 83 46 08 F8        - add dword ptr [esi+08],-08
cf3.exe+199D8B: 80 66 05 F7        - and byte ptr [esi+05],-09
cf3.exe+199D8F: 8B 44 24 2C        - mov eax,[esp+2C]
cf3.exe+199D93: 8B 10              - mov edx,[eax]
// ---------- INJECTING HERE ----------
cf3.exe+199D95: 89 11              - mov [ecx],edx
// ---------- DONE INJECTING  ----------
cf3.exe+199D97: 8B 50 04           - mov edx,[eax+04]
cf3.exe+199D9A: 89 51 04           - mov [ecx+04],edx
cf3.exe+199D9D: B9 04 00 00 00     - mov ecx,00000004
cf3.exe+199DA2: 39 48 04           - cmp [eax+04],ecx
cf3.exe+199DA5: 0F 8C 8C 00 00 00  - jl cf3.exe+199E37
cf3.exe+199DAB: 8B 00              - mov eax,[eax]
cf3.exe+199DAD: F6 40 05 03        - test byte ptr [eax+05],03
cf3.exe+199DB1: 0F 84 80 00 00 00  - je cf3.exe+199E37
cf3.exe+199DB7: 84 4B 05           - test [ebx+05],cl
cf3.exe+199DBA: 74 7B              - je cf3.exe+199E37
}

 

Спойлер

 

 

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

Неплохо. Но я не так выходил на жизни. Там же интерпретатор LUA, в который передается LuaState - и из этого стейта можно любую инфу доставать и модифицировать.

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

Косяк с скриптом.Поспешил. ecx+14 это оказалось ранг

Спойлер
[ENABLE]
aobscanmodule(HP,cf3.exe,2C 8B 10 89 11 8B 50 04)
alloc(newmem,$1000)
label(return)
registersymbol(HP)

newmem:
  cmp [esp+0C],4E//фильтр от всего кроме игрока и врагов
  jne short @F
  cmp [ecx+18],03//непосредственно фильтр на игрока
  jne short @F
  mov edx,(float)1000
  mov [ecx+14],(float)16//Ранг игрока 16 максимум
@@:
  mov [ecx],edx
  mov edx,[eax+04]
  jmp return


HP+03:
  jmp newmem
return:

[DISABLE]
HP+03:
db 89 11 8B 50 04
unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: cf3.exe+199D95

cf3.exe+199D75: E8 76 F0 FF FF     - call cf3.exe+198DF0
cf3.exe+199D7A: 8B F8              - mov edi,eax
cf3.exe+199D7C: 83 C4 0C           - add esp,0C
cf3.exe+199D7F: 85 FF              - test edi,edi
cf3.exe+199D81: 75 6E              - jne cf3.exe+199DF1
cf3.exe+199D83: 8B 4C 24 10        - mov ecx,[esp+10]
cf3.exe+199D87: 83 46 08 F8        - add dword ptr [esi+08],-08
cf3.exe+199D8B: 80 66 05 F7        - and byte ptr [esi+05],-09
cf3.exe+199D8F: 8B 44 24 2C        - mov eax,[esp+2C]
cf3.exe+199D93: 8B 10              - mov edx,[eax]
// ---------- INJECTING HERE ----------
cf3.exe+199D95: 89 11              - mov [ecx],edx
// ---------- DONE INJECTING  ----------
cf3.exe+199D97: 8B 50 04           - mov edx,[eax+04]
cf3.exe+199D9A: 89 51 04           - mov [ecx+04],edx
cf3.exe+199D9D: B9 04 00 00 00     - mov ecx,00000004
cf3.exe+199DA2: 39 48 04           - cmp [eax+04],ecx
cf3.exe+199DA5: 0F 8C 8C 00 00 00  - jl cf3.exe+199E37
cf3.exe+199DAB: 8B 00              - mov eax,[eax]
cf3.exe+199DAD: F6 40 05 03        - test byte ptr [eax+05],03
cf3.exe+199DB1: 0F 84 80 00 00 00  - je cf3.exe+199E37
cf3.exe+199DB7: 84 4B 05           - test [ebx+05],cl
cf3.exe+199DBA: 74 7B              - je cf3.exe+199E37
}

 

 

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

Коротенько там не получится, так как нужно давать контекст, почему я поступаю так, а не иначе. Ну и плюс на это надо свободное время, которого у меня, увы, нет. 

Разумеется, как появится время, обязательно запишу видос. Но как скоро это будет - неизвестно.

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

  • 1 месяц спустя...

Не могу это сдесь не выложить.(не удаляйте)

Почему? Не знаю! 

Спойлер

 

 

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

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

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

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