дизассемблер capstone - разборка одной функции без определения длины - PullRequest
0 голосов
/ 26 декабря 2018

Я заинтересован в использовании библиотеки дизассемблера capstone.

https://github.com/aquynh/capstone

Моя мотивация для этого заключается в том, что мне нужно иметь возможность разбирать функции во время выполнения, пока моя программа работает.

Мне удалось успешно интегрировать это в мой проект C ++.Тем не менее, я не смог понять, как разобрать всю функцию.Я просмотрел все примеры в следующей ссылке.

https://github.com/aquynh/capstone/tree/master/tests

Все примеры занимают произвольную длину, чтобы разобрать.Я не знаю размер функции, которую я хочу разобрать перед рукой.Все, что я знаю, это название символа (например, «mkdir»).Если кто-то может дать ссылку на какой-то пример, который выполняет то, что мне нужно, это было бы очень признательно.

В случае, если это имеет значение, архитектуры, для которых я хотел бы разобрать, это x86, x86_64, arm и arm64.

1 Ответ

0 голосов
/ 26 декабря 2018

Я так понимаю, просто нет такой вещи, как "длина функции", хранящейся где-либо в исполняемом файле.Я предлагаю разбирать его небольшими порциями, пока вы не встретите своего рода инструкцию-терминатор (например, «ret»).

...