Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› Использование IDA Pro |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >> |
Посл.ответ | Сообщение |
|
Создано: 08 августа 2008 18:53 · Личное сообщение · #1 Здесь предлагаю обмениваться опытом использования, настройки этой тулзы. Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? ) ----- My love is very cool girl. |
|
Создано: 13 октября 2010 12:09 · Личное сообщение · #2 reversecode пишет: ps плагин в блоге под какую версию иды собран? 5.5 Rustem пишет: Вместо obj,lib , можно для создания сигнатур и скомпиленый ехе засунуть в иду и мап файл, тоже все распознается Эмм А причем тут map? map это ж тупо соответствие имя - адрес. Как он поможет находить функции в чужом файле? ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 13 октября 2010 13:48 · Личное сообщение · #3 Hexxx я же описал метод к примеру, нужны сигнатуры STL от VisualStudio 1. компилишь свой файл с юзанием STL. чем больше вызовов, тем лучше. отсюда будем брать сигнатуры говорим линкеру генерить мап файл. в ехе получаем функции STL, от которых будем брать сигны, имена в мап файле. грузим скомпиленый в ида, применяем мап. получаем сигнатуры 2. грузим исследуемый файл в ида и применяем полученные сигнатуры короче, мап применяется не к исследуемому файлу, а к тому, который мы компилили (в п.1) хотя парсинг obj неплохая затея, но опять же надо знать ключи компилятора, иначе не распознается |
|
Создано: 13 октября 2010 15:37 · Личное сообщение · #4 |
|
Создано: 13 октября 2010 16:54 · Личное сообщение · #5 |
|
Создано: 13 октября 2010 18:45 · Личное сообщение · #6 Rustem пишет: к примеру, нужны сигнатуры STL от VisualStudio 1. компилишь свой файл с юзанием STL. чем больше вызовов, тем лучше. отсюда будем брать сигнатуры 2. говорим линкеру генерить мап файл. 3. в ехе получаем функции STL, от которых будем брать сигны, имена в мап файле. 4. грузим скомпиленый в ида 5. применяем мап. 6. ??? 7. PROFIT ( получаем сигнатуры) Вот так то, что ты говоришь, выглядит для меня. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 13 октября 2010 18:58 · Личное сообщение · #7 Rustem пишет: 2. грузим исследуемый файл в ида и применяем полученные сигнатуры короче, мап применяется не к исследуемому файлу, а к тому, который мы компилили (в п.1) перечитал и понял что то что вы говорите не в тему) мы обсуждаем работу flirt и определения функций по сигнатурам а то что вы говорите, это банальноя загрузка имен функций по скомпиленому файлу в obj/lib она и так по умолчанию идет, а в exe идет или встроеная либо в pdb вообщем перечитайте еще раз что мы обсуждаем |
|
Создано: 13 октября 2010 19:09 · Личное сообщение · #8 |
|
Создано: 13 октября 2010 19:15 · Личное сообщение · #9 |
|
Создано: 13 октября 2010 19:33 · Личное сообщение · #10 |
|
Создано: 13 октября 2010 19:33 · Поправил: Vamit · Личное сообщение · #11 reversecode пишет: я что то пропустил, научите Вот этот пост пропустил , хотя ответ на него и давал ----- Everything is relative... |
|
Создано: 13 октября 2010 19:42 · Личное сообщение · #12 |
|
Создано: 13 октября 2010 20:41 · Личное сообщение · #13 int пишет: Плагин есть, не помню как называется. idb2sig, idb2pat - все глючные reversecode пишет: и понял что то что вы говорите не в тему) Я теперь тоже понял Интересно сравнить насколько больше будет инфы если скармливать сигнатуры, и lib/obj через этот coff плагин... ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 13 октября 2010 20:43 · Личное сообщение · #14 int пишет: Какой-нибудь из этих: sourceforge.net/projects/openstrsecii/files/В принципе я уже руками разбирать научился, но это очень неприятно делать. Либа использована в ASProtect SKE. Сори, я не смогу помочь, я думал там есть для BCB варианты. А тут чисто дельфовое. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 14 октября 2010 07:23 · Личное сообщение · #15 Как я понял, из одного описания метода (http://www.exelab.ru/f/action=vthread&forum=1&topic=12507 &page=11#14) , без примера и картинок, не всем понятно Пример создания сигнатур 1. Есть ехе который надо отреверсить, к примеру применить сигнатуры STL. Пусть будет target.exe Если загрузить в IDA 5.5 то в принципе, она неплохо определила своей Flirt технологией. Но не все функции 2. Определяем компилятор target.ехе и опции. PEID говорит Microsoft Visual C++ 7.0 Поле Linker Info - 7.10 Компилятор target.ехе VisualC++ 2003 3. Создаем свой ехе, с использованием STL и компилим в VisualC++ 2003 Я взял этот код. Code:
Включаем генерацию MAP файла Projects->Properties->Linker->Debugging->Generate MAP file->Yes Компилим. Получаем exe. Пусть будет strsig.exe 4. Грузим strsig.exe в IDA Берем мой скрипт map2ida.idc Перед загрузкой, мап файл надо немного подправить в любом текстовом редакоторе, а именно сделать так чтобы сразу начиналось с информации о функциях.( Address Publics by Value Rva+Base Lib:Object) т.е. примерно с этих строк. 0001:00000000 ??3@YAXPAX0@Z 00401000 f i strsig.obj 0001:00000010 ??Bid@locale@std@@QAEIXZ 00401010 f i strsig.obj 0001:00000030 ?_Incref@facet@locale@std@@QAEXXZ 00401030 f i strsig.obj 0001:00000040 ?_Decref@facet@locale@std@@QAEPAV123@XZ 00401040 f i strsig.obj 0001:00000060 ??1locale@std@@QAE@XZ 00401060 f i strsig.obj ............... Запускаем скрипт map2ida.idc. Ида может сообщить, что имена совпадают. жмем ОК 5. Теперь создаем сами сигнатуры из strsig.exe. Для этого запускаем мой скрипт sigcreat.idc Ждем немного. в консоли иды можно заметить сообщение OK Total Functions: 322 Signatures : 267 Collised : 38 Появляются файлы C:\sigcreat.txt C:\sig.bin Всего создали сигнатур 267, коллизий 38 6. Возвращаемся к target.exe. Грузим в ида теперь ее Запускаем мой скрипт sigapply.idc Ждем немного. В консоли видно сообщения Code:
Нашлось всего 21 функция. Потому что сама ида тоже неплохо определила по своим сигнатурам. а к уже распознаныи идой функциям не применяется В принципе, один раз сделать сигнатурные файлы, можно использовать и для других "target.exe" Скрипты тут: blackninja2000.narod.ru/files/idasignat.zip Примеры от этой статьи тут: blackninja2000.narod.ru/files/sigexampl.zip |
|
Создано: 14 октября 2010 07:31 · Поправил: reversecode · Личное сообщение · #16 |
|
Создано: 14 октября 2010 12:39 · Личное сообщение · #17 Rustem Я видел живой пример использования твоих сигнатур. Вот какие минусы были выявлены: * не сохраняются типы в именах функций, например (либо потому, что Делфи, либо автор сигны сделал MAP с неверными параметрами): После сигн - UMPIntToBase256, должно быть: @Mparith@UMPIntToBase256$qqr23Mparithtypes@TMPIntegeri * работает крайне медленно (чего ещё ждать от скриптов), я всё же надеялся, что создаются sig-файлы, а не bin, который потом накладывается с помощью скрипта * сигнатуры включают не хэши, а всю процедуру целиком, видимо кроме фиксапов и адресов, что увеличивает размер сигнатуры * FLIRT объективно мощнее, так как адекватно реагирует на изменения, которые могли возникнуть под действием разных факторов, ему не нужно 100% сходство * скрипт ищет процедуры и сравнивает их с базой, т.е. если процедура не была создана анализатором IDA или вручную, то она и не распознается |
|
Создано: 14 октября 2010 13:19 · Поправил: Rustem · Личное сообщение · #18 |
|
Создано: 14 октября 2010 15:23 · Личное сообщение · #19 int пишет: Я видел живой пример использования твоих сигнатур. Вот какие минусы были выявлены: * не сохраняются типы в именах функций, например (либо потому, что Делфи, либо автор сигны сделал MAP с неверными параметрами) В каком смысле типы в именах функций ? Типы в mangled-кодировании имени ? Или параметры вызова ? Если параметры, то это нужно в сторону .til библиотек копать ... Правда начальная поддержка объектов (классов) заявлена только в 6 версии tilib. Но если задать имя функции в mangled-кодировании может и получится ... |
|
Создано: 14 октября 2010 15:31 · Личное сообщение · #20 awoland пишет: Типы в mangled-кодировании имени именно Rustem Да забыл сказать о плюсах. Тупой флирт (не смотря на всего его плюсы) не распознал три функции ("руками" их распознать было бы сложно). Две функции обозвал неправильно (они очень короткие, наверно виноват автор сигнатуры). В общем вопрос по сигнам для StreamSec снимается! Всем кто помог огромная благодарность! |
|
Создано: 14 октября 2010 21:35 · Личное сообщение · #21 int пишет: Тупой флирт не распознал Нет, флирт не тупой. Это мы его тупо юзаем, не используя все возможности. Обычно все эти плагины и скрипты, которые генерят pat файл сигнатур для пропускания через flair, используют только начальные + конечные байты + crc. А там ведь можно еще кодировать что по такому-то смещению в функции встречается вызов функции с таким-то именем. Я например ни разу не видел чтобы кто-то это в сигнатуры выносил. Но в то же время я не могу сказать использует ли ида эту инфу. А если и использует, то как именно. Никакого лога, только уличная магия под названием flirt. И я не могу сказать насколько хорошо работает flirt, или насколько качественны сигнатуры. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 14 октября 2010 21:49 · Личное сообщение · #22 |
|
Создано: 15 октября 2010 17:17 · Поправил: Hexxx · Личное сообщение · #23 О!!! Я нашел! Запускаем иду с ключем -zFFFFFFFF это врубает отладочный лог. И тогда оно пишет лог того как применяет сигнатуры: Code:
----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 24 октября 2010 00:56 · Личное сообщение · #24 Вопрос: как задать имя или тип функции так, чтобы явно указать параметр через регистры? Обычно IDA+HexRays сами догадываются, какие регистры являются параметрами, но вот если смесь параметров-регистров и параметров через стэк... Добавлено: Справка рулит: int __usercall func<ebx>(int x, int y<esi>); Без __usercall и строгого соответствия формату не бралось (если не указать регистр для возвращаемого значения, например). |
|
Создано: 24 октября 2010 03:27 · Поправил: reversecode · Личное сообщение · #25 int это кстати раньше в топике уже обсуждали, где Y указание параметров функции notif: случайно обнаружил почему же hexrays обрезает некоторые функции при анализе, хотя окончание функции гараздо дальше, и стек не сломан(Alt+K не спасает) оказывается IDA на некоторых не возратных функциях (к примеру assert, ....) ставит флаг NO_RETURN хексрейс прерывает анализ функции если в теле функции встречается под функция с таким флагом вобщем то исправляется легко, Alt+P и снимается этот флаг NO_RETURN и исчезает разделитель - - - - - - - - - - - - - - в теле функции IDA непонятно нафига сама IDA анализирует этот флаг и ламает тело кода через него хотя флаг безусловно полезный, но только для нужд юзера, и отдаватся на его усмотрение |
|
Создано: 28 октября 2010 20:12 · Личное сообщение · #26 |
|
Создано: 28 октября 2010 22:27 · Личное сообщение · #27 |
|
Создано: 28 октября 2010 22:32 · Личное сообщение · #28 |
|
Создано: 29 октября 2010 06:56 · Личное сообщение · #29 подскажите, при использовании IDA можно ли както отдебажить потомка созданного внутри родительского процесса? Что пытаюсь сделать. Есть программулина, она выполняет кучу операций, а затем запускает потомка при помощи fork(который является демоном), сама выходит. Как можно при отладке перейти во внутрь потомка? Ну или хотябы узнать где будет точка входа в дочерний процесс? |
|
Создано: 29 октября 2010 10:33 · Личное сообщение · #30 А как интерпритировать вот такие заумные функции выдаваемые ИДА ? Code:
|
|
Создано: 29 октября 2010 10:45 · Личное сообщение · #31 |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >> |
eXeL@B —› Основной форум —› Использование IDA Pro |
Эта тема закрыта. Ответы больше не принимаются. |