Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Смещение в Cheat Engine

Ярик Печ Ученик (176), на голосовании 2 недели назад
Нашёл значение указывающие на кол-во газировки в игре (игра санс оф зе форест) сохранил таблицу. После перезапуска игры значения "теряются", как я понял у них динамический адрес.
Вопрос: как нати смещение или что то тому подобное что бы каждый раз не искать новое значение
Голосование за лучший ответ
a1987zz Мудрец (13277) 1 месяц назад
гугли сиги, они же сигнатуры в Cheat Engine, не знаю, как на Cheat Engine их писать, их на С++ в основном пишут в основном.
Ярик ПечУченик (176) 1 месяц назад
А базовый адрес как найти
a1987zz Мудрец (13277) Ярик Печ, где? в С++ все просто находится
Ярик ПечУченик (176) 1 месяц назад
Я в чит энжит
a1987zz Мудрец (13277) Ярик Печ, ну да, сам уже знаешь
Ярик ПечУченик (176) 1 месяц назад
Ты хочешь сказать что можно найти скриптом?
a1987zzМудрец (13277) 1 месяц назад
точно можно найти какую-нибудь информацию по этому.
Ярик ПечУченик (176) 1 месяц назад
Я уже в поиске
a1987zz Мудрец (13277) Ярик Печ, если на lua скрипт, то вроде как-то так примерно: https://otvet.mail.ru/question/234434255
Ярик ПечУченик (176) 1 месяц назад
Перефразирую вопрос: как найти смещение в инете толковой инфы нет
a1987zz Мудрец (13277) какие смещения? те смещения которые тебе надо, я так понял на указатели, они тоже сбрасываются, я же скинул пример, lua функция AOBScan нужна, я просто не писал сигнатуры на чит энджен, там разбиратся надо, может кто и ответит на вопрос еще о смещениях
a1987zzМудрец (13277) 1 месяц назад
хотя х знает что надо, может игра не обновляется, это другой вопрос уже, я просто сразу сиги пишу самое надежно.
a1987zzМудрец (13277) 1 месяц назад
в машинном коде программы нет такого понятия прямого как функция или переменная, всё там хранится за счёт значений.
так называемые функции имеют просто инструкции в виде циферок (опкоды называются), а переменные это просто значения, у них нет конкретного названия в программе, они лишь имеют адрес (по которому и хранится значение)

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

оффсет вполне годится для нахождения переменных или функций, но учти, что если имейдж обновится, то за счёт рекомпила там уже не будут прежние оффсеты и тебе придётся по новой их находить.
чтобы люди не мучались с нахождением функций через оффсеты - придумали сигнатуры
Ярик ПечУченик (176) 1 месяц назад
Есть серьёзная проблема игра (сонс оф зе форест) использует ASLR
Ярик ПечУченик (176) 1 месяц назад
Таким способом не получится
a1987zz Мудрец (13277) я хз, что это такое, но много старых используют ASLR, не думаю, что это значит, что по оффсетам или сигнатурам нельзя найти значения.
Ярик ПечУченик (176) 1 месяц назад
Это ASLR - (Address Space Layout Randomization) — это технология защиты компьютерной системы от атак. Она заключается в изменении расположения в памяти исполняемого кода, данных и стека процесса. То есть адрес будет случайным
Ярик ПечУченик (176) 1 месяц назад
Кстати это игра не старая, а относительно новая
Ярик ПечУченик (176) 1 месяц назад
Короче я пытаюсь сделать для этой игре трейнер, а для этого мне нужно найти какой-то указатель, пытался через карту указателей, делал карту в одной сессии и в другой потом "найти указатель" и ничего, поскоку я следовал гайду там нужно было потом найти то что это записывает это значение затем какими цифрами заканчивается инструкция
Ярик ПечУченик (176) 1 месяц назад
Ну имеется СИГМАтурка и что мне с ней делать
a1987zz Мудрец (13277) я не пишу в чит энджин скрипты
a1987zzМудрец (13277) 1 месяц назад
поэтому скинуть готовый пример для этой игры вряд-ли смогу
Ярик ПечУченик (176) 1 месяц назад
Да не обязательно скриптом просто скажи как мне сделать так что б адрес в таблице был всегда актуальным зная сигнатуру
a1987zz Мудрец (13277) так говорю, не пишу скрипты, не полезу я в чит энджин, пишу сиги на типо С++ только.
Ярик ПечУченик (176) 1 месяц назад
И твой скрипт гарант надёт смещение?
a1987zzМудрец (13277) 1 месяц назад
для той игры что мне надо найдет.
Ярик ПечУченик (176) 1 месяц назад
Ну давайте
a1987zz Мудрец (13277) В общем, не понимаю, зачем мне оно надо, ну ладно, вот функция, находит второй результат этот сканирования, там не так работает как в С++ все.
 function FindAOBEntryX(AOBToScan, entrynr) 
  local result=nil 
  local results=AOBScan(AOBToScan) 
  if results.Count>entrynr then 
    result=results[entrynr] 
  end 
 
  results.destroy(); 
 
  return result 
end 
 
print(FindAOBEntryX("20 30",2)) 
a1987zzМудрец (13277) 1 месяц назад
да что ж такое, говорю не полезу туда, тут задай вопрос: yougame.biz
Похожие вопросы