![]() |
eXeL@B —› Софт, инструменты —› IDA Pro 6 |
<< . 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 05 октября 2010 11:10 · Личное сообщение · #1 IDA Pro 6.0 Новые возможности ![]() Интерфейс новой IDA теперь использует библиотеку Qt. В связи с этим наконец-то можно в нормальном виде использовать её в макоси. Работа автора Explorer Suite (CFF Explorer), Даниэля Пистелли (Daniel Pistelli) не прошла даром! В новой версии будут присутствовать обе версии интерфейса: старый idag и новый idaq. Картинки для затравки (кликабельные): Интерфейс в Linux: ![]() Интерфейс в Mac OS: ![]() Интерфейс в Windows: ![]() Источник: Скачать IDA Pro 6: пока недоступно ----- EnJoy! ![]() |
|
Создано: 02 декабря 2010 19:31 · Личное сообщение · #2 |
|
Создано: 02 декабря 2010 23:15 · Личное сообщение · #3 |
|
Создано: 03 декабря 2010 00:04 · Личное сообщение · #4 |
|
Создано: 03 декабря 2010 09:14 · Личное сообщение · #5 |
|
Создано: 03 декабря 2010 10:54 · Личное сообщение · #6 К сожалению, первое, что бросается в глаза, относится к плохой новости. Ильфак, в шестой версии, заблокировал нашу лазейку по сохранению листинга кода через буфер обмена. То, что он сделал это только в последней версии, заставляет подозревать его в чтении наших предыдущих статей (см. erfaren.narod.ru), где мы описывали этот способ работы с дизассемблерным кодом ![]() ![]() ![]() ![]() |
|
Создано: 03 декабря 2010 11:42 · Личное сообщение · #7 |
|
Создано: 03 декабря 2010 12:20 · Личное сообщение · #8 PE_Kill пишет: А зачем нам 6 демоверсия если полюбас ее скоро(?) скардят и выложат? Если почитаете мои статьи, то поймете зачем. Меня интересует восстановление кода на уровне ассемблера. Т.е. чтобы дизассемблерный код можно было скомпилировать обратно и получить работоспособный бинарник без явных проблем. Зачем это делать это уже другой вопрос. Понятно, чем выше версия «Иды», тем лучше, как правило, качество дизассемблирования. Версия 5.7 demo в этом смысле меня устраивает полностью. Но раз есть версия 6.0, то грех ее не протестировать. Можно попытаться в шестерке воспользоваться скриптами, даже с учетом того, что Ильфак заблокировал функцию Code:
которая является макро обёрткой для функции Code:
Большую часть листинга я уже научился сохранять. В худшем случае, можно воспользоваться плагинами для сохранения и обработки листинга «Иды». Но боюсь, что Ильфак в следующих демо версиях отключит эти возможности ![]() ![]() |
|
Создано: 04 декабря 2010 07:30 · Личное сообщение · #9 |
|
Создано: 04 декабря 2010 10:04 · Личное сообщение · #10 Erfaren пишет: Если почитаете мои статьи, то поймете зачем. Меня интересует восстановление кода на уровне ассемблера. Т.е. чтобы дизассемблерный код можно было скомпилировать обратно и получить работоспособный бинарник без явных проблем. Почитал, так и не понял зачем именно демо версия. Или вы на любой вопрос отвечаете про ваши статьи, не важно какой вопрос задан? ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 04 декабря 2010 11:39 · Личное сообщение · #11 |
|
Создано: 04 декабря 2010 12:39 · Личное сообщение · #12 PE_Kill пишет: Почитал, так и не понял зачем именно демо версия. Или вы на любой вопрос отвечаете про ваши статьи, не важно какой вопрос задан? Хорошо, скажу кратко. Меня интересует качество дизассемблирования. Как правило, новая версия дизассемблирует лучше, чем старая. И демо здесь не ограничение. Ограничение состоит в невозможности сохранять и загружать результаты работы, ограничено время работы, количество используемых типов программ, но для Win32, все есть и т.п. по мелочам. Прежде всего, меня интересует дизассемблерный листинг. Сохраняя его через буфер обмена, я, в конце концов, научился получать корректный перекомпилированный бинарный файл. В последней статье приводится 10 подобных проектов, которые Вы можете протестировать сами. Мне удалось даже перекомпилировать и запустить почти трехсот килобайтный файл tsadmin.exe. Правда данные в правом окне пока не отображаются, однако сам факт запуска такой большой перекомпилированной программы лично меня впечатляет. Просто перекомпилировать удалось даже мегабайтную dll-ку comctl32.dll v.6.0. Некоторые ее экспортируемые функции удалось даже выполнить, однако до полного тестирования дело еще не дошло. Т.е. направление лично для меня очень интересное. Имея дело с многомегабайтными простынями дизассемблерного кода, очень важно иметь наиболее «свежую» «Иду», чтобы меньше корячится с исправлениями кода. Вот почему важна именно демо версия, потому, что последняя версия не «демой» и бесплатной быть не может. Это раз. А второе, зачем нужна коммерческая версия, если лично меня и демо устраивает по своим возможностям. ![]() |
|
Создано: 04 декабря 2010 12:59 · Личное сообщение · #13 sendersu пишет: и что мешает найти ету проверку и отрубить? заодно и с пиплами поделиться (идея) Ничего не мешает. Только этот метод я оставляю на крайний случай. Ведь я пишу статьи на подобные темы, и меня не прикалывают возможные придирки по нарушению «права аренды цифровой копии», точнее, «закона об интеллектуальной собственности». В данном случае решение можно получить с помощью скриптов и плагинов, что по разным причинам является более привлекательным. В скриптах есть хорошая функция GetCurrentLine(), которая работает и в шестой демо «Иде». Она возвращает строку листинга, в которой находится экранный курсор. Если бы удалось программно перемещать этот курсор по всему листингу, то проблема сохранения кода была бы решена мгновенно. Однако листинг «Иды» это не линейный набор строк, а «упакованное» плоское дерево, узлы которого могут содержать разные типы строк с данными и кодом. Так вот мы можем перемещаться программно между различными типами узлов, которые Ильфак называет «элементами». Но с помощью функции GetCurrentLine() может быть выведена только одна из строк узла. Чтобы «достучаться» до всех остальных строк, нужно обрабатывать флаги данного элемента. Эти флаги дают информацию о примерно десятке различных типов строк и массивов некоторых типов. Ко всем из них в принципе можно получить доступ, найдя в скриптовом движке походящую функцию данного типа строки или массива этого типа строк. Написанием подобного скрипта, я как раз и занимаюсь. Когда он будет готов, поделюсь кодом. Естественно, что для плагинов возможностей на порядок больше. Поэтому плагинами также собираюсь заняться всерьез. Обо всем этом и будет моя четвертая статья, на упомянутом выше сайте ![]() ![]() |
|
Создано: 04 декабря 2010 16:12 · Личное сообщение · #14 Erfaren пишет: Хорошо, скажу кратко. Меня интересует качество дизассемблирования. Как правило, новая версия дизассемблирует лучше, чем старая. а покажите пример в картинках? потому что я к примеру пользуюсь 5.2 и она меня устраивает и сравнивая всякие демо и не демо что на паблике новые версии ничем не лучше разве что флирт обновляется ![]() |
|
Создано: 04 декабря 2010 18:24 · Личное сообщение · #15 reversecode пишет: а покажите пример в картинках?потому что я к примеру пользуюсь 5.2 и она меня устраиваети сравнивая всякие демо и не демо что на пабликеновые версии ничем не лучшеразве что флирт обновляется Думаю, что Вы по-своему правы. Обычный пользователь не гоняет «Иду» на 100% ее возможностей. Я тоже использую обычно только майкрософтовские файлы под Win32. Впрочем, всегда можно глянуть исправленный баг-лист новой версии «Иды» и тогда сказать точно, нужна она или не очень. Однако чисто психологически в новой версии работать приятней. Вот, например, меня все время «задирал» Борландовский интерфейс «Иды». Сейчас они перешли на Qt и одно это вызывает удовлетворение. В сети есть полноценная версия 5,5 с хекс-рэйсом и сдк. Что Вам мешает перейти на нее? ![]() |
|
Создано: 04 декабря 2010 19:26 · Личное сообщение · #16 Erfaren вы меня не поняли вы же говорите что новая версия ida лучше дизасмит показать пример можете? что вот мол одна версия на ваш выбор дизасмит так а другая дизасмит лучше а то получается это только ваше желание так думать что новая лучше а на самом деле ничего такого 5.5 я не использую потому что не нравится а хексрейс я взял с нее и использую в 5.2 ![]() |
|
Создано: 04 декабря 2010 19:39 · Поправил: cppasm · Личное сообщение · #17 reversecode - лично я никогда не горел желанием пользовать распоследние демо, но 5.5 на ARM объективно лучше. Простой пример - открываем дамп прошивки для ARM проца (просто бинарный код без стандартного формата). 5.2 его грузила, и всё, привет - дальше всё решалось скриптами (распознавание кода и данных), в то время как 5.5 анализирует его и 90% кода находит самостоятельно - т.е. отделяет код от данных. Не сказать что раньше было вообще никак, но стало удобнее. Т.е. если бы была возможность, я бы на шестёрку наверное перешёл, а демо - нафига оно надо? Чтобы потом решать проблемы как листинг сохранить? Т.е. плюсы новой версии лично для меня не компенсируют ограниченность демо версии, а для кого-то видимо компенсируют... PS: на х86 сравнивать особой пользы нет, это основная архитектура и там запилили если не всё, то очень многое - от версии к версии изменения минимальны. ![]() |
|
Создано: 04 декабря 2010 19:46 · Поправил: reversecode · Личное сообщение · #18 cppasm новые процы да новые команды в процах да но Erfaren использует демо только для win32 причем весь его реверс это запуск хексрейса на автомате и работа готова Erfaren я правильно понимаю? а если не использовать хексрекс то дизасм точно такой же ну разные версии ida по разному могут или не могут определить стек и аргументы но я бы не сказал что в новых версиях это улучшается скорее даже в некоторых наоборот а что бы хексрейс работал правильно, то типы нужно выставлять получается Erfaren ганяется за призрачным нично потому что ему кажется ![]() |
|
Создано: 04 декабря 2010 20:01 · Личное сообщение · #19 reversecode пишет: получается Erfaren ганяется за призрачным нично потому что ему кажется Не буду спорить, потому что, действительно, я предполагаю, что новые версии лучше, а не утверждаю это. Чтобы проверить это, нужно скомпилировать дизассемблированный код в разных версиях и посмотреть, где меньше геморроя. Пока это влом делать. Но если удастся с помощью скриптов или плагинов автоматизировать этот процесс, то почему бы не проверить это предположение. Короче, может быть, в одной из будущих статей я приведу этот анализ работы разных версий для Win32. ![]() |
|
Создано: 06 декабря 2010 23:34 · Личное сообщение · #20 |
|
Создано: 06 декабря 2010 23:39 · Личное сообщение · #21 |
|
Создано: 17 декабря 2010 12:32 · Личное сообщение · #22 |
|
Создано: 17 декабря 2010 13:56 · Личное сообщение · #23 kp0m пишет: Полезность 5.0 мизерная для АРМ Полезности для ARM нет вообще, т.к. все free версии всегда только для х86, остальные процы выброшены. То же самое с отладкой. lacks support for many processors, file format, debugging etc.. ![]() |
|
Создано: 18 декабря 2010 01:06 · Личное сообщение · #24 |
|
Создано: 18 декабря 2010 01:52 · Личное сообщение · #25 |
|
Создано: 18 декабря 2010 03:17 · Личное сообщение · #26 |
|
Создано: 18 декабря 2010 14:27 · Поправил: Coderess · Личное сообщение · #27 |
|
Создано: 18 декабря 2010 18:06 · Личное сообщение · #28 |
|
Создано: 18 декабря 2010 19:08 · Поправил: Fixat0r · Личное сообщение · #29 |
|
Создано: 21 декабря 2010 23:55 · Личное сообщение · #30 Erfaren пишет: sendersu пишет: и что мешает найти ету проверку и отрубить? заодно и с пиплами поделиться (идея) Ничего не мешает. Только этот метод я оставляю на крайний случай. Ведь я пишу статьи на подобные темы, и меня не прикалывают возможные придирки по нарушению «права аренды цифровой копии», точнее, «закона об интеллектуальной собственности». В данном случае решение можно получить с помощью скриптов и плагинов, что по разным причинам является более привлекательным.В скриптах есть хорошая функция GetCurrentLine(), которая работает и в шестой демо «Иде». Она возвращает строку листинга, в которой находится экранный курсор. Если бы удалось программно перемещать этот курсор по всему листингу, то проблема сохранения кода была бы решена мгновенно. . . Ну, вот! Не прошло и полгода и способ сохранения листинга шестой «Иды» найден! ![]() Решение оказалось относительно простым, но направлений было перепробовано множество. С помощью стандартных возможностей IDC script удается свободно вывести 90% текста. Затык у меня был по некоторым видам комментариев. Потом решил перепробовать недокументированные функции скриптового движка. Например, такие: _peek(); _poke();_lpoke(); _call(); _time(); ____() и другие. По последней функции информации в Интернете – ноль! Путем экспериментов, удалось выяснить, что эта функция то же самое, что и функция IDA SDK: Code:
при выборе следующих параметров: Code:
Я проверял, действительно, эти функции всегда возвращают одно и тоже значение. Но зачем нужна эта функция в скриптовом движке «Иды» - совершенно непонятно! Первые четыре недокументированные функции вполне хороши для манипуляций с физической памятью, но функция _call() не принимает параметров, следовательно, для нее нужно писать обертку-патч где-нибудь в физической памяти, что довольно геморно для скриптов. Проще сразу перейти на плагины и не париться. Тем более что в скриптах доступны только порядка 500 функций, а в плагинах – 1500! Перейдем теперь к собственно полученному решению, как не трудно догадаться, с помощью плагинов. За основу мы взяли плагин getlines.cpp из IDA SDK. Кто бы мог подумать, что он там есть? А я облазил весь Интернет, в поисках прототипа ![]() Вот полученный результат: Code:
Вы можете компилировать этот файл обычными способами, но для разнообразия я использовал командный файл [/b]plw.cmd[/b]. Выставьте только свои параметры окружения. Да, и не забудьте про ida.lib из SDK. У меня он находится уровнем выше (чтобы быть общим для разных плагинов). Если у вас его нет, то сгенерите его сами из ida.wll, по технологии, описанной в моей последней статье (ссылки были выше). Правда, где вы возьмете отладочные символы для этого файла, я не знаю, разве, что из самой ida.wll ![]() Code:
Еще нужен файл plugin.def, общий для всех проектов: Code:
Если все сделаете правильно, то получите плагин plugin.plw. Я его просто переименовал в GetListing.plw. Надеюсь, вы знаете, как пользоваться плагинами ![]() Code:
(точку с запятой можно и не писать ![]() По умолчанию, «Ида» ищет в папке plugins. Архивчик с примером прилагается. ![]() ![]() |
|
Создано: 22 декабря 2010 04:07 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . >> |
![]() |
eXeL@B —› Софт, инструменты —› IDA Pro 6 |
Эта тема закрыта. Ответы больше не принимаются. |