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

keng

Ветераны
  • Постов

    1 635
  • Зарегистрирован

  • Посещение

  • Победитель дней

    55

Весь контент keng

  1. Не могу создать тему с опросом в ней. Все поля заполнены, но движок все равно ругается, что что-то не так.
  2. Так, ок. У меня Win10 x64 и мой же код работает некорректно. Хук отрабатывает, но что-то не так с перехваченной функцией, которой я подменяю оригинальную Present(). Моя рушит стек при вызове. Буду разбираться, но это займет какое-то время.
  3. Спасибо за отзыв, я выкладываю что-нибудь время от времени и по мере сил. Посмотрел код, все вроде бы неплохо. Возможно, что или не создается hwnd окна для создания объекта d3d, или же сам d3d-объект. Нужно смотреть, больше пока ничего не могу сказать. Если можешь - поделись тестовым приложением, я соберу твой код у себя и попробую отладить. Да, отладчиком я пользовался скорее всего v2.01, без плагинов вообще. PS: Простыни исходного кода лучше убирать под тег "спойлер".
  4. @NickSpirit, привет! Я в статье описал общий принцип, если ты не полностью понял пример - то задавай вопросы, постараюсь ответить. У меня игра была 64-битная, а регистр RBX я использовал, потому что мне так захотелось. RBX - один из так называемых регистров общего назначения, и без разницы, какой из них использовать. Команды push и pop нужны, чтобы мы могли сохранить и затем восстановить изначальное значение регистра. На твой код я смотрю и пока что мне кажется, что все написано правильно. Предлагаю сделать следующее: 0. Открой CE, затем - окно отладчика ("Memory Viewer") 1. В нижней его части (которая еще называется дампом памяти) ПКМ -> "Goto address" ("Перейти на адрес") 2. Вбивай адрес code cave, куда должен сохраниться указатель. В случае твоего скрипта - 0x00402407 3. А дальше смотри в верхний левый угол дампа памяти. Там будет надпись Protect: *что-нибудь*. Тебе нужно, чтобы в этом поле стояло "Protect: Read\Write" 4. Если там стоит какая-то другая защита - то попробуй другой адрес для code cave Вот картинка, для наглядности: Поясню, что за ахинею написал. Память процесса поделена на страницы, каждой странице при ее выделении выдается та или иная защита - какие-то данные можно только читать, какие-то - читать и писать, а в каких-то может вообще лежать исполняемый код, который можно еще и выполнять. Сделано это для удобства, конечно же. Так вот, если в страницу памяти, выделенную с правами только на чтение, попытаться что-то записать - получится исключение и операционная система программу закроет, то есть игра вылетит. Такая вот штука. PS: Исходный код и все, что длинное, принятно оборачивать в тег "спойлер", так что я твой пост чуток отредактировал.
  5. Аэ. Я так понимаю, что прыжок + нопы изменятся обратно при выключении скрипта, т.е. при активации секции "[DISABLE]". Во-вторых, давай еще раз. Есть кусок игрового кода, который читает определенные участки кода игры и делает с ними что-то волшебное, что нам не очень интересно. При этом, если мы изменяем участки, с которыми происходит волшебство, то игре это не нравится и она быстро заканчивается. Как с этим бороться: При активации скрипта какая-то инструкция у нас изменится - это важно! 0. Выделяем в памяти игры место под весь EXE-файл игры 1. Копируем туда содержимое EXE-файла (текущего, с измененной инструкцией) 2. Находим в сохраненной копии место, которое мы своим скриптом изменили 3. Меняем измененное место на оригинальную инструкцию, как будто там нет никакого перехода 4. Внедряемся в код, который проверяет код игры на изменения 5. Каждый раз вычисляем смещение от оригинального кода игры до инструкции, которую игра хочет проверить, плюс размер 6. Подставляем вместо нужного игре адреса тот, что мы сохранили в п. 0-3 7. Теперь игра ничего не понимает, т.к. ей всегда возвращается "оригинальный" код 8. Спокойно меняем все, что угодно Что из этого у тебя не вышло?
  6. Привет! Во-первых, отладчик - в помощь. Во-вторых, покажи код и игру, где код падает.
  7. Без названия игры это все еще гадание на кофейной гуще. Автор, может хотя бы в лс название укажешь? Я никому не расскажу, честно!
  8. Хм. То ли я не очень умный, то ли darkbyte слишком ленивый, но СЕ не знает опкода "rep movsq", который копирует qword'ы. Это печально, потому что побайтно копировать - очень долго.
  9. У меня вполне корректно работает вот такая версия. Проверял на CE 6.5.1 и x64-туториале. memcopy.zip
  10. Тебе нужна MOVSQ, чтобы перемещать сразу по QWORD (RSI->RDI). MOVSB оперирует байтами. Или я чего-то не понимаю и тогда мне нужно побольше описания и кода.
  11. Спасибо за отзыв, но мне самому пока не нравится. Возможно, еще подредактирую.
  12. Статья-напоминалка для тех, кто не умеет искать указатели вручную, плюс небольшая хитрость, которая позволяет иногда сильно упростить и ускорить процесс. Пароль на архив - адрес нашего сайта без "http://". Формат - PDF. gamehacklab.keng.pointers.finding.pdf.zip
  13. Показывай, пожалуйста, что ты делал и как, а так же - что за ошибка.
  14. Привет! Пожалуйста, создавай темы в правильном разделе. Я перенес твою тему в раздел о взломе ММО-игр, но если твоя игра (название тоже было бы неплохо указывать) имеет другой жанр, то скажи об том - перенесу в нужный раздел. Лучше всего, конечно, посмотреть видео твоих действий.
  15. Привет! Перестань писать ЗАГЛАВНЫМИ БУКВАМИ и торопиться, пожалуйста. Так читать текст будет намного легче. Можешь показать, что ты уже нашел и как пытался искать ID, соответствующий игроку? Помогут адреса значений, инструкций, структур, фрагменты кода, в общем - все.
  16. Ну так и говори, что тебе нужен код и все готовенькое, а не объяснения. На таких время тратить не хочется.
  17. Жаль. Что именно ты не понял? Само сообщение или пост Руссиновича, ссылку на который я оставил?
  18. У меня в подписи ссылка на блог, где-то в нем есть пара материалов на тему создания трейнера как раз на C#.
  19. В общем и целом все упирается в свободную оперативку - Руссинович [пишет], что это - единственное ограничение. PS: На форуме обычно спрашивают тогда, когда ответна вопрос не нашелся в поисковой системе.
  20. Привет! Создавать можно хоть в визуальных редакторах - это когда тебе рисуется окошко, ты на него перетаскиваешь кнопки, нажимаешь "Сохранить" и получаешь готовый исполняемый файл. Такое можно, например, в том же Cheat Engine делать. Еще есть Trainer Maker Studio, например. Если хочется все самому, то подойдет любой язык программирования, поддерживающий WinAPI. WinAPI - это набор функций, встроенных в Windows, которые позволяют делать все - от создания окна до чтения/записи оперативной памяти игры, что критично для трейнера. Дальше - дело фантазии. По сути, вся работа трейнера сводится к одному - к изменению кода игры, который лежит в оперативной памяти. Трейнер должен: - Получить доступ к оперативной памяти игры с правами на запись - Сделать необходимые изменения (поменять определенные байты в памяти игры) И все. Как именно это выглядит - есть ли окно и т.д., есть ли музыка или что-то еще - уже дело десятое.
  21. Заметил небольшой недочет, который больше глаза режет, нежели недочет. Под ником и аватаркой каждого участника в теме указывается город. Почему-то в фразе "Город: Бобруйск" отсутствует пробел.
×
×
  • Создать...

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

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