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

Что за "движок" игры и как с этим бороться...?


SerVick

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

Попробовал сделать так как ты пишешь, Патроны стало значение 0, а запас патрон с добавленными байтами в обще не включается. Может конечно я что не так сделал. Вот что я сделал в запасе патрон. 

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

aobscanmodule(AAM,G_Indy.sgl,8B 86 XX XX 00 00 8B 8E 8B 8E E4 0F) /
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  mov [esi+00000FE0],#320
code:
  mov eax,[esi+00000FE0]
  jmp return

AAM:
  jmp newmem
  nop
return:
registersymbol(AAM)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
AAM:
  db 8B 86 E0 0F 00 00

unregistersymbol(AAM)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "G_Indy.sgl"+5A477

"G_Indy.sgl"+5A459: 84 C0                 -  test al,al
"G_Indy.sgl"+5A45B: 74 1A                 -  je G_Indy.sgl+5A477
"G_Indy.sgl"+5A45D: 8B 86 E8 0F 00 00     -  mov eax,[esi+00000FE8]
"G_Indy.sgl"+5A463: 8B 8E E4 0F 00 00     -  mov ecx,[esi+00000FE4]
"G_Indy.sgl"+5A469: 8B 54 24 08           -  mov edx,[esp+08]
"G_Indy.sgl"+5A46D: 03 C8                 -  add ecx,eax
"G_Indy.sgl"+5A46F: B0 01                 -  mov al,01
"G_Indy.sgl"+5A471: 5E                    -  pop esi
"G_Indy.sgl"+5A472: 89 0A                 -  mov [edx],ecx
"G_Indy.sgl"+5A474: C2 04 00              -  ret 0004
// ---------- INJECTING HERE ----------
"G_Indy.sgl"+5A477: 8B 86 E0 0F 00 00     -  mov eax,[esi+00000FE0]
// ---------- DONE INJECTING  ----------
"G_Indy.sgl"+5A47D: 8B 8E E4 0F 00 00     -  mov ecx,[esi+00000FE4]
"G_Indy.sgl"+5A483: 8B 54 24 08           -  mov edx,[esp+08]
"G_Indy.sgl"+5A487: 03 C8                 -  add ecx,eax
"G_Indy.sgl"+5A489: B0 01                 -  mov al,01
"G_Indy.sgl"+5A48B: 5E                    -  pop esi
"G_Indy.sgl"+5A48C: 89 0A                 -  mov [edx],ecx
"G_Indy.sgl"+5A48E: C2 04 00              -  ret 0004
"G_Indy.sgl"+5A491: 90                    -  nop 

 

В итоге он в таблице не активируется. Или там вот если смотреть  mov [esi+00000FE0] а тут уже в обратном порядке G_Indy.sgl"+5A477: 8B 86 E0 0F 00 00  может и те что ниже по коду тоже вписывать в обратном порядке?!:) Ладно завтра ещё попробую. А игру заново прошёл, всё -таки умели раньше игры делать. С большим удовольствием пробежал по игре за ново. Конечно без читов.проходил. Читы  -это так для развития кругозора..:).. .

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

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

aliast, спасибо за совет, Попробую сейчас, здесь хотя -бы для меня ясно, что делать... .

Я тоже давал тебе тот же совет - см п.2.

49 минуты назад, SerVick сказал:

Попробовал сделать так как ты пишешь,

Делаешь не правильно.

 

PS: Вот пример использования этого способа.

Как видишь скрипты я выложил в январе 2015 г. версия мода 1.197 Недавно дописывал некоторые скрипты версия была 1.209. Сечас версия Мода 1.216 апрель 2017. И все скрипты работают.

Так как на Моде Плагин АА-Маркер не работал - делал все сигны вручную. 

А в этом сообщении  ещё и пример как исправить, если не работает сигна. 

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

Добрый вечер!!! Посмотрел я Garik66 все эти дела по ссылкам и понял,что ничего не понял. Это что вот из такой к примеру строчки (Heal,G_Indy.sgl,D5 85 C0 74 1B D9 80 84 00 00 00) сделать подобное этому: [ENABLE]aobscan(address30, 89 XX XX XX A1 XX XX XX XX 89 XX XX XX A1 XX XX XX XX 03 XX 8A XX XX)aobscan(address31, 89 XX XX XX A1 XX XX XX XX 03 XX 8A XX XX FE XX)aobscan(address32, 01 XX XX A1 XX XX XX XX 03 XX 8A XX 8B XX XX XX XX XX 01 XX XX)aobscan(address33, 01 XX XX 8B XX XX XX XX XX FE XX 8B XX XX XX 8D XX XX 6B XX XX)aobscan(address34, 89 XX XX A1 XX XX XX XX 03 XX FE XX 8B XX XX XX XX XX 89 XX XX)aobscan(address35, 89 XX XX 8B XX XX XX XX XX 8B XX XX XX 8D XX XX 6B XX XX 8B XX. Для меня такое пока тёмный лес, я просто "заблудился" сразу и потерялся в строчках. Тем -более не понятно что -куда и откуда?!

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

15 минуту назад, SerVick сказал:

Тем -более не понятно что -куда и откуда?!

Нужно брать только байты опкодов (типа MOV, ADD и т.д.) все остальные байты заменять XX. И проверять после замены XX на уникальность сигнатуру, если не уникальная - удлиняешь дальше.

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

Вот из-за этого та моя старая табличка оказалась такой долго живущей. 

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

Основа понятно, но с моими знаниями рановато это делать. Вернее надо читать по этой теме. В общем надо ещё знаний как проверять уникальность. и т.д. . Я -же ещё дилетант во многих вопросах. Тут правда на сайт не плохой перенаправили (asmworld). Думаю надо там сначала подучится, Что бы не выглядеть таким идиотом на вашем фоне... .:D

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

Я щас посмотрел игру - там как буд то игра чистит за собой всё, даже не надо переходить на другой уровень, а просто помер, загрузился и игра всё затрет и выделит по новой код. Затирает всё вместе с хуками - одни метки остаются, которые СЕ уже не снимет - так как видать не соображает что происходит :)  

К примеру выглядит это вот так. Пробный скрипт. 

 

400000.jpg

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

  • 3 года спустя...
В 24.04.2017 в 19:03, Garik66 сказал:

Нужно брать только байты опкодов

а как распознать байты опкодов? Я обычно плагин AA использую,  но было бы круто самому сигнатуры находить этим способом.

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

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

а как распознать байты опкодов?

Вот это:

В 24.04.2017 в 19:03, Garik66 сказал:

Нужно брать только байты опкодов (типа MOV, ADD и т.д.) все остальные байты заменять XX

значит, что нужно заменять всё, что не опкоды на XX. Опкоды это всё, что ADD,MOV,PUSH и т.д. Не опкоды это всё, что ecx, [0x123], 2 и т.д(это операндами называется).  Байты опкодов это обычно один или два первых числа каждой строчки в дизассемблере CE. Пример - mov [esi+00000FE0], упомянутый выше в теме. Здесь опкод - mov,  это 8B. Посмотреть список опкодов можно, например, здесь(одна из первых ссылок в гугле): http://ref.x86asm.net/coder32.html#x0FE0.

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

26 минут назад, youneuoy сказал:

значит, что нужно заменять всё, что не опкоды

умный да? тогда скажи что здесь не опкоды  8B 89 70 0D 00 00 56 8B 75 08 56 E8 5D EB C5 FF 8B C6 5E 5D C2 08 00 CC CC CC CC CC CC 6A чтобы менять не опкоды на иксы нужно знать в каких байтах опкоды! В моём примере только видно что 8B первый байт примем что это опкод, забей остальные где не опкоды. если все иксами перечеркнёшь будет у тебя миллион результатов, а чтоб оставить опкоды нужно видеть в байтах их. Об этом и был вопрос.

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

33 минуты назад, Pitronic сказал:

огда скажи что здесь не опкоды

Перейди в отладчик и там смотри сам - нам нужно это сделать за тебя? 

 

47 минут назад, youneuoy сказал:

Байты опкодов это обычно один или два первых числа каждой строчки в дизассемблере CE

 

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

7 минут назад, Garik66 сказал:

это обычно один или два первых числа

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

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

1 минуту назад, Pitronic сказал:

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

тебе же дали ссылку, там видно как выглядят опкоды в байтах: 

image.png

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

45 минут назад, Pitronic сказал:

умный да?

?

 

45 минут назад, Pitronic сказал:

тогда скажи что здесь не опкоды 

на: 8b XX XX XX XX XX 56 8b XX XX 56 e8 XX XX XX XX 8b XX 5e 5d c2 XX XX CC CC CC CC CC CC XX
 

 

45 минут назад, Pitronic сказал:

если все иксами перечеркнёшь будет у тебя миллион результатов, а чтоб оставить опкоды нужно видеть в байтах их.

?

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

от 00 до 05 это опкод add и т.д.

4 минуты назад, Pitronic сказал:

я по той ссылке не понял, по чему то ад и двумя нолями и о1 и н=02 даже на вашей картинке тоже.

хотя я просто тупо оставлял в строке первый (первые) известный байт и все, когда делал вручную

 

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

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

я по той ссылке не понял, по чему то ад и двумя нолями и о1 и н=02 даже на вашей картинке тоже.

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

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

16 часов назад, Pitronic сказал:

тогда скажи что здесь не опкоды  8B 89 70 0D 00 00 56 8B 75 08 56 E8 5D EB C5 FF 8B C6 5E 5D C2 08 00 CC CC CC CC CC CC 6A

ща я по памяти скажу что тут... 

mov
push
mov
push
call
mov
pop
pop
ret
int 3
push xx чего то... в 2 байта

вот так бы сделал плагин.

8B * * * * * * 8B * * * E8 * * * * 8B * * * C2 * * * * * * * * 6A

 

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

В 28.10.2020 в 23:14, Garik66 сказал:

нам нужно это сделать за тебя

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

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

26 минут назад, Pitronic сказал:

А для чего E8 и C2 ты чёрным прописал? Что это значит?

Это не Женька, это форумный движок сделал.

8B * * * * * * 8B * * * E8 * * * * 8B * * * C2 * * * * * * * * 6A
Спойлер

image.thumb.png.4e0ab662bc91e5c367bbbf9e663284ce.png

 

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

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

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

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