Назад к содержанию
Декомпиляция по адресу
В меню
Утилиты содержится очень полезная функция -
Декомпилировать по смещению. Главная особенность этой функции в том, что ей не требуется чтобы декомпилируемый файл имел корректную структуру и декомпилировался стандартными средствами.
Для декомпиляции того или иного куска кода в файле достаточно лишь указать виртуальный адрес этого кода (если речь идет о
Native Code или о
.NET сборке), либо ссылку на структуру
ProcInfo (если речь идет о
P-Code). Особенность работы с
P-Code в том, что структура
ProcInfo содержит в себе адрес массива данных, используемых кодом. Без этого массива невозможно определить с какими функциями работает код, на какие строки ссылается и так далее. В случае работы с
.NET сборкой, после ввода адреса декомпилятор предложит на выбор либо декомпилировать код как
MS IL псевдокод, либо дизассемблировать этот код. Данный выбор связан с тем, что
.NET сборки могут содержать как псевдокод
MS IL (managed код), так и машинный (так называемый unmanaged) код.
В случае если файл уже открыт в декомпиляторе, достаточно лишь вызвать функцию
Декомпилировать по смещению и указать адрес для обработки. Если файл еще не открыт - это будет предложено сделать автоматически и файл будет открыт в упрощенном режиме.
Функция
Декомпилировать по смещению особенно полезна в том случае, если нужный код не декомпилируется автоматически или файл частично поврежден, что не позволяет его декомпилировать стандартными средствами.