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

keng

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

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

  • Посещение

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

    55

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

  1. Т.е. ты уже погуглил про хуки (d3d hook), или тебе просто нужные координаты в СЕ не найти?
  2. А что тут расписывать? У тебя есть паттерн (строчка байт, которую нужно найти), маска (строчка байт вида "000xxx00xxx00xxx"), длина этой маски. Ты берёшь адрес начала сканирования - StartAddress. Адрес конца сканирования - EndAddress. Читаешь кусочек памяти (через ReadProcessMemory) длиной в паттерн, сравниваешь побайтно прочитанное с паттерном, наложив на него маску - т.е. в моём примере 0 - нужный байт, x - любой. Как только нашёлся кусок данных, равный паттерну (с наложенной маской) - возвращаешь адрес сканирования, это и будет нужный адрес Вот пример из моего кода: Паттерн: 0FFh,08Ch,088h,000h,000h,000h,000h,0A1h,000h,000h,000h,000h,083h,078h,070h,001h,075h,00Bh Маска: "xxx0000x0000xxxxxx" Приложил скриншот, приглядись там к опкодам. А потом посмотри на паттерн и маску.
  3. [Тык]. По ссылке - видеоурок с английскими пояснениями, плагин для создания сигнатур для ollydbg + код функции на С++. Код простой и небольшой, так что перевести его на решётки будет легко.
  4. Я как бы уже три раза написал, что урок будет, но позже, т.к. тема сложная и её долго охватывать. Увеличение количества просьб вряд ли ускорит процесс.
  5. Он вот про [этот пост] говорил. В кратце - надо найти структуры игроков, из структур вытащить их координаты, далее повесить хук на EndScene, в хуке преобразовывать координаты из игровых в 2D-экранные и рисовать. Можешь погуглить на тему "D3D Hooks", но у меня ощущение, что затея на данном этапе провальна.
  6. [Раз] [Два] PS: Не нашлось float - ищи целое 4 байта. Не нашлось целое 4 байта - ищи целое 2 байта. И так далее. Что-нибудь обязательно найдётся - игра же находит.
  7. В общем, как я понял, надо вешать хук на EndScene в случае с D3D и перед вызовом оригинальной EndScene рисовать всё, что нам надо, а что именно и как - это уже математика. Тему хуков я в будущих видеоуроках затрону, потому что там довольно сложно и длинно для пары постов на форуме.
  8. Клёвая штука, особенно для мульти-игровых трейнеров. Можно коннектиться и обновлять\качать обновлённые оффсеты или новые игры. Бесплатно, без смс!
  9. Довольно старенький плагин - позволяет работать с сигнатурами (aobscan в CheatEngine). Функционал довольно простой - выделяем нужный код, тыкаем правой кнопкой, выбираем в меню "Make Sig" -> "Test Sig". Получаем что-то подобное: Этим же плагином можно тестировать свои собственные сигнатуры из СЕ. Автор плагина - P47R!CK. Выкладываю версию 0.4 - прицепил к сообщению. Для установки нужно положить в папку Olly, или же в папку плагинов, если вдруг вы указали её в настройках. Версия оли, в которой точно всё работает - 1.10, к 2.0 поддержку плагинов пока не прикрутили. OllyDbg.zip
  10. Ума много не бывает, как и знаний.
  11. А что такое классное есть в артмани, чего нет в СЕ? Я навскидку могу разве что отсеивание по формуле вспомнить, да автоизменение указателей. Если хочешь - могу что-нибудь по артмани записать - только тему дай.
  12. Bromvol, я тут обитаю пару месяцев и самому ещё учиться и учиться - не такой уж у меня значительный вклад.
  13. Раз ты нашёл стринги со способностями, то они должны вызываться из двух мест каждая - при отображении на экран и при включении\выключении. Надо ставить бряки на всё найденное в ольке, затем или включать\выключать пытаться или добежать до места, где способности выдают - что-нибудь, да обратится к нужному стрингу - оттуда и танцевать.
  14. В кратце, DMA - Dynamic Memory Allocation, динамическое распределение памяти, про которое и стоило бы рассказать. Очень вкратце - каждый раз при запуске игры винда выдаёт ей кусок оперативной памяти, начинающийся со случайного адреса, а не с одного и того же. Это приводит к тому, что адреса находимых значений каждый раз меняются. Вот это - вкратце про DMA. :\ Как бороться - или искать указатель (дальше - вкратце про указатели) на нужный адрес, или "писать скрипт" - находить при помощи отладчика инструкцию, работающую с нужным адресом, т.к. код игры своего положения не меняет. Плюс ставить не буду.
  15. Чисто понять основы + попрактиковаться на сапёре\косынке - вполне. Не хватает ещё архива с собранным трейнером и его прокомментированными исходниками.
  16. Так я же до этого написал (где ещё ссылку на статью кинул), что нужно просто чуток код вверх потрейсить и выяснить, что с регистром происходит. Как я понял, проблема в имплементации чтения этого указателя в код трейнера, но я уже тоже сомневаюсь.
  17. Так ведь простая арифметика, смотри: Адрес указателя = значение по адресу [eax+esi*4] Допустим, что в eax у нас 5, а в esi у нас 7. Тогда адресом будет: [5 + 7*4], или [5 + 28], или [33] Штука тут в том, что значение esi может быть разным, так что нам нужно сначала прочитать его, затем домножить на 4, прибавить к полученному значение eax и только после этого ReadProcessMemory("сумма") - это и будет адресом указателя. (:
  18. Окей. [Вот] статья в тему, на английском. Суть в кратце - необходимо узнать, что делается с этим регистром до чтения указателя, а затем уже использовать его значение как обычно.
  19. Так, давай определимся, для начала. Ты сейчас хочешь именно взломать (через Cheat Engine, к примеру), или написать трейнер? Что уже получилось и что именно взломать хочешь?
  20. В момент срабатывания посчитай всё в отдельном регистре, прибавляй результат. Т.е. (псевдокод): mul eax, 4 mov ebx, eax add ebx, esi Результат - в ebx
  21. Для борьбы с DMA достаточно указатель найти или пореверсить код чуть дольше, зачем тут брейкпоинты-то? Или это я чего-то непонимаю?
  22. Ох, что-то мне это напоминает. Кстати, зачем трейнер должен уметь ставить брейкпоинты? Что-то я не могу навскидку придумать.
  23. Как враиант - делать готовый трейнер не средствами СЕ, утилит - полно.
  24. Если писал механизм упаковки сам - сам его и перепиши на нужный манер. Если не сам - напиши хотя бы название пакера.
  25. Да, кстати. Перечитал первый пост, там есть вот такой кусочек: ret 0010 jmp returnhere Я может просто сонный ещё, но нафига нам ret 10 тут? И тот же jmp после него - в каком случае мы до него доходим? Я проверить не могу сейчас, но по-моему мы же по ret возвращаемся и на этом всё.
×
×
  • Создать...

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

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