Сейчас на форуме: -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. ![]() |
|
Создано: 21 апреля 2011 12:30 · Личное сообщение · #2 gloomdemon пишет: Edit Breakpoint -> Condition и там пишешь без точки с запятой точно, я об этом и не подумал) gloomdemon пишет: в блоге у ильфака есть примеры имеешь в виду hexblog.com? посмотрел что там, но не нашел что-то ничего про это еще вопрос, можно ли из idc скрипта запустить другой idc скрипт и как это сделать? изучил список функций, но нужной для этого не разглядел ![]() |
|
Создано: 21 апреля 2011 13:45 · Поправил: gena-m · Личное сообщение · #3 _ruzmaz_ можно ли из idc скрипта запустить другой idc скрипт Насколько помнится нельзя, да это и не нужно, поскольку нужные скрипты можно заинклудить и использовать функкции, входящие в их состав более гибко, нежели отдельные скрипты, в качестве примера можно посмотреть набор "Pe_scripts". ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 21 апреля 2011 17:21 · Личное сообщение · #4 _ruzmaz_ Прям готовой, насколько я знаю, нет, есть функция Eval, через нее можно выражения idc выполнять, можно написать парсер =) ![]() |
|
Создано: 22 апреля 2011 21:50 · Личное сообщение · #5 |
|
Создано: 22 апреля 2011 22:59 · Поправил: gena-m · Личное сообщение · #6 _ruzmaz_ а ида загружает автоматически какую-нибудь инфу из idb баз модулей Что то вопрос некорректный: idb - это и есть файл анализа ИДА, другими словами этот файл она создает при закрытии, и соответственно Вы его открываете, если хотите повторно вернутся к анализу, а отладчик запускаете потом, после его загрузки, непонятно зачем к нему обращаться еще раз. И почему во множественном числе, база создается одна для одной анализируемой программы, правда если поизвращатся можно засунуть несколько программ (или dll) в один idb, но в определенный момент времени открыт только один idb и ИДА к нему не обращается поскольку он загружается в память и ИДА работаетс с образом находящимся в памяти. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 22 апреля 2011 23:19 · Поправил: _ruzmaz_ · Личное сообщение · #7 gena-m пишет: Что то вопрос некорректный: idb - это и есть файл анализа ИДА, другими словами этот файл она создает при закрытии, и соответственно Вы его открываете, если хотите повторно вернутся к анализу, а отладчик запускаете потом, после его загрузки, непонятно зачем к нему обращаться еще раз. Ну вот открывал я в иде какую-то длл, создалась база рядом с длл, в той базе у меня, например, некоторые функции переименованы, комментарии ну и еще что-нибудь. Потом открываю екзешник в иде, ну и отлаживаю его (в иде=), по мере выполнения проги, та длл, которую я анализировал ранее, подгружается. В некоторый момент прога останавливается (бряк, например) и я, допустим, хочу посмотреть код той длл, бряк там где-нибудь поставить, и вот когда я работаю с кодом из той длл во время отладки (код длл не меняется никак, ну с точностью до релоков) очень неплохо было бы видеть мои имена функций, мои каменты и т.д. ![]() |
|
Создано: 22 апреля 2011 23:28 · Поправил: gena-m · Личное сообщение · #8 Воо, ситуация проясняется. Нужно в начале загрузить программу для анализа, затем подгрузить библиотеки в этот же сеанс (в меню Файл пункт "Загрузить файл" на следующей вкладке "Добавить бинарный файл"и т.д.), провести какое то шаманство, и в результате у Вас на выходе будет только один idb, содержащий программу и все библиотеки которые Вы подгрузили. Это удобно делать с помощю того же набора, который я упоминал выше - "Pe_scripts". ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 23 апреля 2011 19:16 · Поправил: _ruzmaz_ · Личное сообщение · #9 gena-m пишет: Это удобно делать с помощю того же набора, который я упоминал выше - "Pe_scripts". Запускал pe_dlls.idc, но он у меня ругается стабильно "Unable to create the <имя_длл>_S_MZ_HEADER structure!". Скрипт пытается создать структурный тип с точкой в имени (например, KERNEL32.DLL_S_MZ_HEADER), однако, у меня по крайней мере, в иде про 5.5 создать структурный тип, в имени которого присутствует точка, что-то не получается (пытался создавать вручную). Так каким там бубном надо воспользоваться? ![]() Нашел, кстати, про несколько файлов в одном idb http://www.hexblog.com/?p=6 http://www.hexblog.com/?p=7 Касательно обоих вариантов один вопрос - а что делать, если какие-то из длл, добавленных одним из этих методов в базу, при следующей отладке будут загружены по другим адресам (нежели тем, по которым эти длл были загружены в базу скриптами в варианте 1, или тем, по которым они грузились в память при отладке, когда создавался снимок памяти, в варианте 2)? ![]() |
|
Создано: 23 апреля 2011 20:59 · Личное сообщение · #10 Со скриптами не все так просто, там по моему вначале нужно запустить pe_sections.idc, затем pe_dlls.idc, в результате будет загружен хидер библиотеки затем что то еще нужно делать, уже не помню, я переделывал их когдато"под себя", но где то потерял, а через бинарный файл, прийдется дампить библиотеку и загружать каждую секцию отдельно в виде бинарных дампов, иначе она будет в виде одного блока данных, тем более что хидер от нее не нужен. Попробую завтра допилить набор и сообщу в личку. По поводу плавающих адресов не сталкивался, поскольку у меня ХРюшка 32. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 23 апреля 2011 21:11 · Поправил: _ruzmaz_ · Личное сообщение · #11 gena-m пишет: По поводу плавающих адресов не сталкивался, поскольку у меня ХРюшка 32. релоцирование (в случае, если базовый адрес, указанный в заголовке длл, или/и его окрестности, уже заняты) имел в виду в данном случае, у меня хрюша той же породы собственно думаю есть вариант подгрузки нужной инфы о длл, загружаемых во время отладки, учитывающий релоцирование, но без добавления в idb: - анализируем нужную длл в иде, после анализа дампим базу в idc скрипт - в полученном idc каментим или удаляем #define UNLOADED_FILE 1 в начале скрипта и GenInfo(); в main() - в этом же idc правим (с помощью проги, скрипта или можт плага) имена, фигурирующие при вызовах MakeName(), таким образом, чтоб точно не было совпадений с именами в idb базе экзешника (при отладке которого грузица указанная выше длл) и с именами из idc, которые будут таким же образом сдамплены и выполнены позже - отлаживаем экзешник в иде, перед отладкой отключаем анализ - при достижении нужного бряка, либо после остановки вручную, запускаем (вручную или автоматически) скрипт или idc команду, которая скорректирует в сдампленном idc адреса, фигурирующие при вызовах MakeCode(), MakeComm() и т.п., с учетом разницы между базой из заголовка и реальной базой, а также имена функций типа sub_1432C00 в вызовах MakeName(), ну и еще что-нибудь такое - после правки сдампленного idc выполняем (вручную или например из скрипта, описанного в предыдущем пункте) этот самый сдампленный idc ![]() |
|
Создано: 25 апреля 2011 14:43 · Поправил: Usulgurt · Личное сообщение · #12 |
|
Создано: 27 апреля 2011 20:37 · Поправил: _ruzmaz_ · Личное сообщение · #13 |
|
Создано: 27 апреля 2011 22:21 · Поправил: obfuskator · Личное сообщение · #14 попробуй так вроде все работает Code:
![]() |
|
Создано: 02 мая 2011 00:08 · Поправил: _ruzmaz_ · Личное сообщение · #15 есть ли какой-нибудь конвертор из idc в питон, или хотя бы из си в питон? но только не онлайн-сервис, а скрипт или прога (опенсорс желательно) upd: Ладно, фиг с ним, с конвертором - нашел таки способ запустить idc скрипт, но не из idc, а из питоновского скрипта: вызов из питоноскрипта функи ExecuteFile (с параметрами подробно я не разбирался), экспортируемой ida.wll ![]() Приаттачил тут небольшой скрипт - функа ExecIdc (из него) принимает как параметр имя idc файла (при этом, считается, что idc файл находится в папке idc скриптов) и запускает функу main() из этого idc (можно также любую другую функцию без параметров). Тестил на ида про 5.5, вин хр х86 - работает вроде нормально. Правда, есть минус - если происходит ошибка, если, например, idc файл не найден, то потом ида может не закрыца нормально) Столкнулса с таким эффектом: если в питоновском выражении каком-то вызывать idc.GetIdaDirectory() (без параметров, как и указано в доках), то питон ругается, что должен быть один параметр, а у вас 0, но если выполнить, например, idc.GetIdaDirectory(""), то претензии уже к тому, что передается параметр, а у функи их нет. Это что за хрень, знает кто? ![]() ![]() |
|
Создано: 23 мая 2011 07:08 · Поправил: Usulgurt · Личное сообщение · #16 Такой баг подмечен при декомпиляции: IDA делает некоторую функцию, но после некоторого CALL XXXX в ней он ставит маркер завершения функции. А дальше байты не дизассемблирует. После того как вручную это дело поправить. Появляется черта ; ------------------------------------------. И hexrays за этой границей перестаёт декомпилировать. Есть выход? ![]() |
|
Создано: 23 мая 2011 07:30 · Личное сообщение · #17 |
|
Создано: 23 мая 2011 12:18 · Поправил: Usulgurt · Личное сообщение · #18 Значит быстрая клавиша "E" для установки конца функции сделана некорректно? Вот суть проблемы ![]() |
|
Создано: 23 мая 2011 12:33 · Личное сообщение · #19 |
|
Создано: 23 мая 2011 15:10 · Поправил: Usulgurt · Личное сообщение · #20 |
|
Создано: 23 мая 2011 15:53 · Поправил: reversecode · Личное сообщение · #21 |
|
Создано: 23 мая 2011 15:54 · Личное сообщение · #22 |
|
Создано: 23 мая 2011 17:14 · Личное сообщение · #23 |
|
Создано: 24 мая 2011 16:34 · Личное сообщение · #24 |
|
Создано: 24 мая 2011 22:35 · Поправил: AKAB · Личное сообщение · #25 |
|
Создано: 24 мая 2011 23:05 · Личное сообщение · #26 AKAB Как загрузитьScript в IDA Pro Файл-> IDC файл-> выбираешь нужный скрипт. После загрузки и запуска на выполнение скрипта будет окошко где можно выбирать редактировать его или запускать. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 25 мая 2011 17:36 · Личное сообщение · #27 |
|
Создано: 25 мая 2011 20:50 · Поправил: Usulgurt · Личное сообщение · #28 Кажется вот этим можно мерить. struct hit_counter_t; idaman void ida_export reg_hit_counter(hit_counter_t *, bool do_reg); idaman hit_counter_t *ida_export create_hit_counter(const char *name); idaman void ida_export hit_counter_timer(hit_counter_t *, bool enable); void print_all_counters(const char *fname); struct hit_counter_t { const char *name; // name is owned by hit_counter_t // reg_hit_counter() allocates it int total, misses; uint64 elapsed; // number of elapsed counts uint64 stamp; // start time hit_counter_t(const char *_name) : name(_name), total(0), misses(0), elapsed(0) { reg_hit_counter(this, true); } virtual ~hit_counter_t(void) { reg_hit_counter(this, false); } // prints the counter to the message window and resets it virtual void print(void); // time functions void start(void) { hit_counter_timer(this, true); } void stop(void) { hit_counter_timer(this, false); } }; ![]() |
|
Создано: 27 мая 2011 12:14 · Поправил: sats · Личное сообщение · #29 Usulgurt чтото не хочет идти))) ладно попробую разобраться с параметрами. тут вот еще какой вопрос есть скрипт который позволяет MSDN базу API перегонять под IDA однако скрипт написанный на питоне почему то материться https://github.com/zynamics/msdn-crawler - у кого нибудь готовый xml файл после прогона этого скрипта есть? или кто может разобраться почему стандартная функция translate в нем не хочет принимать 2 параметр!? с translate разобрался... оказываеться о версии компилятора зависит этот трабл. скачал полее раний и все пошло...но все равно функции не парсяться в XML. связался с автором он обновил версию теперь вроде все работает ![]() |
|
Создано: 30 мая 2011 11:29 · Личное сообщение · #30 |
|
Создано: 30 мая 2011 17:26 · Личное сообщение · #31 |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >> |
![]() |
eXeL@B —› Основной форум —› Использование IDA Pro |
Эта тема закрыта. Ответы больше не принимаются. |