Сейчас на форуме: Rio, -Sanchez-, artyavmu, CDK123 (+9 невидимых)

 eXeL@B —› Софт, инструменты —› IDA Pro 6
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение


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

Создано: 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 Disassembler - Version 6.0, там же полный список нововведений.

Скачать IDA Pro 6: пока недоступно

-----
EnJoy!




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 02 декабря 2010 19:31
· Личное сообщение · #2

BAHEK пишет:
Уже есть

что естЬ?




Ранг: 76.9 (постоянный), 116thx
Активность: 0.060
Статус: Участник

Создано: 02 декабря 2010 23:15
· Личное сообщение · #3

sendersu, я немного ошибся, подумал что речь шла о демке(



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 03 декабря 2010 00:04
· Личное сообщение · #4

Coderess пишет:
Так можно юзать и старую

так это с 5.5 началось

-----
Реверсивная инженерия - написание кода идентичного натуральному




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

Создано: 03 декабря 2010 09:14
· Личное сообщение · #5

Изначально разговор шёл о выходе версии 6.0 . Человек ошибочно заявил о наличии фриварной версии 6.0. Ему объяснили что он ошибся, указав на то что демка 6.0 это не фриварная версия. Всё ...



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 03 декабря 2010 10:54
· Личное сообщение · #6

К сожалению, первое, что бросается в глаза, относится к плохой новости. Ильфак, в шестой версии, заблокировал нашу лазейку по сохранению листинга кода через буфер обмена. То, что он сделал это только в последней версии, заставляет подозревать его в чтении наших предыдущих статей (см. erfaren.narod.ru), где мы описывали этот способ работы с дизассемблерным кодом . Т.е. копировать можно, но не более нескольких килобайт, что для многомегабайтных «простынь» кода совершенно не приемлемо. И что нам теперь делать? Как тестировать его любимое детище? Не покупать же данную программу только ради тестирования! Конечно, выход в данном случае мы все-таки найдем, обратив внимания на средства автоматизации IdaPro. А если наш любимый автор вырубит поддержку скриптов и плагинов в следующей версии? Допустим, мы опять найдем выход. Тогда Ильфак может пойти по пути фирмы «1С», которая уже давно не выпускает демо-версии своих продуктов, только демо-ролики . Так что запасайтесь на всякий случай нынешними шестыми демо-версиями впрок, а то чем черт не шутит .




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 03 декабря 2010 11:42
· Личное сообщение · #7

А зачем нам 6 демоверсия если полюбас ее скоро(?) скардят и выложат?

-----
Yann Tiersen best and do not fuck




Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 03 декабря 2010 12:20
· Личное сообщение · #8

PE_Kill пишет:
А зачем нам 6 демоверсия если полюбас ее скоро(?) скардят и выложат?


Если почитаете мои статьи, то поймете зачем. Меня интересует восстановление кода на уровне ассемблера. Т.е. чтобы дизассемблерный код можно было скомпилировать обратно и получить работоспособный бинарник без явных проблем. Зачем это делать это уже другой вопрос. Понятно, чем выше версия «Иды», тем лучше, как правило, качество дизассемблирования. Версия 5.7 demo в этом смысле меня устраивает полностью. Но раз есть версия 6.0, то грех ее не протестировать. Можно попытаться в шестерке воспользоваться скриптами, даже с учетом того, что Ильфак заблокировал функцию

Code:
  1. WriteTxt(pFile, 0, BADADDR); // Create the assembler file


которая является макро обёрткой для функции

Code:
  1. GenerateFile(OFILE_ASM, pFile, 0, BADADDR, 0);


Большую часть листинга я уже научился сохранять. В худшем случае, можно воспользоваться плагинами для сохранения и обработки листинга «Иды». Но боюсь, что Ильфак в следующих демо версиях отключит эти возможности .




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 декабря 2010 07:30
· Личное сообщение · #9

ну ильфак загнул речь www.hexblog.com/?p=233
причем, обоснование почему они подняли цену какое то высосаное из пальца




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 04 декабря 2010 10:04
· Личное сообщение · #10

Erfaren пишет:
Если почитаете мои статьи, то поймете зачем. Меня интересует восстановление кода на уровне ассемблера. Т.е. чтобы дизассемблерный код можно было скомпилировать обратно и получить работоспособный бинарник без явных проблем.

Почитал, так и не понял зачем именно демо версия. Или вы на любой вопрос отвечаете про ваши статьи, не важно какой вопрос задан?

-----
Yann Tiersen best and do not fuck




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 04 декабря 2010 11:39
· Личное сообщение · #11

Erfaren пишет:
копировать можно, но не более нескольких килобайт,

и что мешает найти ету проверку и отрубить?
заодно и с пиплами поделиться (идея)



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 04 декабря 2010 12:39
· Личное сообщение · #12

PE_Kill пишет:
Почитал, так и не понял зачем именно демо версия. Или вы на любой вопрос отвечаете про ваши статьи, не важно какой вопрос задан?


Хорошо, скажу кратко. Меня интересует качество дизассемблирования. Как правило, новая версия дизассемблирует лучше, чем старая. И демо здесь не ограничение. Ограничение состоит в невозможности сохранять и загружать результаты работы, ограничено время работы, количество используемых типов программ, но для Win32, все есть и т.п. по мелочам. Прежде всего, меня интересует дизассемблерный листинг. Сохраняя его через буфер обмена, я, в конце концов, научился получать корректный перекомпилированный бинарный файл. В последней статье приводится 10 подобных проектов, которые Вы можете протестировать сами. Мне удалось даже перекомпилировать и запустить почти трехсот килобайтный файл tsadmin.exe. Правда данные в правом окне пока не отображаются, однако сам факт запуска такой большой перекомпилированной программы лично меня впечатляет. Просто перекомпилировать удалось даже мегабайтную dll-ку comctl32.dll v.6.0. Некоторые ее экспортируемые функции удалось даже выполнить, однако до полного тестирования дело еще не дошло. Т.е. направление лично для меня очень интересное. Имея дело с многомегабайтными простынями дизассемблерного кода, очень важно иметь наиболее «свежую» «Иду», чтобы меньше корячится с исправлениями кода. Вот почему важна именно демо версия, потому, что последняя версия не «демой» и бесплатной быть не может. Это раз. А второе, зачем нужна коммерческая версия, если лично меня и демо устраивает по своим возможностям.



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 04 декабря 2010 12:59
· Личное сообщение · #13

sendersu пишет:
и что мешает найти ету проверку и отрубить? заодно и с пиплами поделиться (идея)


Ничего не мешает. Только этот метод я оставляю на крайний случай. Ведь я пишу статьи на подобные темы, и меня не прикалывают возможные придирки по нарушению «права аренды цифровой копии», точнее, «закона об интеллектуальной собственности».

В данном случае решение можно получить с помощью скриптов и плагинов, что по разным причинам является более привлекательным.

В скриптах есть хорошая функция GetCurrentLine(), которая работает и в шестой демо «Иде». Она возвращает строку листинга, в которой находится экранный курсор. Если бы удалось программно перемещать этот курсор по всему листингу, то проблема сохранения кода была бы решена мгновенно. Однако листинг «Иды» это не линейный набор строк, а «упакованное» плоское дерево, узлы которого могут содержать разные типы строк с данными и кодом. Так вот мы можем перемещаться программно между различными типами узлов, которые Ильфак называет «элементами». Но с помощью функции GetCurrentLine() может быть выведена только одна из строк узла. Чтобы «достучаться» до всех остальных строк, нужно обрабатывать флаги данного элемента. Эти флаги дают информацию о примерно десятке различных типов строк и массивов некоторых типов. Ко всем из них в принципе можно получить доступ, найдя в скриптовом движке походящую функцию данного типа строки или массива этого типа строк. Написанием подобного скрипта, я как раз и занимаюсь. Когда он будет готов, поделюсь кодом. Естественно, что для плагинов возможностей на порядок больше. Поэтому плагинами также собираюсь заняться всерьез. Обо всем этом и будет моя четвертая статья, на упомянутом выше сайте .




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 декабря 2010 16:12
· Личное сообщение · #14

Erfaren пишет:
Хорошо, скажу кратко. Меня интересует качество дизассемблирования. Как правило, новая версия дизассемблирует лучше, чем старая.

а покажите пример в картинках?
потому что я к примеру пользуюсь 5.2 и она меня устраивает
и сравнивая всякие демо и не демо что на паблике
новые версии ничем не лучше
разве что флирт обновляется



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 04 декабря 2010 18:24
· Личное сообщение · #15

reversecode пишет:
а покажите пример в картинках?потому что я к примеру пользуюсь 5.2 и она меня устраиваети сравнивая всякие демо и не демо что на пабликеновые версии ничем не лучшеразве что флирт обновляется


Думаю, что Вы по-своему правы. Обычный пользователь не гоняет «Иду» на 100% ее возможностей. Я тоже использую обычно только майкрософтовские файлы под Win32. Впрочем, всегда можно глянуть исправленный баг-лист новой версии «Иды» и тогда сказать точно, нужна она или не очень. Однако чисто психологически в новой версии работать приятней. Вот, например, меня все время «задирал» Борландовский интерфейс «Иды». Сейчас они перешли на Qt и одно это вызывает удовлетворение. В сети есть полноценная версия 5,5 с хекс-рэйсом и сдк. Что Вам мешает перейти на нее?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 декабря 2010 19:26
· Личное сообщение · #16

Erfaren
вы меня не поняли
вы же говорите что новая версия ida лучше дизасмит
показать пример можете?
что вот мол одна версия на ваш выбор дизасмит так
а другая дизасмит лучше
а то получается это только ваше желание так думать что новая лучше
а на самом деле ничего такого

5.5 я не использую потому что не нравится
а хексрейс я взял с нее и использую в 5.2



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 04 декабря 2010 19:39 · Поправил: cppasm
· Личное сообщение · #17

reversecode - лично я никогда не горел желанием пользовать распоследние демо, но 5.5 на ARM объективно лучше.
Простой пример - открываем дамп прошивки для ARM проца (просто бинарный код без стандартного формата).
5.2 его грузила, и всё, привет - дальше всё решалось скриптами (распознавание кода и данных), в то время как 5.5 анализирует его и 90% кода находит самостоятельно - т.е. отделяет код от данных.
Не сказать что раньше было вообще никак, но стало удобнее.
Т.е. если бы была возможность, я бы на шестёрку наверное перешёл, а демо - нафига оно надо?
Чтобы потом решать проблемы как листинг сохранить?
Т.е. плюсы новой версии лично для меня не компенсируют ограниченность демо версии, а для кого-то видимо компенсируют...
PS: на х86 сравнивать особой пользы нет, это основная архитектура и там запилили если не всё, то очень многое - от версии к версии изменения минимальны.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 декабря 2010 19:46 · Поправил: reversecode
· Личное сообщение · #18

cppasm
новые процы да
новые команды в процах да

но Erfaren использует демо только для win32
причем весь его реверс это запуск хексрейса на автомате
и работа готова
Erfaren
я правильно понимаю?
а если не использовать хексрекс то дизасм точно такой же
ну разные версии ida по разному могут или не могут определить стек и аргументы
но я бы не сказал что в новых версиях это улучшается
скорее даже в некоторых наоборот
а что бы хексрейс работал правильно, то типы нужно выставлять
получается Erfaren ганяется за призрачным нично
потому что ему кажется



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 04 декабря 2010 20:01
· Личное сообщение · #19

reversecode пишет:
получается Erfaren ганяется за призрачным нично потому что ему кажется


Не буду спорить, потому что, действительно, я предполагаю, что новые версии лучше, а не утверждаю это. Чтобы проверить это, нужно скомпилировать дизассемблированный код в разных версиях и посмотреть, где меньше геморроя. Пока это влом делать. Но если удастся с помощью скриптов или плагинов автоматизировать этот процесс, то почему бы не проверить это предположение. Короче, может быть, в одной из будущих статей я приведу этот анализ работы разных версий для Win32.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 06 декабря 2010 23:34
· Личное сообщение · #20

Ильфак поднял планку фриварности. Теперь последняя фриварная версия не 4.9, а 5.0.

www.hex-rays.com/idapro/idadownfreeware.htm

-----
Лучше быть одиноким, но свободным © $me




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 06 декабря 2010 23:39
· Личное сообщение · #21

Ух ты, сталобыть графы и отладчик... Пересесть что ли на легальную иду?



Ранг: 26.1 (посетитель), 10thx
Активность: 0.01=0.01
Статус: Участник

Создано: 17 декабря 2010 12:32
· Личное сообщение · #22

Полезность 5.0 мизерная для АРМ, а по анализу функций с 5.5 вообще теряет смысл, и вообще хочется декомпилятора и несколько очень важных багфиксов



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 17 декабря 2010 13:56
· Личное сообщение · #23

kp0m пишет:
Полезность 5.0 мизерная для АРМ

Полезности для ARM нет вообще, т.к. все free версии всегда только для х86, остальные процы выброшены.
То же самое с отладкой.

lacks support for many processors, file format, debugging etc..

| Сообщение посчитали полезным: kp0m

Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 18 декабря 2010 01:06
· Личное сообщение · #24

cppasm пишет:
остальные процы выброшены.

пишем open source процессорные модули?

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 18 декабря 2010 01:52
· Личное сообщение · #25

Ну как-бы если б вообще не было, то можно и писать.
А так проще 5.5 карженую использовать - время и так есть куда девать.



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

Создано: 18 декабря 2010 03:17
· Личное сообщение · #26

Чет не получилось дебегер удаленный запустить на фриварной мак версии, кто запускал?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 18 декабря 2010 14:27 · Поправил: Coderess
· Личное сообщение · #27

int
Ух ты, сталобыть графы и отладчик... Пересесть что ли на легальную иду?
+1, стало возможным использовать фриварную иду

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 18 декабря 2010 18:06
· Личное сообщение · #28

Читайте описалово на странице загрузки.
Нет там отладчика, она урезана по самое не балуйся.
Это не та IDA 5.0 которая когда-то была зарелизена, в free версии все плюшки поотключали, включая отладчик и процессорные модули отличные от х86.



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

Создано: 18 декабря 2010 19:08 · Поправил: Fixat0r
· Личное сообщение · #29

А я то понадеялся)) Ясно

Как вам господа новый интерфейс?))



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 21 декабря 2010 23:55
· Личное сообщение · #30

Erfaren пишет:

sendersu пишет:
и что мешает найти ету проверку и отрубить? заодно и с пиплами поделиться (идея)

Ничего не мешает. Только этот метод я оставляю на крайний случай. Ведь я пишу статьи на подобные темы, и меня не прикалывают возможные придирки по нарушению «права аренды цифровой копии», точнее, «закона об интеллектуальной собственности». В данном случае решение можно получить с помощью скриптов и плагинов, что по разным причинам является более привлекательным.В скриптах есть хорошая функция GetCurrentLine(), которая работает и в шестой демо «Иде». Она возвращает строку листинга, в которой находится экранный курсор. Если бы удалось программно перемещать этот курсор по всему листингу, то проблема сохранения кода была бы решена мгновенно. . .


Ну, вот! Не прошло и полгода и способ сохранения листинга шестой «Иды» найден!

Решение оказалось относительно простым, но направлений было перепробовано множество. С помощью стандартных возможностей IDC script удается свободно вывести 90% текста. Затык у меня был по некоторым видам комментариев. Потом решил перепробовать недокументированные функции скриптового движка. Например, такие:

_peek(); _poke();_lpoke(); _call(); _time(); ____()

и другие. По последней функции информации в Интернете – ноль! Путем экспериментов, удалось выяснить, что эта функция то же самое, что и функция IDA SDK:

Code:
  1. // Arrays of altvals - altvals: a sparse array of 32-bit values.
  2. // indexes in this array may be 8-bit or 32-bit values
  3.  
  4. // Get altval element of the specified array
  5. //     alt - index into array of altvals
  6. //     tag - tag of array. may be omitted
  7. // returns: value of altval element. Unexistent altval members are returned as zeroes
  8.  
  9. nodeidx_t altval(nodeidx_t alt, char tag=atag) const {
  10.     return netnode_altval(*this, alt, tag);
  11. }


при выборе следующих параметров:

Code:
  1. ____() = netnode_altval(RootNode, -2, Asc(‘A’));


Я проверял, действительно, эти функции всегда возвращают одно и тоже значение. Но зачем нужна эта функция в скриптовом движке «Иды» - совершенно непонятно!

Первые четыре недокументированные функции вполне хороши для манипуляций с физической памятью, но функция _call() не принимает параметров, следовательно, для нее нужно писать обертку-патч где-нибудь в физической памяти, что довольно геморно для скриптов. Проще сразу перейти на плагины и не париться. Тем более что в скриптах доступны только порядка 500 функций, а в плагинах – 1500!

Перейдем теперь к собственно полученному решению, как не трудно догадаться, с помощью плагинов.

За основу мы взяли плагин getlines.cpp из IDA SDK. Кто бы мог подумать, что он там есть? А я облазил весь Интернет, в поисках прототипа .

Вот полученный результат:

Code:
  1. //====================================================================
  2. // It demonstrates how to get the disassembly lines for all addresses
  3. //====================================================================
  4.  
  5. //---------------------------------------------------------------------------
  6.  
  7. // А вот это надо прописать ОБЯЗАТЕЛЬНО, а то плагин работать не будет.
  8. #define __NT__
  9. #define __IDP__
  10.  
  11. //---------------------------------------------------------------------------
  12.  
  13. #include <ida.hpp>
  14. #include <idp.hpp>
  15. #include <bytes.hpp>
  16. #include <loader.hpp>
  17. #include <kernwin.hpp>
  18. #include <expr.hpp>
  19.  
  20. //--------------------------------------------------------------------------
  21.  
  22. int init(void) {
  23.   return PLUGIN_OK;
  24. }
  25.  
  26. //--------------------------------------------------------------------------
  27.  
  28. void term(void) {
  29. }
  30.  
  31. //--------------------------------------------------------------------------
  32. void run(int /*arg*/) {
  33.   FILE *fp = fopen("idc.out", "w");
  34.   
  35.   if(fp == NULL) {
  36.     warning("Cannot open idc.out");
  37.     return;
  38.   }
  39.   
  40.   ea_t ea;
  41.   ea_t min_ea = inf.minEA;
  42.   ea_t max_ea = inf.maxEA;
  43.   
  44.   int i, n, flags;
  45.   int j = 0;
  46.   
  47.   for(ea = min_ea; ea < max_ea && ea != BADADDR; ea = next_not_tail(ea)) {
  48.     flags = calc_default_idaplace_flags();
  49.     linearray_t ln(&flags);
  50.     idaplace_t pl;
  51.     pl.ea = ea;
  52.     pl.lnnum = 0;
  53.     ln.set_place(&pl);
  54.     
  55.     //msg("Printing disassembly lines:\n");
  56.     
  57.     n = ln.get_linecnt(); // How many lines for this address?
  58.     
  59.     for(= 0; i < n; i++) { // Process all of them
  60.       char *line = ln.down(); // Get line
  61.       char buf[MAXSTR];
  62.       
  63.       tag_remove(line, buf, sizeof(buf)); // Remove color codes
  64.       
  65.       // msg("%d: %s\n", i, buf); // Display it on the message window
  66.       fprintf(fp, "%s\n", buf);
  67.       
  68.       j++;
  69.     }
  70.     
  71.     if(j%1000 == 0)
  72.         msg("%d lines done...\n", j);
  73.   }
  74.   
  75.   msg("\n\n%d lines has written! File 'idc.out' is done.\n", j);
  76.   
  77.   fclose(fp);
  78. }
  79.  
  80. //--------------------------------------------------------------------------
  81.  
  82. char comment[] = "Generate disassembly lines for all addresses";
  83. char help[] = "Generate disassembly lines for all addresses\n";
  84.  
  85. //--------------------------------------------------------------------------
  86.  
  87. // This is the preferred name of the plugin module in the menu system
  88. // The preferred name may be overriden in plugins.cfg file
  89.  
  90. char wanted_name[] = "Save the Listing";
  91.  
  92. //--------------------------------------------------------------------------
  93.  
  94. // This is the preferred hotkey for the plugin module
  95. // The preferred hotkey may be overriden in plugins.cfg file
  96. // Note: IDA won't tell you if the hotkey is not correct
  97. // It will just disable the hotkey.
  98.  
  99. char wanted_hotkey[] = "";
  100.  
  101. //====================================================================
  102. // PLUGIN DESCRIPTION BLOCK
  103. //====================================================================
  104. plugin_t PLUGIN =
  105. {
  106.   IDP_INTERFACE_VERSION,
  107.   0,  // Plugin flags
  108.   init,  // Initialize
  109.   term,  // Terminate. this pointer may be NULL.
  110.   run,  // Invoke plugin
  111.   comment,  // Long comment about the plugin it could appear in the status line or as a hint
  112.   help,  // Multiline help about the plugin
  113.   wanted_name,  // The preferred short name of the plugin
  114.   wanted_hotkey  // The preferred hotkey to run the plugin
  115. };
  116.  
  117. //==================================================================== 


Вы можете компилировать этот файл обычными способами, но для разнообразия я использовал командный файл [/b]plw.cmd[/b]. Выставьте только свои параметры окружения. Да, и не забудьте про ida.lib из SDK. У меня он находится уровнем выше (чтобы быть общим для разных плагинов). Если у вас его нет, то сгенерите его сами из ida.wll, по технологии, описанной в моей последней статье (ссылки были выше). Правда, где вы возьмете отладочные символы для этого файла, я не знаю, разве, что из самой ida.wll .

Code:
  1. ::*** Параметры компиляции:
  2.  
  3. SET CL_EXE="C:\Program Files\Microsoft Visual Studio\VC98\Bin\cl.exe"
  4. SET LINK_EXE="C:\Program Files\Microsoft Visual Studio\VC98\Bin\link.exe"
  5.  
  6. SET IncVC98="C:\Program Files\Microsoft Visual Studio\VC98\Include"
  7.  
  8. SET IncIdaSdk="D:\MyDocs\IdaSdk\include"
  9.  
  10. SET LibVC98="C:\Program Files\Microsoft Visual Studio\VC98\Lib"
  11.  
  12. SET PlugName=plugin
  13.  
  14. %CL_EXE% /I%IncVC98% /I%IncIdaSdk% -Gz /O2 /MD /GX /W3 /FD /nologo /%PlugName%.cpp > a.a
  15.  
  16. :: /O2 /MD /GX /W3 /FD /nologo
  17. :: /Fo:%PlugName%.obj
  18. :: @obj_lib.txt >> a.
  19.  
  20. %LINK_EXE% /MACHINE:I386 /NOLOGO /INCREMENTAL:NO /NODEFAULTLIB:"LIBC" /subsystem:windows /dll /out:%PlugName%.plw /def:%PlugName%.def %PlugName%.obj ..\ida.lib /LIBPATH:%LibVC98% > a.b
  21.  
  22. del *.obj
  23. del *.exp
  24. del *.idb
  25. del %PlugName%.lib
  26.  
  27. ::pause


Еще нужен файл plugin.def, общий для всех проектов:

Code:
  1. LIBRARY plugin
  2. EXPORTS 
  3. PLUGIN


Если все сделаете правильно, то получите плагин plugin.plw. Я его просто переименовал в GetListing.plw. Надеюсь, вы знаете, как пользоваться плагинами . Но можно вызвать данный плагин и с помощью скрипа:

Code:
  1. RunPlugin("GetListing", 0);


(точку с запятой можно и не писать )

По умолчанию, «Ида» ищет в папке plugins.

Архивчик с примером прилагается.

215f_21.12.2010_CRACKLAB.rU.tgz - GetListingByErfaren.zip

| Сообщение посчитали полезным: gazlan, _ruzmaz_, froloff

Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 22 декабря 2010 04:07
· Личное сообщение · #31

cppasm пишет:
Нет там отладчика, она урезана по самое не балуйся.

Скачай и посмотри, читатель)

P.S. Отладчик во фриварке есть уже давно.


<< . 1 . 2 . 3 . >>
 eXeL@B —› Софт, инструменты —› IDA Pro 6
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати