• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Автоматизируем x64dbg. Как превратить отладчик в хакерский комбайн

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,483
Баллы
155
Автоматизация x64dbg позволит создавать собственные инструменты для типовых задач отладки, таких как распаковка файлов, поиск сигнатур, перехват или подмена на лету результатов работы функций и даже фаззинг в оперативной памяти! Давай посмотрим, какие есть способы сделать это и как ими пользоваться.

Встроенный интерпретатор


Для быстрого решения повседневных задач в отладчик встроен простой скриптовый язык. Давай рассмотрим скрипт на нем, который будет распаковывать файл, накрытый UPX — самым распространенным упаковщиком.


//start

msg "upx (3.91) unpacker"

msg "make sure you're at the entry point of the program before you continue"

pause

//clear breakpoints

bc

bphwc

//script start

step

bphws csp,r

erun

bphwc

//find oep jump

find cip,"80E9" //some pattern

cmp $result,0

je error

//go to OEP

bp $result+1

erun

bc

sti

//finish script

ret

error:

msg "didn't find oep jump"

ret


Синтаксис говорит сам за себя: имя команды, за которым следует разделяемый запятыми набор аргументов. Комментарий идет после двух слешей. Строчки обрамляются двойными кавычками. Цифровые константы интерпретируются как шестнадцатеричные числа, то есть число 100 на самом деле значит 256.

Одна и та же команда может иметь несколько имен, в длинной и короткой форме. Например, команда SetBPX, устанавливающая точку останова, может быть записана как bp. Короткая запись удобна для управления отладчиком из встроенной консоли, расположенной снизу.

Результат команды msg

Результат команды msg

Готовый скрипт можно загрузить из текстового файла, а затем отдать на исполнение или запустить пошаговую отладку скрипта, нажимая Tab для перехода на следующую строку.

Исполняем по одной команде за раз

Исполняем по одной команде за раз

Разберем, что делает скрипт, переписав команды в длинной форме:


pause

//clear breakpoints

DeleteBPX

DeleteHardwareBreakpoint

//script start

StepOver

SetHardwareBreakpoint csp,r

erun

DeleteHardwareBreakpoint

//find oep jump

find cip,"80E9" //some pattern

cmp $result,0

je error

//go to OEP

SetBPX $result+1

erun

DeleteBPX

StepInto

//finish script

ret

error:

msg "didn't find oep jump"

ret


Первая команда — pause — останавливает выполнение скрипта, после чего его необходимо запустить вручную, исполнение продолжится со следующей команды. Это удобно, когда от пользователя требуется выполнять действие, например ставить EIP на точку входа.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Источник:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу