SergBrNord

Serious Sam HD: TSE; взлом здоровья

105 сообщений в этой теме

Времени на уточнение, какие скрипты проверял и как, не имею к сожалению.

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

 

0

Поделиться сообщением


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

SergBrNord, переписал скрипт (пока только для НР = 99), в самом начале побегал, по подбирал аптечки - вылетов нет.

Потесть теперь уже сам (у меня времени нет этим заниматься), если вылетов не будет и у тебя, то добавим в скрипт патроны и всё оружие.

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

{ Game   : SamHD_TSE.exe
  Version: 
  Date   : 2016-04-04
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(player,SamHD_TSE.exe,39 86 98 04 00 00) // should be unique
aobscanmodule(GodMod1,SamHD_TSE.exe,CC 8B 01 33 C1 39 41 04)
alloc(newmem,$1000)
label(newmem1)
label(code)
label(code1)
label(return)
label(return1)
label(p_player)
registersymbol(p_player)
registersymbol(player)
registersymbol(GodMod1)

newmem:
  mov ecx,[esi+58]
  cmp [ecx],79616C50         // Проверенный фильтр - "play".
  jne code
  mov [p_player],esi         // указатель на начала структуры ГГ

code:
  cmp [esi+00000498],eax
  jmp return

newmem1:
  cmp [p_player],0           // на всякий случай (чтобы не было вылетов), если вторая инструкция сработает раньше, чем первая.
  je code1

  mov eax,[p_player]
  lea eax,[eax+488]
  cmp ecx,eax                // Если инструкция работает со структурой ГГ в данный момент, то записываем в адрес здоровья #99.
  jne code1
  mov [ecx],#99
  mov eax,[ecx]        
  xor eax,ecx                // XORируем значение НР через адрес НР и
  mov [ecx+04],eax           // Записываем его в нужный адрес (в следующий адрес после адреса НР, через 4 байта).

code1:
  mov eax,[ecx]
  xor eax,ecx
  cmp [ecx+04],eax
  jmp return1

p_player:
dd 0

player:
  jmp newmem
  nop
return:

GodMod1+01:
  jmp newmem1
  nop
  nop
return1:

[DISABLE]
player:
  db 39 86 98 04 00 00
GodMod1+01:
  db 8B 01 33 C1 39 41 04

unregistersymbol(p_player)
unregistersymbol(player)
unregistersymbol(GodMod1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "SamHD_TSE.exe"+6BBA6

"SamHD_TSE.exe"+6BB80: 74 10                 -  je SamHD_TSE.exe+6BB92
"SamHD_TSE.exe"+6BB82: 83 BE 38 08 00 00 00  -  cmp dword ptr [esi+00000838],00
"SamHD_TSE.exe"+6BB89: 74 07                 -  je SamHD_TSE.exe+6BB92
"SamHD_TSE.exe"+6BB8B: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BB8D: E8 1E 46 FF FF        -  call SamHD_TSE.exe+601B0
"SamHD_TSE.exe"+6BB92: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BB94: E8 B7 FD 02 00        -  call SamHD_TSE.exe+9B950
"SamHD_TSE.exe"+6BB99: 8D BE 88 04 00 00     -  lea edi,[esi+00000488]
"SamHD_TSE.exe"+6BB9F: 8B CF                 -  mov ecx,edi
"SamHD_TSE.exe"+6BBA1: E8 4A 0B 48 00        -  call SamHD_TSE.exe+4EC6F0
// ---------- INJECTING HERE ----------
"SamHD_TSE.exe"+6BBA6: 39 86 98 04 00 00     -  cmp [esi+00000498],eax
// ---------- DONE INJECTING  ----------
"SamHD_TSE.exe"+6BBAC: 75 0B                 -  jne SamHD_TSE.exe+6BBB9
"SamHD_TSE.exe"+6BBAE: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BBB0: E8 2B AE 00 00        -  call SamHD_TSE.exe+769E0
"SamHD_TSE.exe"+6BBB5: 85 C0                 -  test eax,eax
"SamHD_TSE.exe"+6BBB7: 75 19                 -  jne SamHD_TSE.exe+6BBD2
"SamHD_TSE.exe"+6BBB9: 8B 16                 -  mov edx,[esi]
"SamHD_TSE.exe"+6BBBB: 8B 82 B8 06 00 00     -  mov eax,[edx+000006B8]
"SamHD_TSE.exe"+6BBC1: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BBC3: FF D0                 -  call eax
"SamHD_TSE.exe"+6BBC5: 8B CF                 -  mov ecx,edi
}
{
// ORIGINAL CODE - INJECTION POINT: "SamHD_TSE.exe"+4EC6F0

"SamHD_TSE.exe"+4EC6DA: 8B 55 08                       -  mov edx,[ebp+08]
"SamHD_TSE.exe"+4EC6DD: 89 01                          -  mov [ecx],eax
"SamHD_TSE.exe"+4EC6DF: 8B 12                          -  mov edx,[edx]
"SamHD_TSE.exe"+4EC6E1: 8B 12                          -  mov edx,[edx]
"SamHD_TSE.exe"+4EC6E3: 33 C1                          -  xor eax,ecx
"SamHD_TSE.exe"+4EC6E5: 89 51 08                       -  mov [ecx+08],edx
"SamHD_TSE.exe"+4EC6E8: 89 41 04                       -  mov [ecx+04],eax
"SamHD_TSE.exe"+4EC6EB: 5D                             -  pop ebp
"SamHD_TSE.exe"+4EC6EC: C2 08 00                       -  ret 0008
"SamHD_TSE.exe"+4EC6EF: CC                             -  int 3
// ---------- INJECTING HERE ----------
"SamHD_TSE.exe"+4EC6F0: 8B 01                          -  mov eax,[ecx]
"SamHD_TSE.exe"+4EC6F2: 33 C1                          -  xor eax,ecx
"SamHD_TSE.exe"+4EC6F4: 39 41 04                       -  cmp [ecx+04],eax
// ---------- DONE INJECTING  ----------
"SamHD_TSE.exe"+4EC6F7: 74 0A                          -  je SamHD_TSE.exe+4EC703
"SamHD_TSE.exe"+4EC6F9: C7 05 68 A2 F5 00 01 00 00 00  -  mov [SamHD_TSE.exe+B5A268],00000001
"SamHD_TSE.exe"+4EC703: 8B 01                          -  mov eax,[ecx]
"SamHD_TSE.exe"+4EC705: C3                             -  ret
"SamHD_TSE.exe"+4EC706: CC                             -  int 3
"SamHD_TSE.exe"+4EC707: CC                             -  int 3
"SamHD_TSE.exe"+4EC708: CC                             -  int 3
"SamHD_TSE.exe"+4EC709: CC                             -  int 3
"SamHD_TSE.exe"+4EC70A: CC                             -  int 3
"SamHD_TSE.exe"+4EC70B: CC                             -  int 3
}

 

 

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 04.04.2016в19:25, Garik66 сказал:

SergBrNord, переписал скрипт (пока только для НР = 99), в самом начале побегал, по подбирал аптечки - вылетов нет.

Проверил - падает. Проблема не в фильтрах или скрипте. Проблема в достаточно нестабильном движке.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, SergBrNord сказал:

Проверил - падает. Проблема не в фильтрах или скрипте. Проблема в достаточно нестабильном движке.

Ну да. Говорили уже об недоделанном репаке раньше. Нужна лицензия.

Я почитал сообщения репака, ссылку на который мне дал  SergBrNord.

Там пишут, что разработчики специально поломали некоторые файлы игры (борьба против пиратов), и только после обновления со Стим эти файлы принимают нормальный вид. Так что, как делали репакеры я не знаю (по-видимому не очень справились), но ошибка явно специально деланная разработчиками.

0

Поделиться сообщением


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

Гарик, у меня лицензия =)

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас