Перейти к содержанию
  • записи
    104
  • комментариев
    125
  • просмотра
    15 462

Обработка исключения в Cheat Engine AA


MasterGH

1 619 просмотров

Новые директивы try/except в AA доступны Cheat Engine 6.8 Beta2

 

Задача  try/except в AA обработать исключение, не допустить crash. Чтобы игра продолжалась, а чит в лучшем случае не закрыл бы процесс.

В теории возможно определить, что был crash и что-то сделать. Например, отправить логи в свой или иной удаленный сервис аналитики, что такой-то чит не сработал...

 

Пример от DarkByte для  try/except с счетчиком crashes

Спойлер

[ENABLE] 
alloc(newmem,2048) 
alloc(crashcount,4) 
registersymbol(crashcount) 
label(returnhere) 
label(originalcode) 
label(exit) 
  
newmem: 
  
push eax 
{$try} 
mov eax,[esi+95c] 
cmp [eax+10],0 
jmp ok 
{$except} 
pop eax 
add [crashcount],1 
jmp originalcode 
  
ok: 
pop eax 
  
je aftersub //it is 0 
originalcode: 
subss xmm0,xmm3 
  
aftersub: 
movss [esi+00000164],xmm0 
  
exit: 
jmp returnhere 
  
"HomeworldRM.exe"+22AEEA: 
jmp newmem 
nop 
nop 
nop 
nop 
nop 
nop 
nop 
returnhere: 
  
  
  
  
[DISABLE] 
dealloc(newmem) 
"HomeworldRM.exe"+22AEEA: 
subss xmm0,xmm3 
movss [esi+00000164],xmm0 
//Alt: db F3 0F 5C C3 F3 0F 11 86 64 01 00 00 

 

 

 

  • Понравилось 1
  • Плюс 1

3 Комментария


Рекомендуемые комментарии

Странно. 

Почему не описаны метки ok и aftersub в скрипте? (разве не нужны label(ok) и label(aftersub)).  Но хотя СЕ у меня этот скрипт скушал. Наверное эти метки описаны в директивах try/except.

Ссылка на комментарий

c 6.7 уже необязательно объявлять. Но я на автомате все еще продолжаю это делать ) 

  • Плюс 1
Ссылка на комментарий

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

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

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

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