Я пытаюсь разобрать огромную функцию, но IDA отказывается отображать график функции из-за ее размера.
Как настроить IDA 5.0 для отображения более 1000 узлов?
Я пытаюсь разобрать огромную функцию, но IDA отказывается отображать график функции из-за ее размера.
Как настроить IDA 5.0 для отображения более 1000 узлов?
Это для бесплатной версии, которая не позволяет настраивать порог.
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".
И вот оно, снятие этого произвольного ограничения.