eXeL@B —› Основной форум —› FLIRT + FLAIR = ? |
Посл.ответ | Сообщение |
|
Создано: 01 сентября 2015 18:55 · Поправил: Apokrif · Личное сообщение · #1 Народ, подскажите как правильно и быстро флиртовать? Расклад: statically linked .so для Andriod. Компилер: GCC: (GNU) 4.4.3 Неизвестно: android-ndk (т.е. набор либ) gcc 4.4.3 был во многих android-ndk. В каждом android-ndk в среднем примерно дюжина android platform (android-3…android-*) Считаем, что стандартные либы использованы из android-ndk (т.е. не перекомпилились) Также интересует нестандартные либы (т.н. не входящая в android-ndk) OpenSSL и Lua. Генерить FLIRT Signature Files подбирая ключи компиляции, потом применять к огромному idb вроде как-то неправильно. Посмотрел IDA.Pro.Book.2nd.Edition, там только общие советы по этому вопросу... Пока думаю так: Для стандартные либ: в исходном "statically linked" .so попытаться точно вычислить какую-то функцию из стандартных либ и поискать её в разных комбинациях android-ndk/platform. Кажется, что все равно подойдут почти все ndk... Для нестандартных либ: Так же попытаться точно вычислить какую-то функцию и поискать её в разных комбинациях ключей компиляции. Есть какие-то другие (более правильные?) подходы? |
|
Создано: 01 сентября 2015 19:34 · Личное сообщение · #2 |
|
Создано: 01 сентября 2015 20:05 · Личное сообщение · #3 r_e пишет: idb2pat не подойдет Каким макаром? У меня же ничего (из того что мне нужно) не найдено в idb... Я так понимаю, если уже есть предыдущая, "опознанная" версия бинарника и известно, что новая скомпилена тем же компилером (или близким) с теми же либами (или близкими), то idb2pat это как за то, что нужно. Я не прав? |
|
Создано: 01 сентября 2015 21:57 · Личное сообщение · #4 Apokrif а чо, в андроид ндк либы в сырцах идут? сгенерь с них сигнатуры. а тех, которых нет, типа openssl и т.д. сгенерь со стандартным набором ключей. что-нибудь, да распознается. А что такое вообще statically linked .so? там же импорты должны торчать именованные. Или имеется в виду statically linked .a? ----- старый пень |
|
Создано: 02 сентября 2015 02:09 · Поправил: Apokrif · Личное сообщение · #5 r_e пишет: а чо, в андроид ндк либы в сырцах идут? Да, всегда можно пересобрать с другими ключами. (Никогда не делал!) Весь стандартный андроид можно собрать с 0, все сырцы есть. r_e пишет: А что такое вообще statically linked .so? там же импорты должны торчать именованные. Или имеется в виду statically linked .a? Правильный термин "Statically linked binaries". Т.е. "statically linked .so" это .so, который не использует libc.so, а "statically linked libc.a" Многие либы линкуем на выбор, shared/static: 772,856 libstlport_shared.so 1,177,156 libstlport_static.a r_e пишет: а тех, которых нет, типа openssl и т.д. сгенерь со стандартным набором ключей. что-нибудь, да распознается. Да понятно, просто думал, может кто-то уже разбирался и подскажет, где грабли спрятаны… Добавлено спустя 20 минут Еще один детсадовский вопрос к флиртущим: По определению: Signature это pattern + a list of symbol names referenced by the function (и еще кое-то) Пример, есть функции a(), b() и c(). b() и c() используют a(). Signature сняты. Чуток меняем a() в начале, чтобы pattern стал другой. Компилим и применяем старые Signature Что получится? А. Т.к. a() по pattern не нашелся, то b() и c() тоже не найдутся из-за отсутствия ссылки на a() Б. Или a() все равно найдется, т.к. b() и c() его используют и их pattern не изменились? И можно ли как-то управлять флиртом, чтобы изменить поведение? |
|
Создано: 02 сентября 2015 04:07 · Личное сообщение · #6 |
|
Создано: 02 сентября 2015 16:09 · Личное сообщение · #7 |
|
Создано: 05 сентября 2015 22:27 · Поправил: Apokrif · Личное сообщение · #8 Попробовал сигнатуры для своей либы получить (очень простая, всего 3 функции) pcf.exe из flair66 и flair68 сказал: Code:
pcf пропустил 285 модулей из 315... Это я туплю или pcf из flair66 и flair68 реально не поддерживает даже более менее старые Visual Studio? В flair examples есть Turbo C v2.00 (1989) и BCC++ v3.1 (1992) И еще delphi1 .. 7.00 В IDA 6.6\sig есть vc7atl.sig и vc8atl.sig Если это сигнатуры для VisualС 7 и 8, то это примерно годы 2002 - 2005 А для более новых VС сигнатуры даже для стандартных либ не поставляются? И сгенерить их с помощью pcf тоже нельзя... Или я конкретно не догоняю? Могу пару стандартных либ выложить из Visual Studio 12.0, если кто сам хочет попробовать! |
eXeL@B —› Основной форум —› FLIRT + FLAIR = ? |