Интерфейс Python для динамического бинарного приспособления Framework Pin

StackOverflow https://stackoverflow.com/questions/4345243

Вопрос

Я работаю в анализе двоичных файлов, используя Python. Я использовал отладчики для выполнения динамического анализа (т.е. запуск приложения и используя точки останова, чтобы получить выполнение времени выполнения). Однако результаты могут быть улучшены, если я смогу использовать некоторые двоичные приборы Fremerework, как ПРИКОЛОТЬ. Отказ PIN-код разработан в C ++ и предоставлен в виде закрытого источника (только DLL). Мы пишем что-то называемые pintools, описывают где и что Мы хотим перехватывать. Я хочу портировать функциональность PIN-кода в Python так, что я продолжаю использовать Python. Я знаю о «Ctypes» и Boost-Python.

Моя проблема заключается в том, чтобы использовать PIN-код, мы пишем Pintool и запустите наш исполняемый файл с помощью PINTOOL и PINTOOL (он похож на запуск с JIT). Теперь я понятия не имею, если смогу использовать CTYPES и т. Д. Для импортирования функций PIN и используют этот код Python для динамического анализа двоичных данных. Можете ли вы предоставить некоторые предложения или рекомендации о том, как действовать с этой задачей.

Итак, в Nut-N-Shell я хочу создать интерфейс Python (Wrapper) для PIN-каркаса.

Это было полезно?

Решение

Проверьте проект ProcessTap. Похоже, реализовать именно то, что вы ищете: http://code.google.com/p/processtap/

Другие советы

Я думал об этом недавно, пока я не посмотрел в него, я бы подойдет к такой проблеме: напишите пинту, что при инициализации начинается встроенный интерпретатор Python и импортирует модуль Python. Я бы посмотрел на использование Swig для генерации привязки для всех вызовов PIN-сигнала, которые вы хотите использовать. Затем Pintool позвонит жесткозедированной функции в импортированном модуле Python, который выпустит вызовы API для регистрации большего количества функций и делать все, что вы хотите сделать.

Я не уверен, как будут работать обратные вызовы, я не знаю достаточно о Swig. Кроме того, это может потерпеть неудачу, если программа вы пытаетесь, использует Python. Но вот как я бы попытался решить эту проблему, чтобы начать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top