LINUX.ORG.RU

История изменений

Исправление mittorn, (текущая версия) :

для каждого случая индивидуальные. Если например известно, что из функции вызывается какая-то другая, можно попытаться поставить брейк на ней и смотреть в стек.
Ещё может быть полезна конструкция:
print *(void*[64]*)($esp - 4)
Она распечатает окрестность стека в виде массива указателей.
Может оказаться полезной трассировка строковых операций.
Декомпиляторы к сожалению в своём большинстве платные, с достаточно дорогой лицензией. Добавлю, что указатели обычно делятся на 3 группы: 1. указатели на кучу 2. указатели на стековую память 3. указатели на бинарник Зная, где они примерно расположены, можно найти функции. Анализируя листинг дизассемблера можно перечислить все функции в бинарнике по инструкциям call для x86 и bl (с разными флагами) для arm

Исправление mittorn, :

для каждого случая индивидуальные. Если например известно, что из функции вызывается какая-то другая, можно попытаться поставить брейк на ней и смотреть в стек.
Ещё может быть полезна конструкция:
print *(void*[64]*)($esp - 4)
Она распечатает окрестность стека в виде массива указателей.
Может оказаться полезной трассировка строковых операций.
Декомпиляторы к сожалению в своём большинстве платные, с достаточно дорогой лицензией, да и не панацея - как найти именно нужную функцию по декомпилу?

Исходная версия mittorn, :

для каждого случая индивидуальные. Если например известно, что из функции вызывается какая-то другая, можно попытаться поставить брейк на ней и смотреть в стек.
Ещё может быть полезна конструкция:
print *(void*[64]*)($esp - 4)
Она распечатает окрестность стека в виде массива указателей.
Может оказаться полезной трассировка строковых операций.
Декомпиляторы к сожалению в своём большинстве платные, с достаточно дорогой лицензией.