Опкоды из Intel-ловской документации
Instruction_Set_Reference.pdf
64-ia-32-architectures-software-developer-vol-2a-manual.pdf
64-ia-32-architectures-software-developer-vol-2b-manual.pdf
Опкоды из Intel-ловской документации
Instruction_Set_Reference.pdf
64-ia-32-architectures-software-developer-vol-2a-manual.pdf
64-ia-32-architectures-software-developer-vol-2b-manual.pdf
Auto Assembler
Там же вставки C-языка
{$CCODE playerbase=RCX newhealth=RBX}
int isplayer=*(*int)(playerbase+0xb8);
if (isplayer)
newhealth=100000;
else
newhealth=0;
{$ASM}
Руководство по C языку (https://www.geeksforgeeks.org/c-programming-language/)
Там же вставки Lua языка
{$LUACODE playerbase=RCX newhealth=RBX}
if readInteger(playerbase+0xb8)==1 then
newhealth=100000
else
newhealth=0
end
{$ASM}
Руководство по Lua (https://www.lua.org/manual/5.4/)
Lua классы в CE (https://wiki.cheatengine.org/index.php?title=Cheat_Engine:Lua)
Wiki:
MD5_CHEKING
вручную\-- Функция для ручного вывода md5 ранее подключенного процесcа. Для установки MD5_CHEKING
PrintMd5CurrentProcess()
function onOpenProcess(processid)
reinitializeSymbolhandler()
local md5Process = GetMd5Process(processid)
PrintMd5Process(process, md5Process)
local isSupportedVersion = CheckingMd5CurrentProcess(md5Process)
local lineResult = isSupportedVersion and 'Is supported version.' or 'Is not supported version.'
if not isSupportedVersion then
speakEnglish(lineResult, false)
messageDialog('Error', lineResult, mtError, mbClose)
end
end
ce_md5.lua
md5 - это алгоритм некоторой суммы байтов exe-шника. Позволит точно идентифицировать exe-шник, для которого будет сделана .CT таблица с указателями или сигнатурами.
В случае несоответствия будет показан диалог сообщения и звуковое оповещение проговаривания текста ошибки.
Будет необходимо проверять md5, чтобы смещения у структур точно не поменялись.
Возникают вопросы "с чего начать?", "в каком направлении следовать?", "каких целей и результатов добиться?". Каждый выбирает, что ему ближе. Как я вижу есть несколько направлений:
Цель - ознакомление с gamehacking, чтобы понять интересно это или нет и сразу вторая цель - определить способ мотивировать себя в изучении программирования. Ведь gamehacking - это самый интересный способ начать программировать от ручных операций до автоматизации. Каждый раз можно вспоминать эти цели, чтобы понять добились ли мы поставленных целей и нужно ли начать заново с новой игрой или начать заново чтобы улучшить предыдущий результат, например, через новые приемы или создавая новые типы читов. Вновь и вновь можно что-то новое и интересное реализовать.
Я разделил путь на два пункта: ознакомление и продолжение.
В принципе для ознакомления с gamehacking заморозки значений по указателям и создания .CT таблиц в CE будет достаточно. Стоит не забывать указывать версию игры для, которой .CT таблица работает.
Рано или поздно будет складываться общая картина. Вероятно, постепенно придем к тому, что сможем понимать и менять любой игровой функционал от мелких изменений до очень сложных модов и патчей.
Что же мы хотим? Получить мотивацию, опыт? Я бы предложил получать и то и другое. В качестве опыта - выбирать направление и инструментарий самому. Например, мне было бы интересно работать с отладкой, графами, структурами, CT-таблицами, базами данных, встроенной консолью для команд, а также решением задач с нейронными сетями с PyTorch ( классификации, предсказания, выбора лучших решений, обучения и прочего). Фактически игровой процесс - набор новых правил и целей. Единственное не потерять кучу времени впустую, всегда нужно искать пользу. Хотя бы в мотивации, изучении технологий, которые можно применить с пользой.
Предлагаю ознакомиться с существующими правилами форума. Правила могут меняться (в этой же теме).
Вы соглашаетесь не публиковать оскорбительные, непристойные, вульгарные, клеветнические, ненавистнические, угрожающие или любые другие материалы, которые могут нарушать какие-либо применимые законы. Это может привести к тому, что вы будете заблокированы (и ваш поставщик услуг будет проинформирован). IP-адреса всех сообщений записываются для обеспечения соблюдения этих условий.
Вы соглашаетесь с тем, что администратор и модераторы этого форума имеют право удалять, редактировать, перемещать или закрывать любую тему в любое время по своему усмотрению. Как пользователь, вы соглашаетесь с тем, что любая информация, которую вы ввели выше, будет храниться в базе данных и будет доступна поисковым службам в Интернете в открытом доступе. Хотя на форуме возможны скрытые темы для определенных групп пользователей.
Система форума использует файлы cookie для хранения информации на вашем локальном компьютере. Файлы cookie служат для улучшения просмотра. Адрес электронной почты скрыт, используется для подтверждения ваших регистрационных данных и пароля (и для отправки новых паролей, если вы забыли свой текущий), а также для новостной рассылки. На форуме работает система Google аналитики. Аналитика используется для улучшения индексации и качества предоставляемой информации, а именно создания лучших тегов и для установки приоритетов наиболее интересным темам.
Удаление учетной записи не приведет к автоматическому удалению ваших сообщений, а только вашего доступа к ним.
Нажимая «Зарегистрироваться» вы соглашаетесь соблюдать эти условия.
Рекомендуется :
Todo: разместить в пользовательском соглашении
По плану перенести свои старые плагины CE с ссылками на репозитории. В том числе три преспектинвых плагина по большому брейкпоинту, дизассемблированию, и трейслогу с маркерами.
Много планов по развитию форума. По различным фишкам и приемам.
Попробуйте сами себя добавить в группы.
Можно написать здесь для создания новой группы
Можно сравнить два проекта lazarus новый и старый через программу контроля версий. Их много. Затем изменения перенести в новые исходники по тому же принципу
Ты можешь через CE
Есть открытые SDK игровых движков вот с ними делать dll попроще. Движки, например, UnreaEngine, CryEngine, Unity и другие. Остальные движки, закрытые - там api нужно описывать(восстанавливать) вручную через IDA. Это будет интересно. DLL ки удобно позволят рулить всей иерархие инстансов в runtime. Хотя это можно в теории и через lua делать...
Посмотрим. Как дела разгружу. Очень много дел. Переезд, ремонт, закупки... Пока очень мало времени. Может чат сделаем в бущем на телеграмме или дискорде
Да, просто давно делает большие таблицы на fearlessrevolution.com и cheatengine.org.
Входит в группу Talents. Всех, кто входит в Talents можно каждый пост читать и узнать, что-то интересное. Они делятся своим опытом, исходниками, знаниями.
Конечно, CE дело в целом не ограничивается. Есть другие программы(reclass, компиляторы dll, инжекторы dll...). Есть другие подходы типа восстановления части исходников, создания описания к API, создании модификаций(модов). Но CE, скорее всего, попроще и это влияет на численность CE сообщества. На CE можно сделать быстрее большие ct таблицы. Ct файлы в виде xml разметки компактны, ими можно делиться, добавлять совместно новые опции.
В данном случае она для тестов. Для отключения и включения. Если не нужна, то можно и удалить
Я буду пока редко отвечать в течении недель двух-трех. Дел много.
Пользователь @Pitronic написал в Защита Трейнера:
Готово. Зацени трейнер с защитой от vlad2 по десяти бальной шкале.
tutorial-i386_test.rar
Ты можешь сам свою работу по 10 бальной шкале оценить, взяв другой трейнер. Я не знаю как оценивать.
На virus total куча срабатываний по пончтнвм причинам. Я бы не стал запускать без виртуалки, хотя и на ней тоже может бвть фортель. Сам можешь не знать, что там.
Незашифрованная таблица CT, на мой взгляд предпочтмтельнее для обучения программированию или привлечения к программипованию. Вот пример простенький и без щащиты
Этой файл открывается cheat engine и обычно он не защифрован и текстовый. Его можно открыть cheat engine вручную или программно. Если CE закрывается в диспечере задач, значит либо специвльно, либо из-за ошибки.
Рекомендации
Я изменил свое мнение по поводу цепочек указателей. Они позволяют сделать CT компактным и удобным при правке значений больших структур в таблице CE. Мы же не хотим 5-10 опций и столько же сигнатур с АА, а хотим наверно сотню другую опций и хотим чтобы CT файл не разрастался. Для этого лучше использовать только указатели и изменение данных по ним.
Конечно, это просто субъективные рекомендации. Можно делать разными способами. Как мне кажется, что чем короче таблица, чем меньше кода и чем короче указатели, тем проще её править для других версий игр.
tutorial-i386_4.ct
Пробуй для двух шагов. Комментарии, к сожалению, некогда писать