Сейчас на форуме: -Sanchez- (+8 невидимых)

 eXeL@B —› Основной форум —› Использование IDA Pro
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >>
Посл.ответ Сообщение

Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 августа 2008 18:53
· Личное сообщение · #1

Здесь предлагаю обмениваться опытом использования, настройки этой тулзы.

Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? )

-----
My love is very cool girl.




Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 21 апреля 2011 12:30
· Личное сообщение · #2

gloomdemon пишет:
Edit Breakpoint -> Condition
и там пишешь без точки с запятой

точно, я об этом и не подумал)

gloomdemon пишет:
в блоге у ильфака есть примеры

имеешь в виду hexblog.com? посмотрел что там, но не нашел что-то ничего про это

еще вопрос, можно ли из idc скрипта запустить другой idc скрипт и как это сделать? изучил список функций, но нужной для этого не разглядел



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 21 апреля 2011 13:45 · Поправил: gena-m
· Личное сообщение · #3

_ruzmaz_
можно ли из idc скрипта запустить другой idc скрипт

Насколько помнится нельзя, да это и не нужно, поскольку нужные скрипты можно заинклудить и использовать функкции, входящие в их состав более гибко, нежели отдельные скрипты, в качестве примера можно посмотреть набор "Pe_scripts".

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше


| Сообщение посчитали полезным: _ruzmaz_

Ранг: 18.2 (новичок), 8thx
Активность: 0.010
Статус: Участник

Создано: 21 апреля 2011 17:21
· Личное сообщение · #4

_ruzmaz_
Прям готовой, насколько я знаю, нет, есть функция Eval, через нее можно выражения idc выполнять, можно написать парсер =)

| Сообщение посчитали полезным: _ruzmaz_

Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 22 апреля 2011 21:50
· Личное сообщение · #5

а ида загружает автоматически какую-нибудь инфу из idb баз модулей, которые загружаются при выполнении отлаживаемой всё той же идой программы, если idb лежит рядом с модулем, или нет? я что-то не замечал, можт нужен какой-то манёвр)?



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 22 апреля 2011 22:59 · Поправил: gena-m
· Личное сообщение · #6

_ruzmaz_
а ида загружает автоматически какую-нибудь инфу из idb баз модулей

Что то вопрос некорректный: idb - это и есть файл анализа ИДА, другими словами этот файл она создает при закрытии, и соответственно Вы его открываете, если хотите повторно вернутся к анализу, а отладчик запускаете потом, после его загрузки, непонятно зачем к нему обращаться еще раз. И почему во множественном числе, база создается одна для одной анализируемой программы, правда если поизвращатся можно засунуть несколько программ (или dll) в один idb, но в определенный момент времени открыт только один idb и ИДА к нему не обращается поскольку он загружается в память и ИДА работаетс с образом находящимся в памяти.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 22 апреля 2011 23:19 · Поправил: _ruzmaz_
· Личное сообщение · #7

gena-m пишет:
Что то вопрос некорректный: idb - это и есть файл анализа ИДА, другими словами этот файл она создает при закрытии, и соответственно Вы его открываете, если хотите повторно вернутся к анализу, а отладчик запускаете потом, после его загрузки, непонятно зачем к нему обращаться еще раз.

Ну вот открывал я в иде какую-то длл, создалась база рядом с длл, в той базе у меня, например, некоторые функции переименованы, комментарии ну и еще что-нибудь. Потом открываю екзешник в иде, ну и отлаживаю его (в иде=), по мере выполнения проги, та длл, которую я анализировал ранее, подгружается. В некоторый момент прога останавливается (бряк, например) и я, допустим, хочу посмотреть код той длл, бряк там где-нибудь поставить, и вот когда я работаю с кодом из той длл во время отладки (код длл не меняется никак, ну с точностью до релоков) очень неплохо было бы видеть мои имена функций, мои каменты и т.д.



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 22 апреля 2011 23:28 · Поправил: gena-m
· Личное сообщение · #8

Воо, ситуация проясняется. Нужно в начале загрузить программу для анализа, затем подгрузить библиотеки в этот же сеанс (в меню Файл пункт "Загрузить файл" на следующей вкладке "Добавить бинарный файл"и т.д.), провести какое то шаманство, и в результате у Вас на выходе будет только один idb, содержащий программу и все библиотеки которые Вы подгрузили. Это удобно делать с помощю того же набора, который я упоминал выше - "Pe_scripts".

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше


| Сообщение посчитали полезным: _ruzmaz_

Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 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)?



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 23 апреля 2011 20:59
· Личное сообщение · #10

Со скриптами не все так просто, там по моему вначале нужно запустить pe_sections.idc, затем pe_dlls.idc, в результате будет загружен хидер библиотеки затем что то еще нужно делать, уже не помню, я переделывал их когдато"под себя", но где то потерял, а через бинарный файл, прийдется дампить библиотеку и загружать каждую секцию отдельно в виде бинарных дампов, иначе она будет в виде одного блока данных, тем более что хидер от нее не нужен. Попробую завтра допилить набор и сообщу в личку.
По поводу плавающих адресов не сталкивался, поскольку у меня ХРюшка 32.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 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



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 25 апреля 2011 14:43 · Поправил: Usulgurt
· Личное сообщение · #12

Сталкнулся на днях с WATCOM __fastcall конверсией где идёт передача через
eax, edx, ebx, ecx
И не знаю теперь как IDA-Hexray заставить правильно отображал эти данные.
CLOSED



Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 27 апреля 2011 20:37 · Поправил: _ruzmaz_
· Личное сообщение · #13

GenerateFile() что-то не хочет работать - результат -1 стабильно при самых разных параметрах (ида про 5.5, вин хр)
в чем может быть дело?

obfuskator
ааа... ))



Ранг: 30.5 (посетитель), 5thx
Активность: 0.010
Статус: Участник

Создано: 27 апреля 2011 22:21 · Поправил: obfuskator
· Личное сообщение · #14

попробуй так вроде все работает

Code:
  1. #include <idc.idc>
  2.  
  3. static main()
  4. {
  5.          auto f, addr;
  6.          f = fopen("file.txt","wt");
  7.          addr=ScreenEA();
  8.          GenerateFile(4,f,addr,addr+100,0x0002);
  9. }


| Сообщение посчитали полезным: _ruzmaz_

Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 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(""), то претензии уже к тому, что передается параметр, а у функи их нет. Это что за хрень, знает кто?

4d44_02.05.2011_EXELAB.rU.tgz - ExecIdc.py



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 23 мая 2011 07:08 · Поправил: Usulgurt
· Личное сообщение · #16

Такой баг подмечен при декомпиляции:
IDA делает некоторую функцию, но после некоторого CALL XXXX в ней он ставит маркер завершения функции. А дальше байты не дизассемблирует. После того как вручную это дело поправить. Появляется черта ; ------------------------------------------. И hexrays за этой границей перестаёт декомпилировать. Есть выход?




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 23 мая 2011 07:30
· Личное сообщение · #17

Нужно еще изменить адрес конца ф-ии вручную. (Alt-P)

-----
Лучше быть одиноким, но свободным © $me




Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 23 мая 2011 12:18 · Поправил: Usulgurt
· Личное сообщение · #18

Значит быстрая клавиша "E" для установки конца функции сделана некорректно?

Вот суть проблемы

--> Link <--




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 23 мая 2011 12:33
· Личное сообщение · #19

Usulgurt
17 страниц, Использование IDA Pro
перечитайте все, уже обсуждалось



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 23 мая 2011 15:10 · Поправил: Usulgurt
· Личное сообщение · #20

reversecode пишет:
перечитайте все, уже обсуждалось


Ага обсуждалось, только никто тебе не ответил...

На сообщение
27 июля 2009 14:49:02
на 5-ой странице




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 23 мая 2011 15:53 · Поправил: reversecode
· Личное сообщение · #21

я потом сам себе ответил
вообще наверное лучше если некий faq по ida будет ввиде аля wiki
а то за обсуждениями теряются ответы

ps это не бага, это умение пользоватся инструментом



Ранг: 18.2 (новичок), 8thx
Активность: 0.010
Статус: Участник

Создано: 23 мая 2011 15:54
· Личное сообщение · #22

Usulgurt
Все она корректно сделано, как вариант просто бага конкретной версии иды. Версия какая? На 5.7 и на 6.0 ни разу такого не встречал.



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 23 мая 2011 17:14
· Личное сообщение · #23

Версия 5.5.0.925t



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 24 мая 2011 16:34
· Личное сообщение · #24

а есть ли ресурс где достаточно большой набор скриптов для IDA на python написанных? меня интересует момент насчет возможности работы со структурами !? поддерживаю идею насчет обобщения и создания б.д. по скриптам IDA!!!




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 24 мая 2011 22:35 · Поправил: AKAB
· Личное сообщение · #25

Нужна помощь: Как загрузитьScript в IDA Pro
Need Help : How to Load Script in IDA Pro



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 24 мая 2011 23:05
· Личное сообщение · #26

AKAB
Как загрузитьScript в IDA Pro


Файл-> IDC файл-> выбираешь нужный скрипт. После загрузки и запуска на выполнение скрипта будет окошко где можно выбирать редактировать его или запускать.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше


| Сообщение посчитали полезным: AKAB

Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 25 мая 2011 17:36
· Личное сообщение · #27

Народ кто нибудь сталкивался с необходимостью замера времени выполнения функции в IDA, есть скрипты или какие наработки по этому поводу?



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 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); }
};



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 27 мая 2011 12:14 · Поправил: sats
· Личное сообщение · #29

Usulgurt чтото не хочет идти))) ладно попробую разобраться с параметрами. тут вот еще какой вопрос есть скрипт который позволяет MSDN базу API перегонять под IDA однако скрипт написанный на питоне почему то материться https://github.com/zynamics/msdn-crawler - у кого нибудь готовый xml файл после прогона этого скрипта есть? или кто может разобраться почему стандартная функция translate в нем не хочет принимать 2 параметр!?
с translate разобрался... оказываеться о версии компилятора зависит этот трабл. скачал полее раний и все пошло...но все равно функции не парсяться в XML.
связался с автором он обновил версию теперь вроде все работает



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 30 мая 2011 11:29
· Личное сообщение · #30

sats пишет:
Usulgurt чтото не хочет идти)))

Я же тебе кода показал из IDASDK 5.6,а у тебя может быть другая версия.



Ранг: 117.5 (ветеран), 5thx
Активность: 0.080.01
Статус: Участник

Создано: 30 мая 2011 17:26
· Личное сообщение · #31

))) не SDK 5.6 ... там сам затупил. сейчас потихоньку попробую кое что скоректировать чтобы заработало


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати