IDA Pro 5.0 - график слишком велик (более 1000 узлов) для отображения на экране

Я пытаюсь разобрать огромную функцию, но IDA отказывается отображать график функции из-за ее размера.

введите здесь описание изображения

Как настроить IDA 5.0 для отображения более 1000 узлов?


person shleimel    schedule 14.08.2014    source источник
comment
После некоторого копания оказалось, что в более поздних версиях IDA можно настроить параметр в разделе «Параметры» -> «Общие» -> «График» -> «Макс. узлы». Однако в бесплатной версии эти опции не были представлены. Надеюсь, это поможет.   -  person shleimel    schedule 14.08.2014


Ответы (1)


Это для бесплатной версии, которая не позволяет настраивать порог.

1) Откройте саму IDA (idaq.exe) в IDA.
2) Зайдите в окно строк, ищите "The graph is too big" и найдете строку формата, которая отвечает за сообщение.
3) Перейти к перекрестной ссылке.
4) Несколькими строками выше инструкции, которая проталкивает строку формата, мы видим "cmp eax, 3E8h". Поскольку 3E8h равно 1000 в десятичном виде, мы можем быть уверены, что это та часть кода, которая проверяет количество узлов, а затем не отображает график, если количество узлов превышает 1000.
5) Теперь есть много способов исправить это. Мы могли бы просто изменить инструкцию "jbe" на "jmp" или заменить 3E8h на большее число, такое как FFFFFFFFh.
6) Поскольку мы не можем исправить файл в IDA, мы должны использовать шестнадцатеричный редактор, чтобы открыть его. idaq.exe. Ищем инструкцию "3D E8 03 00 00" и находим локацию (она у меня на 150EF). Для меня я просто изменил "E8 03" на "FF FF".

И вот оно, снятие этого произвольного ограничения.

person Euler    schedule 26.07.2015