Сейчас на форуме: -Sanchez-, barsik, vasilevradislav, vsv1 (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Построение дерева вызовов функций в IDA
Посл.ответ Сообщение

Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 января 2008 18:34
· Личное сообщение · #1

Доброго времени суток всем!
Такой вопрос хотелось бы обсудить: есть IDA, есть некая программа в ней есть некая функция F(x,...) которая хрен знает откуда вызывается (точнее я не нашел при каких условиях она вызывается), продираться по х-рефам вверх от нее нереально, их слишком много. Суть вопроса в следующем: как, скажем, в IDA построить дерево вызовов (х-рефов) от одной функции к другой (от A(x,...) до F(x,...))



Ранг: 10.9 (новичок)
Активность: 0=0
Статус: Участник

Создано: 21 января 2008 20:04
· Личное сообщение · #2

скрипты в помощь...




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 21 января 2008 23:38
· Личное сообщение · #3

gloomyraven, это проще отладчиком проверить - поставь breakpoint.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 января 2008 00:16
· Личное сообщение · #4

а стандартный граф чем не устраивает? я про тот, который строится в WinGraph32 и вызывается клавишами с F12.
На тулбаре кнопка с подписью "Display chart of xrefs to current identifier".

-----
EnJoy!




Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 января 2008 09:21
· Личное сообщение · #5

nobodyzzz
Да, про скрипты я и говорю, но времени их писать нету. Может есть что-нть готовое.
В ИДЕ есть встроенные функции построения деревьев вызовов, строит в WinGraph32 - очень неудобно и к тому же строит полное дерево вызовов

s0larian
говорю же, в эту самую функцию просто так не попасть, только через серию условных переходов.



Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 января 2008 09:22
· Личное сообщение · #6

Jupiter
да видел я его, но он полностью строит граф
Может можно сделать так, чтобы строил только нужную ветку дерева?



Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 января 2008 11:19
· Личное сообщение · #7

Вощем понятно... Либо использовать корявые функции иды, либо самому делать. Только подскажите, что проще: ida sdk или скрипты idc?



Ранг: 10.9 (новичок)
Активность: 0=0
Статус: Участник

Создано: 23 января 2008 14:23
· Личное сообщение · #8

попробуй IDAPython. посмотри https://www.openrce.org/articles/full_view/11 есть нечно похожее



Ранг: 4.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 марта 2008 23:26
· Личное сообщение · #9

gloomyraven, не такие уж там и корявые ф-ии. Выбор скриптов или плагинов зависит от знаний и поставленных целей, в виде плагина это сделать проще. имхо.

PS. идея хорошая, если Ильфак в новой версии такую фичу ещё не прикрутил -- можно заняться.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 марта 2008 11:33
· Личное сообщение · #10

gloomyravengloomyraven пишет:
да видел я его, но он полностью строит граф

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


 eXeL@B —› Крэки, обсуждения —› Построение дерева вызовов функций в IDA
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати