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

[Любая игра] Начинаю изучать скрипты


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

Начал вот недавно изучать скрипты, появился интерес так сказать (из воздуха). Хотелось бы (если ни кто не против) обсуждать в этой теме все возможные вопросы по всем возможным играм которые у меня могут возникнуть по поводу скриптов...
Начал с простого, просмотр видео и изучение некоторых тем (что-то начало получаться после просмотра этого видео > "Для Мирослава пояснение по уроку 3 Xipho"), попробовал на нескольких играх (простеньких и не очень, т.е. игра на статичных адресах и с указателями к примеру). Только вот не могу вспомнить как называется... если к примеру в 1 скрипт записать несколько ресурсов или опций и вывести их через флаги или как их там ещё называют, типа P->Step+2C или адрес Step.

Вот мой скрипт для примера

Спойлер

{ Game   : AlexGordon.exe
  Version: 
  Date   : 2018-05-25
  Author :
}
[ENABLE]
aobscanmodule(Stage,AlexGordon.exe,3B 4A 2C 0F 87 88 07 00 00)
alloc(newmem,$1000)
label(code)
label(return)
label(Step)
registersymbol(Step)
registersymbol(Stage)

 

newmem:
  mov [Step],edx

 

code:
  cmp ecx,[edx+2C]
  ja AlexGordon.exe+A8464
  jmp return

 

Step:
  dd 0

 

Stage:
  jmp newmem
  db 90 90 90 90


return:

 

[DISABLE]
Stage:
  db 3B 4A 2C 0F 87 88 07 00 00

 

unregistersymbol(Step)
unregistersymbol(Stage)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "AlexGordon.exe"+A7CD3

"AlexGordon.exe"+A7CA3: 75 05                 -  jne AlexGordon.exe+A7CAA
"AlexGordon.exe"+A7CA5: E8 92 BC 11 00        -  call AlexGordon.exe+1C393C
"AlexGordon.exe"+A7CAA: 8B 0D BC F8 62 00     -  mov ecx,[AlexGordon.exe+22F8BC]
"AlexGordon.exe"+A7CB0: 8B 15 C0 F8 62 00     -  mov edx,[AlexGordon.exe+22F8C0]
"AlexGordon.exe"+A7CB6: 3B 51 04              -  cmp edx,[ecx+04]
"AlexGordon.exe"+A7CB9: 75 05                 -  jne AlexGordon.exe+A7CC0
"AlexGordon.exe"+A7CBB: E8 7C BC 11 00        -  call AlexGordon.exe+1C393C
"AlexGordon.exe"+A7CC0: 8B 83 D4 14 00 00     -  mov eax,[ebx+000014D4]
"AlexGordon.exe"+A7CC6: 0F B6 88 C0 01 00 00  -  movzx ecx,byte ptr [eax+000001C0]
"AlexGordon.exe"+A7CCD: 8B 15 C0 F8 62 00     -  mov edx,[AlexGordon.exe+22F8C0]
// ---------- INJECTING HERE ----------
"AlexGordon.exe"+A7CD3: 3B 4A 2C              -  cmp ecx,[edx+2C]
"AlexGordon.exe"+A7CD6: 0F 87 88 07 00 00     -  ja AlexGordon.exe+A8464
// ---------- DONE INJECTING  ----------
"AlexGordon.exe"+A7CDC: 39 35 BC F8 62 00     -  cmp [AlexGordon.exe+22F8BC],esi
"AlexGordon.exe"+A7CE2: 75 05                 -  jne AlexGordon.exe+A7CE9
"AlexGordon.exe"+A7CE4: E8 53 BC 11 00        -  call AlexGordon.exe+1C393C
"AlexGordon.exe"+A7CE9: A1 C0 F8 62 00        -  mov eax,[AlexGordon.exe+22F8C0]
"AlexGordon.exe"+A7CEE: 8B 0D BC F8 62 00     -  mov ecx,[AlexGordon.exe+22F8BC]
"AlexGordon.exe"+A7CF4: 3B 41 04              -  cmp eax,[ecx+04]
"AlexGordon.exe"+A7CF7: 75 05                 -  jne AlexGordon.exe+A7CFE
"AlexGordon.exe"+A7CF9: E8 3E BC 11 00        -  call AlexGordon.exe+1C393C
"AlexGordon.exe"+A7CFE: 8B 93 D4 14 00 00     -  mov edx,[ebx+000014D4]
"AlexGordon.exe"+A7D04: 0F B6 82 C0 01 00 00  -  movzx eax,byte ptr [edx+000001C0]
}

Есть на карте Этапы, Уровни и те уровни на которых стоит алекс (после завершения уровня или при переходе на него). Я хочу (научиться соединять опции в 1 скрипте чтобы их можно было ещё менять) понять как их соединять воедино и с чем либо ещё...
Может кто подсказать, может в скрипте допущены ошибки или что ещё. Ах да, при вкл. скрипта адрес находится после того как я наведу на него (на уровень) стрелочку через 0.5 секунды. Как сделать чтобы адрес появлялся автоматом при вкл, без наведения или чего-либо ещё?

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

8 часов назад, DieVis сказал:

Ах да, при вкл. скрипта адрес находится после того как я наведу на него (на уровень) стрелочку через 0.5 секунды. Как сделать чтобы адрес появлялся автоматом при вкл, без наведения или чего-либо ещё?

Это не нормальное поведение. Возможно, просто совпадение. На самом деле адрес должен появиться тогда, когда его запишет игровая инструкция.

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

12 часов назад, DieVis сказал:

вот не могу вспомнить как называется

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

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

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

[edx <----------------- вот на это бряк поставить можно,я имею введу на адрес.

И гляди выпадет то, что работает по шибче.. А от него и выведешь потом нужное значение.

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

11 часов назад, Xipho сказал:

Это не нормальное поведение.

Поведение нормальное. Просто (на 100 % уверен) ТС выбрал инструкцию которая срабатывает именно при наводке стрелочки.

19 часов назад, DieVis сказал:

Как сделать чтобы адрес появлялся автоматом при вкл, без наведения или чего-либо ещё?

Выбрать другую часто читающую инструкцию из инструкций, работающих с твоим рабочим адресом.

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

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

Выбрать другую часто читающую инструкцию

В общем, я на разных инструкциях делал, но нормально показывает только на этой по которой скрипт делал. В остальных инструкциях левый адрес попадался со значением 3.135670857567-37 к примеру. Их тоже стоит отсеивать как LIRW написал или не имеет смысла?
К примеру делал скрипт на эту же игру, но на жизни и там вроде всё норм отображается\изменяется,  по сути я давно на всех адресах указатели нашёл, поэтому проще смотреть изменения после активации скрипта, на жизнях указателей 7-8, а на этих этапах всего 1.
Вспомнилось вот, фильтры называются или как-то иначе, когда делаешь скрипт на 1 адрес, а вываливается другой который на той же инструкции, допустим на ней 2-3 адреса?

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

5 минут назад, DieVis сказал:

В остальных инструкциях левый адрес попадался со значением 3.135670857567-37 к примеру.

Как я часто говорил в своих уроках: "Основные инструкции для читов это MOV и CMP". 90 % скриптов работают на этих двух опкодах.

MOV. чтобы записать нужное значение в нужный адрес, а CMP. чтобы отфильтровать этот нужный адрес от других.

 

Конечно же фильтр!!!!!

 

10 минут назад, DieVis сказал:

В общем

ЗЫ: Если есть микрофон и СКАЙП, можем вместе посмотреть, как я обычно делал с другими пользователями. Так и более нагляднее и тебе и мЭнЭ (?) получиться.

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

  • 4 недели спустя...
В 27.05.2018 в 00:08, Garik66 сказал:

ЗЫ:

Было бы здорово, но я из дома месяцев 8 не выбирался и не общался ни с кем... Так что никак.-_-

У меня вот какой вопрос: есть игра торчлайт 2 (в стиме её прохожу), 1 чел {dec1337} сделал таблицу не на скриптах а через указатели. 1 статический адрес который не меняется при перезапуске игры (остальные что находил менялись), много чего ещё нашёл благодаря его таблицы. Есть ли способ, как либо автоматом найти все статические адреса в игре и проверить их при перезапуске игры, меняются что-то или нет? Либо просто чтоб все адреса статические находились...

Я просто уже задолбался с ручным отсеиванием (на питомца нр\мр найти работающий адрес не получается).

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

В 26.05.2018 в 21:59, DieVis сказал:

В остальных инструкциях левый адрес попадался со значением 3.135670857567-37

Так переведи его в целое и всего делов. Я уж думал до такого каждый догадается.  

У каждого человека, свой подход к этому делу.  Я объясню почему ищу не известное с точкой, даже если это патроны - которые в большинстве случаев,а это 95% в целом 4 байта. Когда ищешь с точкой, во первых найдешь всё в любом типе одним отсевом, еже ли будешь искать 4 байта целое. В общем данный подход, очень сокращает время на поиск адреса. Я лично ищу всегда так... 

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

5 часов назад, LIRW сказал:

Я объясню почему ищу не известное с точкой, даже если это патроны - которые в большинстве случаев,а это 95% в целом 4 байта. Когда ищешь с точкой, во первых найдешь всё в любом типе одним отсевом, еже ли будешь искать 4 байта целое.

Я тебе каждый раз пишу, что разницы никакой - при поиске неизвестное->изменилось/неизменилось. 

Ищи хоть 4 байта (и переводи адреса во float) или наоборот ищи float (и потом переводи в 4 байта). ?

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

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

Я тебе каждый раз пишу, что разницы никакой - при поиске неизвестное->изменилось/неизменилось. 

Разница тут как раз (КАКОЙ) ?  У меня адресов с точки выходит меньше при отсеве. Вы там ищите как хотите, а я буду по своему ? А изменилось или не изменилось - мне такая игра попадается раз в пол года.. Сразу за один заход ищу и точку и целое. 

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

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

Разница тут как раз (КАКОЙ) ?  У меня адресов с точки выходит меньше при отсеве. Вы там ищите как хотите, а я буду по своему ? А изменилось или не изменилось - мне такая игра попадается раз в пол года.. Сразу за один заход ищу и точку и целое. 

Жень, 4 байта или float это только тип отображения. а значение как одно было так и осталось (dword) ?

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

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

Жень, 4 байта или float это только тип отображения.

Прям Игорь удивил :) Да и так написал, как буд то я первый день тут. Я выше описал почему я ищу именно точку..  Ищу я не первый день, а в день по 155 раз и самый подходящий способ, для себя выбрал.. А вы ищите как хотите. Я лишь описал свой подход к делу, как мне удобней..  Приглянулся мне этот способ из за быстроты. Просто перепробывал много разных методов и вот этот самый подходящий для меня.  Потому что адрес вижу - хоть он и в целом, а я его уже в варианте с точкой вижу.. Они обычно идут 1.xxxx -57 как то так..  

Над соревнования по поиску проводить... Чей подход быстрее работает :lol:  Хотя мне кажется это  зависит больше от человека.

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

  • 6 месяцев спустя...

Не знаю вот куда выложить, на PG хотел, но там вдруг всё по игре исчезло... Если никто не против, приложу сюда (так как рабочей таблицей это назвать сложно).

В общем есть игра (я о ней в запросах писал), там тоже прикольный анти-чит на подобии Unepic, в общем насмотревшись Garik66 (про откл. анти-чита в Unepic'е).

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

 

Если вдруг кому будет интересно, закончить анти-чит + состряпать что ещё или запилив трейнер (без разницы).

Ссылка на таблицу: https://mega.nz/#F!apQn0a5Z!ZXh7MCWpYgLa57q58_X1eA Там же игра+русик, в "О таблице" немного информации о работе\поиске. И для проверки анти-чита и прочих функций, я добавил немного информации, что как находится и под каким значением лежит...

 

P.S. Заранее извиняюсь если что не так :). Всех с Новым Годом!!!

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

  • 1 год спустя...

Привет всем обитателям. Может кто подсказать как в игре найти открытие всех абилок, в данной игре мутаций. (Так как на некоторых уровнях они все закрыты). Не получается пройти игру дальше.
Игра Zombie Night Terror [Версия Steam]. Есть табличка от [Shinkansen], но там ни черта не понятно что к чему прикручено.

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

  • 2 месяца спустя...

Привет всем. Можете подсказать, пытаюсь в игре отфильтровать здоровье 4-ых персов (которыми управляю), от нейтральных персов (которых можно найти) и врагов. Пытался из видео инфу подчерпнуть, но то ли я (уже) туплю, то ли в видео не то рассказывают\показывают. Вот впрочем то что у меня получилось:

Спойлер

{ Game   : Survivors.exe
  Version: v1.2.2
  Date   : 2020-10-31
}
[ENABLE]
aobscan(HP_Player,8B 4A 24 83 F9 00)
alloc(newmem,$1000)
label(code)
label(return)

 

newmem:
  cmp dword ptr [edx+C0],0 //сравниваю значение 0=управляемые персы+нейтралы, 2=враги
 //cmp dword ptr [edx+C4],0 //типа 2 адреса С0 и С4 (есть ещё 1 на В8, но там враги и нейтралы умирают. Там сравнение 0=своя 4-рка и 1=враги\нейтралы)
  jne code
  mov dword ptr [edx+24],#200 //значение 200 макс. здоровья

 

code:
  mov ecx,[edx+24]
  cmp ecx,00
  jmp return

 

HP_Player:
  jmp newmem
  nop
return:
registersymbol(HP_Player)

 

[DISABLE]
HP_Player:
  db 8B 4A 24 83 F9 00
unregistersymbol(HP_Player)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 0376AF34

0376AF18: 89 45 BC                       -  mov [ebp-44],eax
0376AF1B: 8B 41 04                       -  mov eax,[ecx+04]
0376AF1E: 83 EC 04                       -  sub esp,04
0376AF21: 52                             -  push edx
0376AF22: 6A 01                          -  push 01
0376AF24: 51                             -  push ecx
0376AF25: FF D0                          -  call eax
0376AF27: 83 C4 10                       -  add esp,10
0376AF2A: B8 04 00 00 00                 -  mov eax,00000004
0376AF2F: E9 E9 00 00 00                 -  jmp 0376B01D
// ---------- INJECTING HERE ----------
0376AF34: 8B 4A 24                       -  mov ecx,[edx+24]
0376AF37: 83 F9 00                       -  cmp ecx,00
// ---------- DONE INJECTING  ----------
0376AF3A: 0F 9E DB                       -  setle bl
0376AF3D: 0F B6 DB                       -  movzx ebx,bl
0376AF40: 89 5D E8                       -  mov [ebp-18],ebx
0376AF43: 8B 5D CC                       -  mov ebx,[ebp-34]
0376AF46: 83 F9 00                       -  cmp ecx,00
0376AF49: 7F 11                          -  jg 0376AF5C
0376AF4B: 8B 8A 94 00 00 00              -  mov ecx,[edx+00000094]
0376AF51: 85 C9                          -  test ecx,ecx
0376AF53: 0F 94 C9                       -  sete cl
0376AF56: 0F B6 C9                       -  movzx ecx,cl
}

Может я чего не дописал или лишнего добавил?

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

14 часов назад, DieVis сказал:

Может я чего не дописал или лишнего добавил?

А почему вопрос возник - скрипт не работает как надо?
А так визуально ошибок в скрипте нет.

 

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

  • 1 месяц спустя...

Здравствуйте. И с наступающим всех!
Хотел узнать как называется эм типа, (mov, cmp, jmp, je и прочие им подобные), впервые за 5 лет стало интересно что они означают... Где есть на сайте темы и как они называются, не знаю как искать...?

И вот что хотел узнать можно ли выкладывать ваши же скрипты, только обновлённые под последнюю версию игры? Я так делаю на Fearless, просто обновляю данные и пишу в соответствующую тему из которой брал таблицы\скрипты...
Вот хотел сначала подучить (то о чём спросил выше), обновлять скрипты немного проще как по мне, нежели делать самому.
Прошу прощения если что не так.

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

48 минут назад, LIRW сказал:

Чпок 2

А чтобы понять что значат подобные не понятные слова, нужно изучать asm? Или есть что-то по проще?

INC

Инкремент

DEC

Декремент

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

Я так понимаю нужно что-то знать из программирования и математики прежде чем переходить к изучению асм?

Просто исходя из некоторых "учебников" в инете.

"...Я не знаком с программированием — не знаю какой-нибудь из языков высокого уровня (С, PHP, Java, JavaScript и тому подобные), мне не доводилось в них работать с шестнадцатеричными числами, плюс я не умею пользоваться командной строкой под Windows, Linux или macOS...."
 

Или стоит прочитать все возможные книги про асм, типа тех что показаны здесь? v
P.S.Просто интересно сколько времени это займёт ?

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

В 30.12.2020 в 18:49, DieVis сказал:

А чтобы понять что значат подобные не понятные слова, нужно изучать asm? Или есть что-то по проще?

INC

Инкремент

DEC

Декремент

Инкремент -- прибавление на единицу
Декремент -- уменьшение на единицу.

А зачем, собственно, тебе asm учить? Ты на нем что-то серьезное писать собрался? Для того, что бы писать скрипты в CE достаточно несколько опкодов знать. Ну и принцип работы стека. Всё. Этого хватит с головой.

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

В 30.12.2020 в 18:10, DieVis сказал:

Просто исходя из некоторых "учебников" в инете.

"...Я не знаком с программированием — не знаю какой-нибудь из языков высокого уровня (С, PHP, Java, JavaScript и тому подобные), мне не доводилось в них работать с шестнадцатеричными числами, плюс я не умею пользоваться командной строкой под Windows, Linux или macOS...."

 

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

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

В 30.12.2020 в 18:10, DieVis сказал:

Просто интересно сколько времени это займёт ?

Ну тут как говорится :) Нужно решать проблемы по мере их поступления, а знать сразу всё - это наверное не возможно.  (Если ты конечно не мастер спорта) 

Вот в СЕ тебе надо основное " push pop mov add sub movss addss subss " и мне кажется этого достаточно, что бы удовлетворить свои потребности :lol: Ну а что то путевого на СЕ все равно не сделаешь, либо будет не логично это реализовывать в СЕ.  А в обще, если подумать так, то одной командой "mov" можно реализовать почти все в СЕ :) конечно не все - это я уже преувеличил, но 70-80% точно.  Тут мне кажется главное - это понять, как всё это работает и всё, а далее уже мысленно будешь знать, какую команду использовать в той или иной ситуации. 

Ps:

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

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

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

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

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