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

Простейший анти-чит


JIeXA

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

Наткнулся на игру 

"Добрый молодец"

 

Задача

1 Поменять очки через адрес и чтоб при этом не сработал анти-чит

2 обойти анти-чит с помощью СЕ не Ольгой и подобному ней

 

Игра

https://drive.google.com/file/d/1HxkKUE7St-j7553b5mUolyQaM1suBsLk/view?usp=sharing

 

 

Сайт автора не работает

 

 

на вирусы

https://www.virustotal.com/ru/file/1a07ffaca47d7dbb9cde197b976ab95235f77b3dc262d0e241c6dac2fe0be93d/analysis/1520629552/

 

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

3 минуты назад, kiwipapayamongoose сказал:

а в чем разница? что в ce дизассемблер, что в ольке

Вы можете поставить бряк в СЕ на функцию????????

 

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

57 минут назад, JIeXA сказал:

Вы можете поставить бряк в СЕ на функцию????????

Вроде бы что-то такое было в Ce, хотя могу путать с моно играми.

 

ezq-NW8GPJI.jpg

 

 

в общем тут 2 варианта обхода и оба легкие, хотя интересно было посмотреть как детектит значение.

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

В 10.03.2018 в 00:47, JIeXA сказал:

Скрипт под споилер

 

Спойлер

{ Game   : GoodBoy.exe
  Version: 
  Date   : 2018-03-10
  Author : Alexander

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(bypass,GoodBoy.exe,3B 83 0C 0A 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov eax,[ebx+00000A0C]
  cmp eax,[ebx+00000A0C]
  jmp return

bypass:
  jmp newmem
  nop
return:
registersymbol(bypass)

[DISABLE]

bypass:
  db 3B 83 0C 0A 00 00

unregistersymbol(bypass)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "GoodBoy.exe"+A37E

"GoodBoy.exe"+A369: C1 E0 04           -  shl eax,04
"GoodBoy.exe"+A36C: 03 C1              -  add eax,ecx
"GoodBoy.exe"+A36E: 03 D0              -  add edx,eax
"GoodBoy.exe"+A370: 8B C2              -  mov eax,edx
"GoodBoy.exe"+A372: 5B                 -  pop ebx
"GoodBoy.exe"+A373: C3                 -  ret 
"GoodBoy.exe"+A374: 53                 -  push ebx
"GoodBoy.exe"+A375: 8B D8              -  mov ebx,eax
"GoodBoy.exe"+A377: 8B C3              -  mov eax,ebx
"GoodBoy.exe"+A379: E8 8A FF FF FF     -  call GoodBoy.exe+A308
// ---------- INJECTING HERE ----------
"GoodBoy.exe"+A37E: 3B 83 0C 0A 00 00  -  cmp eax,[ebx+00000A0C]
// ---------- DONE INJECTING  ----------
"GoodBoy.exe"+A384: 74 34              -  je GoodBoy.exe+A3BA
"GoodBoy.exe"+A386: 8B 15 48 04 48 00  -  mov edx,[GoodBoy.exe+80448]
"GoodBoy.exe"+A38C: 6A 10              -  push 10
"GoodBoy.exe"+A38E: 68 FE A4 47 00     -  push GoodBoy.exe+7A4FE
"GoodBoy.exe"+A393: 68 9D A4 47 00     -  push GoodBoy.exe+7A49D
"GoodBoy.exe"+A398: 8B 0A              -  mov ecx,[edx]
"GoodBoy.exe"+A39A: 8B 41 44           -  mov eax,[ecx+44]
"GoodBoy.exe"+A39D: E8 06 C1 05 00     -  call GoodBoy.exe+664A8
"GoodBoy.exe"+A3A2: 50                 -  push eax
"GoodBoy.exe"+A3A3: E8 22 C1 06 00     -  call GoodBoy.exe+764CA
}

 

 

В 10.03.2018 в 00:47, JIeXA сказал:

Ну а скажем сквозь стены ходить

 

Легко)

 

 

Спойлер

{ Game   : GoodBoy.exe
  Version: 
  Date   : 2018-03-10
  Author : Alexander

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(ghost_mode,GoodBoy.exe,84 C0 75 11 33 C0) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov al, 01
  test al,al
  jne GoodBoy.Zgs01Finalize+1305
  xor eax,eax
  jmp return

ghost_mode:
  jmp newmem
  nop
return:
registersymbol(ghost_mode)

[DISABLE]

ghost_mode:
  db 84 C0 75 11 33 C0

unregistersymbol(ghost_mode)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "GoodBoy.exe"+8B70

"GoodBoy.exe"+8B40: 64 89 15 00 00 00 00  -  mov fs:[00000000],edx
"GoodBoy.exe"+8B47: E9 08 0A 00 00        -  jmp GoodBoy.exe+9554
"GoodBoy.exe"+8B4C: 33 C0                 -  xor eax,eax
"GoodBoy.exe"+8B4E: 89 85 64 FF FF FF     -  mov [ebp-0000009C],eax
"GoodBoy.exe"+8B54: 8B 8B E0 07 00 00     -  mov ecx,[ebx+000007E0]
"GoodBoy.exe"+8B5A: 8B 93 DC 07 00 00     -  mov edx,[ebx+000007DC]
"GoodBoy.exe"+8B60: 03 8D 7C FF FF FF     -  add ecx,[ebp-00000084]
"GoodBoy.exe"+8B66: 03 55 80              -  add edx,[ebp-80]
"GoodBoy.exe"+8B69: 8B C3                 -  mov eax,ebx
"GoodBoy.exe"+8B6B: E8 AC F5 FF FF        -  call GoodBoy.exe+811C
// ---------- INJECTING HERE ----------
"GoodBoy.exe"+8B70: 84 C0                 -  test al,al
"GoodBoy.exe"+8B72: 75 11                 -  jne GoodBoy.exe+8B85
"GoodBoy.exe"+8B74: 33 C0                 -  xor eax,eax
// ---------- DONE INJECTING  ----------
"GoodBoy.exe"+8B76: 8B 55 84              -  mov edx,[ebp-7C]
"GoodBoy.exe"+8B79: 64 89 15 00 00 00 00  -  mov fs:[00000000],edx
"GoodBoy.exe"+8B80: E9 CF 09 00 00        -  jmp GoodBoy.exe+9554
"GoodBoy.exe"+8B85: 8B 8B DC 07 00 00     -  mov ecx,[ebx+000007DC]
"GoodBoy.exe"+8B8B: 8D 0C 89              -  lea ecx,[ecx+ecx*4]
"GoodBoy.exe"+8B8E: 8D 0C 89              -  lea ecx,[ecx+ecx*4]
"GoodBoy.exe"+8B91: 8D 14 4B              -  lea edx,[ebx+ecx*2]
"GoodBoy.exe"+8B94: 8B 83 E0 07 00 00     -  mov eax,[ebx+000007E0]
"GoodBoy.exe"+8B9A: 80 3C 42 17           -  cmp byte ptr [edx+eax*2],17
"GoodBoy.exe"+8B9E: 75 27                 -  jne GoodBoy.exe+8BC7
}

 

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

18 минут назад, kiwipapayamongoose сказал:

обычная игра вроде как

Это намек на то почему это в разделе Train Me если это ну ни как не Train Me а скорее вопросы по взлому а скорее даже запросы.

 

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

В 10.03.2018 в 04:25, ReWanet сказал:

это ну ни как не Train Me а скорее вопросы по взлому а скорее даже запросы

Нет, почему, защита довольно простая, может послужить как трейнми для  новичков. Пусть тут и будет.

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

  • 2 недели спустя...
57 минут назад, JIeXA сказал:

как в СЕ поставить бряк на МессаджБокс

 

Memory view -> View -> Enumirate Dll's and Symbols

 

UZJCujB47NU.jpg

 

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

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

Но раз было сказано без бряка на коробку сообщений, я вышел на проверку по инструкции значения очков, кажется 1-я инструкция была на доступ. Это мне напомнило способ проверки CRC хешей. Обычно же значение пишется, а после проверяется, а раз постоянно пишется, значит что-то его интересное использует.

 

dUNVO3zKi1w.jpg

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

  • 3 недели спустя...
×
×
  • Создать...

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

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