Перейти к содержанию
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, ОГРОМНОЕ СПАСИБО!!! Буду смотреть может и что получится... . :)

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


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

Добрый вечер!!! Посмотрел я 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 на уникальность сигнатуру, если не уникальная - удлиняешь дальше.

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

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

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


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

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

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


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

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

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

 

400000.jpg

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


Ссылка на сообщение
Поделиться на другие сайты
В 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.

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


Ссылка на сообщение
Поделиться на другие сайты
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

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


Ссылка на сообщение
Поделиться на другие сайты
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 и н=02 даже на вашей картинке тоже.

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


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

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

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

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

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

 

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


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Pitronic сказал:

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Garik66 сказал:

от 00 до 05

Всй теперь разобрался . тебе и  youneuoy по плюсику.

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


Ссылка на сообщение
Поделиться на другие сайты
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

 

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


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

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

Женя это вопрос был к конкректному человеку

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


Ссылка на сообщение
Поделиться на другие сайты
В 28.10.2020 в 23:14, Garik66 сказал:

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

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

Изменено пользователем Pitronic
исправление грам ошибок

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


Ссылка на сообщение
Поделиться на другие сайты
В 29.10.2020 в 15:20, LIRW сказал:

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, Pitronic сказал:

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

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

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

image.thumb.png.4e0ab662bc91e5c367bbbf9e663284ce.png

 

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


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, Garik66 сказал:

форумный движок

Понятно

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

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

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

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