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

Лидеры

  1. MasterGH

    MasterGH

    Ветераны


    • Баллы

      2

    • Постов

      2 999


  2. Coder

    Coder

    Ветераны


    • Баллы

      1

    • Постов

      815


  3. keng

    keng

    Ветераны


    • Баллы

      1

    • Постов

      1 635


Популярный контент

Показан контент с высокой репутацией 29.07.2015 во всех областях

  1. BeaEngine может дизссемблировать код, но не читать регистры из контекста потока. Значение регистра eax можно узнать средствами отладки (функции WinAPI) . Toggle hardware data/read/execute breakpoints programmatically - link Debugging Functions (MSDN) - link Бряк в данном случае лучше ставить аппартный, а не int3. Для этого есть специальные регистры отладки, но их не так много. И еще аппартный бряк выполняет инструкцию, а потом прерывается. Т.е.если mov eax,[eax+4], то левый eax прочтешь, но не в скобках
    1 балл
  2. Если без инъекции в классическом ее понимании, то ты можешь написать простейший отладчик. Для этого понадобится выяснить, что такое брейкпоинт (инструкция int 3), например и достать где-нибудь дизассемблер длин инструкций. Ставишь брейкпоинт на адрес нужной инструкции, сохраняешь ее, зная длину, оставшиеся байты балансируешь nop-ами. Восстанавливаешь процесс и ждешь срабатывания исключения от брейкпоинта, как сработало - используешь inline-ассемблер, чтобы вытащить данные из регистра, восстанавливаешь оригинальную инструкцию и отцепляешься от процесса.
    1 балл
  3. 1. Полезный совет на будущее. Для проверки даже самых непонятных ошибок помогает пошаговая отладка CE. Отладка позволит узнать на какой инструкции происходит вылет 2. В глаза бросается ошибка. Значение координат это 4 байта, а ты работаешь с координатами как с 8-мью байтами в следующих строках Вот ошибка mov rcx,[coord_X]mov [r8+000000BC],rcxmov rcx,[coord_Z]mov [r8+000000C0],rcxmov rcx,[coord_Y]mov [r8+000000C4],rcx Ну и вот ошибка mov rcx [rbx+00000850]mov [coord_X],rcxmov rcx [rbx+00000854]mov [coord_Z],rcxmov rcx [rbx+00000858]mov [coord_Y],rcxМожно использовать 32-х разрядные регистры, а не 64х разрядные. Вместо rcx писать ecx... Не уверен на счет остального... Перед активации скрипта поставь процесс игры на паузу (в настройках CE горячие клавиши). Активируешь скрипт. Ставишь бряк в дизассемблере на инструкции, в которую делал инъекцию. Дальше размораживаешь процесс игры. И прерываешься. Идешь по F7 по шагам и смотришь ошибки. Примерно так я отлаживаю все скрипты инъекций кода. Обычно всегда успешно.
    1 балл
×
×
  • Создать...

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

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