Перейти к содержанию
  • записи
    83
  • комментария
    74
  • просмотров
    5266

Radare2 Эмуляция кода

Авторизация  
partoftheworlD

79 просмотров

  • Глава 0. Пролог

 

В общем в прошлой статье слетели картинки, да и статья не особо понравилась, вот её переписанная и обновленная версия. Место действия – терминал, в главных ролях – radare2, отлаживаемая программа.

 

  • Глава 1. Настройка окружения ESIL
e asm.emu=true - Run ESIL emulation analysis on disasm
e io.cache=true
  • Глава 2. Настройка эмулятора

Тут достаточно простой список команд:

aei – инициализирует состояние виртуальной машины
aeim – инициализирует стек
aeip – устанавливает EIP по текущему положению в коде

после всех этих команд в регистрах выставились адреса ebp, esp, eip.

1.png.0cbd4aea2351a4422365cd8c3ba88521.png

 

Остальные регистры устанавливаем с помощью команды aer, значения обычно берутся из отладчика, но можно выставить любые.

aer eax = 00000004;aer ebx = 0x17426e8;aer edx = 00000004;aer edi = 0x05e4830;aer tf  = 1;aer if  = 1;

2101829662_.thumb.png.77920dd6b210f326dd88b854333f9864.png

 

Для пошагового выполнения кода используем aes, я обычно использую такую связку, чтобы получать необходимый минимум информации:

pd -1 @ eip; aer=; aes

но если кому так не удобно, есть возможность использовать визуальную отладку используя команду V!

 

  • Глава 3. Тест

 

Попробуем отладить код из дампа и посмотреть, что там вообще происходит.

 

3.thumb.png.908f4a1eb97dc6fce8b295586fd2652b.png

 

  • Глава 4. Эпилог

 

Как видите, все достаточно просто, плюс поддерживается для эмуляции туева хуча архитектур. Так же это быстрее, чем поднять qemu или использовать реальное железо, плюс поддержка скриптов радара делает из эмуляции достаточно мощный инструмент для статической отладки и анализа кода.

 

  • Понравилось 1
  • Плюс 2
Авторизация  


0 Комментариев


Рекомендуемые комментарии

Комментариев нет

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×

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

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