2012-05-05 5 views
0

В настоящее время я реконструирую файл, который, как представляется, статически компилируется, однако IDA Pro не подбирает ни одну из подписей! Я чувствую, что я трачу много времени на выполнение функций, которые должны быть признаны IDA, но это не так.IDA не идентифицирует статически скомпилированные функции

В любом случае, может быть, я ошибаюсь ... у кого-нибудь есть идеи? Кто-нибудь сталкивался с этим раньше?

+0

Это очень трудно догадаться, почему МАР не хочет разборки вашего файла (без этого файла мы можем только догадываться). Может быть, он не может решить двоичное шифрование, если есть, трудно сказать. Я предлагаю вам попробовать другой инструмент или просто «связаться с продавцом» (http://www.hex-rays.com/products/ida/support/index.shtml). – TLama

+0

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

ответ

1

IDA - отличный дизассемблер, но он не идеален. Некоторый код, особенно незакрепленный/оптимизированный код, просто не может быть дизассемблирован в последовательные функции автоматическим способом. Это то, что происходит во время компиляции - когерентный код преобразуется в инструкции, которые машина понимает, а не людей. IDA может делать догадки и оценки, но он не может сделать все. Обратное проектирование всегда будет включать некоторую ручную интерпретацию для заполнения пробелов.

0

Если компилятор не распознается IDA (например, были внесены некоторые изменения в код запуска), подписи не будут применяться автоматически. И если IDA вообще не знает этот компилятор, он не будет иметь никаких подписей. Таким образом:

  1. если у него есть подписи, но компилятор не был распознан автоматически, примените их вручную. Для Delphi/C++ Builder попробуйте b32vcl или bds.

  2. , если он не имеет подписи для этого компилятора/библиотеки, вы можете создать их самостоятельно, используя чутье инструменты (если у вас есть доступ к исходным библиотекам)