Символьное выполнение в Firefox с использованием angr

Я новичок в символической казни. Я хочу выполнить символическое выполнение над Firefox, начиная с определенной точки. Например, я хочу запустить Firefox в GDB с точкой останова, установленной в том месте, с которого я хочу начать символьное выполнение. При достижении точки останова я хочу, чтобы началось символическое выполнение с унаследованными значениями регистров.

Как это можно было сделать?

Я нашел angrgdb. Я не уверен в том, что когда я бегуgdb ./path/to/my/firefox/binary и внутри экземпляра gdb продолжить символическое выполнение с angrgdb, действительно ли он переходит на сборку кода Firefox внутри какой-либо библиотеки?

Я видел auto_load_libs установлено значение false в load_options где-то внутри кодовой базы angrdbg, поэтому не уверен, что он просто использует какое-то символическое значение, представляющее возвращаемое значение любой функции, не входящей в двоичный файл firefox (./firefox-63.0.3/objdir-ff-asan/ дист / бен /firefox).

Еще я нашел Symboin. Но, похоже, он просто запускает программу с использованием gdb до тех пор, пока не будет достигнут какой-то адрес и не начнет символьное выполнение. Однако мне нужно начинать символическое выполнение, когда удовлетворяется более сложная логика, а это означает, что мне нужно взаимодействовать с GDB, прежде чем я решу, что можно запустить символическое выполнение.

0 ответов

Другие вопросы по тегам