![]() |
eXeL@B —› Вопросы новичков —› Построение графа |
Посл.ответ | Сообщение |
|
Создано: 15 октября 2013 18:56 · Личное сообщение · #1 |
|
Создано: 16 октября 2013 11:31 · Личное сообщение · #2 Нет. Эта версия не умеет. Только графы кода функции целиком, ссылки к и от функции(xrefs to, from), графы колстеков и модулей(не нашёл в чём отличия от xrefs from). Недостаток - код для желаемого графа должен быть проанализирован, чего часто не добиться в существующих версиях olly. Поэтому альтернативы ida пока нет ----- IZ.RU ![]() |
|
Создано: 16 октября 2013 18:54 · Личное сообщение · #3 DenCoder, спасибо! XRefs, Flowchart - совсем не работают, когда нахожусь в секции другой, чем с OEP. Предлагает выполнить анализ кода. А зачем? когда видны вызовы типа USER32.GetDlgItem! И лишь опция call graph строит, да и то для секции с OEP, анализ которой мне совсем не нужен! А было бы здорово, если бы работало как в Иде! ![]() |
|
Создано: 16 октября 2013 21:19 · Личное сообщение · #4 |
|
Создано: 17 октября 2013 09:19 · Поправил: crypto · Личное сообщение · #5 |
|
Создано: 17 октября 2013 19:07 · Личное сообщение · #6 Isaev Привычки к Иде нет. Хотя вот запустил. И её контекстная опция "Create function" ,похоже, решает задачу - граф строится и для другой секции. Дело у меня усложняется тем, что при рестарте адреса ряда секций с кодом меняются - значение мл. слова сохраняется, а у старшего - изменяется. Ну, да ладно. crypto Часть программы написана на С/C++ - как видно по специфическим функциям. А код защиты, а это очень много, скорее всего - на ассемблере. ![]() |
|
Создано: 24 октября 2013 19:26 · Личное сообщение · #7 Запустил, но оказывается всё не совсем как надо! Самая важная секция в Иде автоматом при старте не анализируется. У меня в ней на инструкции "100053В4 CALL 1000652B" в OllyDbg стоит ВР . Установил и в Иде ВР на 100053В4, запустил программу, а она проскочила её. В Иде в окрестности этой точки - цифры. Сделал анализ с этого адреса - получил ерунду. Попытался сделать анализ для всей секции через меню Edit - не получилось. Она анализирует только начальный кусок. Пытался выделить всю секцию, и сделать анализ - не получилось. При старте программы этой секции. да и многих других, нет, появляется после запуска Debagger'a. Секция является магистралью. Из неё идет большое число межсекционных переходов. А адреса начала и конца этой секции в OlyDbg и Иде совпадают. В Иде выравнивание - byte, base: 0000, а что в OllyDbg мне не известно. Подскажите, пожалуйста, как заставить Иду делать самой анализ секций с кодом, если, конечно, это возможно. Или здесь надо делать что другое? ![]() |
|
Создано: 25 октября 2013 02:18 · Поправил: Dr0p · Личное сообщение · #8 |
|
Создано: 25 октября 2013 02:33 · Личное сообщение · #9 |
|
Создано: 25 октября 2013 16:16 · Личное сообщение · #10 |
|
Создано: 25 октября 2013 17:05 · Личное сообщение · #11 |
|
Создано: 25 октября 2013 17:23 · Личное сообщение · #12 |
|
Создано: 25 октября 2013 19:03 · Личное сообщение · #13 Я попытаюсь более подробнее сказать о программе. Программа сильно защищена. Вначале она распаковывается. Потом от ОЕР до главного окна отладчику надо преодолеть типичные зацепки вида IsDebuggerPresent, NtGlobalFlag и т.п., с чем успешно справляются также стандартные для этого плагины OllyDbg. Затем открывается главное окно, потом диалоговое окно для ввода имени и кода. Я перехватил момент, где данные уже считались из их полей. Это точка 100053В4. Далее на 100067СА выводится сообщение, что код неверный. Моя задача подойти как можно ближе ко 2-й точке, что сделать совсем не просто. Секция, которая включает эти точки, для кода начинается с 10001000, и является магистралью на которую навешено большое число других частных секций, на некоторых видны таймеры. В целом это дерево с навешанными ветвями является антиотладочным построением, которое простой трассировой не удаётся преодолеть - имеются ловушки из которых выход только через рестарт. Вот я и попытался обратиться к графам. Построить хотел граф входов/выходов на участке 100053В4 - 100067СА. Кажется, при первом запуске Иды я получал осмысленный код для этой секции, и даже какой-то граф. А теперь и код не получаю! Удалял её файл *.idb, и заставил её по новой создать - всё по-прежнему! Не дизассемблирует - пишет какие-то цифры. ![]() |
|
Создано: 25 октября 2013 19:09 · Поправил: reversecode · Личное сообщение · #14 |
|
Создано: 27 октября 2013 15:48 · Личное сообщение · #15 Да, в Иду я запускаю дамп! Сделать его было не трудно, т.к. таблица IAT является хорошей. Посмотрел внимательно как Ида дизассемблирует эту секцию 10001000 и сравнил с OllyDbg на чём она спотыкается. Вот стою я на самом начале, даю Edit->Code - создаётся примерно 5 правильных инструкций. Встаю на следующую строчку после правильной, Edit->Code - ещё создается 3 - 5 строчек. В принципе так можно дизассемблировать всю секцию. Но её длина равна 10000h. А останавливается Ида на jmp к частной секции, адрес которой при рестарте сменится. Секция 10001000 является деревом с ветвями из других изменяемых секций. Проблема, видимо, в том, что Ида видит изменение адресной части инструкции, и поэтому останавливается на ней. OllyDbg на такие мелочи не обращает внимания! Пытался убрать файл базы - так она вместо одного создаёт целую кучу! Она где-то ещё внутри хранит, видимо, т.к. после переименования файла, на нажатие кл. g - она предлагает мне адреса этой самой секции. ![]() |
|
Создано: 27 октября 2013 16:04 · Личное сообщение · #16 может уже файл выкладывайте или базу, а то я с трудом начинаю понимать чистый поток мыслей ![]() |
|
Создано: 27 октября 2013 16:45 · Личное сообщение · #17 |
|
Создано: 31 октября 2013 18:59 · Личное сообщение · #18 |
![]() |
eXeL@B —› Вопросы новичков —› Построение графа |
Эта тема закрыта. Ответы больше не принимаются. |