Сейчас на форуме: _MBK_ (+7 невидимых)

 eXeL@B —› Основной форум —› Анализ IDA Pro
Посл.ответ Сообщение

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

Создано: 08 июля 2009 10:09 · Поправил: sf3lamer
· Личное сообщение · #1

Я хочу написать что-то похожее на ИДА Про на Делфи. Понимая, что подводных камней будет немало, я хочу попросить вас помочь составить диздок, т.к. сам я точно что-то упущу. Если кто-то захочет помочь с написанием самой проги, я только за.

Зачем изобр. колесо? Чтобы не зависеть.
Сам проект думаю сделать свободным для некоммерческого использования

Насколько я понимаю, ИДА - всего лишь оболчка, запускающая различные плагины над подопытным приложением и отображающая результат их работы

- думаю, сначала нужны: ядро и поддержка плагинов, чтобы к разработке могли подключаться волонтёры

Минусы ИДА (кто знает ещё пишите, я добавлю в этот список)
- использование легальной документации. пример: искал я p-code-disasm vb5/vb6 для IDA. но Ильфак, пишет, что т.к. микрософт не даёт документации, то и плагина не будет, в то время, как большая часть p-code функций была разреверсина ещё в 2001 (если не ошибаюсь) году и создан отладчик

Платформа
Win32. Портирование на другие платформы отложено на далёкое будущее или передано в руки всем желающим
Есть какие-либо советы, как писать, чтобы портировать было легче?

Задачи
-- где хранить код? чтобы все желающие могли его получить. на примете google code
или может купить хостинг+домен?
-- нужен багтрекер. как это реализовать? svn?
-- в чём лучше вести документацию? обычный html, chm?
-- название?
-- разработать интерфейс для плагинов
-- разработать нормальный Script editor. в ида это какой то нотепад, без нормальной проверки синтаксиса
-- разработать компонент для подсветки синтаксиса
-- разработать ядро
какие функции здесь нужны? наверно стоит написать все аналогичные тем, что в ида
экспортируемые функции в ида мне крайне не нравятся. хотелось бы разбить их по группам, например:
BASE_ReadByte(ea: dword): byte
BASE_ReadWord(ea: dword): word
BASE_ReadDWord(ea: dword): dword
PLUGIN_LoadPlugin(path: string): boolean
PLUGIN_GetPluginInfo(out Info: TPluginInfo): boolean
-- анализ, флирт - это в виде плагина
-- BOCHS. обязательно нужно заранее подумать как его в дальнейшем подключить

Плагины
Как лучше предоставлять плагинам интерфейс?
1. через IInterface/InterfacedObject
2. експортировать нужные функции

что ещё?

P.S. поле для правки сообщения оказалось маловато



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

Создано: 08 июля 2009 12:41 · Поправил: kirillnext
· Личное сообщение · #2

Согласен, надо создавать своё по для таких целей



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

Создано: 08 июля 2009 12:43
· Личное сообщение · #3

рад буду поучаствовать в проекте




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 08 июля 2009 12:56
· Личное сообщение · #4

Вы что действительно думаете обскакать Ильфака на голом энтузиазме с Делфи?

-----
Researcher





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

Создано: 08 июля 2009 13:21
· Личное сообщение · #5

sf3lamer пишет:
Я хочу написать что-то похожее на ИДА Про на Делфи.


что-то похожее по внешнему виду или по функционалу?


sf3lamer пишет:
Зачем изобр. колесо? Чтобы не зависеть.


независимость от чего?
в чём заключается твоя зависимость на данный момент?


sf3lamer пишет:
Сам проект думаю сделать свободным для некоммерческого использования


проект либо свободен, либо нет.
ты понимаешь, что такое свободное программное обеспечение?
"Свободное программное обеспечение" означает свободу, а не цену.

из твоих слов вытекает, что:
программа, используемая в некоммерческих целях - свободна, а программа, используемая в коммерческих целях (в антивирусной компании, например), несвободна
это бред.

тебя удивляет, что IDA используется в коммерческих целях, а не забавы ради?


sf3lamer пишет:
Насколько я понимаю, ИДА - всего лишь оболчка, запускающая различные плагины над подопытным приложением и отображающая результат их работы


в таком контексте операционная система - тоже оболочка для запуска программ, что ни в коей мере не умоляет её сложности


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


что значит сначала? а потом что? допиливать кривое ядро?
начинать нужно с проектирования продукта, а не с продумывания технических сторон

на кого будет ориентирован продукт?
на крякеров-любителей?
или ты хочешь лишь подкинуть идейку "а зафигачьте-ка халявную версию иды, а я посмотрю чо получается", так чтоль?


sf3lamer пишет:
Минусы ИДА (кто знает ещё пишите, я добавлю в этот список)
- использование легальной документации. пример: искал я p-code-disasm vb5/vb6 для IDA.


и кто же мешает тебе написать свой плагин для работы с VB P-Code в IDA?
sdk доступен, всё что нужно для написания есть (сам говоришь - аж с 2001 года)


sf3lamer пишет:
Есть какие-либо советы, как писать, чтобы портировать было легче?


есть идея писать на языке, для которого есть компиляторы под разные платформы
достаточно того, чтобы программа собиралась при помощи gcc (GNU Compiler Collection)
писать можно и на Objective-C, это не принципиально

используй кросс-платформенные библиотеки при проектировании интерфейса взаимодействия


sf3lamer пишет:
-- где хранить код? чтобы все желающие могли его получить. на примете google code
или может купить хостинг+домен?


одно другому не мешает


sf3lamer пишет:
нужен багтрекер. как это реализовать? svn?


svn - это не багтрекер


sf3lamer пишет:
в чём лучше вести документацию? обычный html, chm?


базовая документация для sdk может быть получена из исходников (типа Doxygen), а вывод - хоть html, chm, pdf, LaTeX

точно так же документацию можно писать в OpenOffice и экспортировать в любой удобный формат


sf3lamer пишет:
название


как яхту спроектируешь, так она и поплывёт
название - дело маркетологов
создай качественный продукт, а там и логотип с названием будут

sf3lamer пишет:
разработать интерфейс для плагинов


начни с целей, а не с технической реализации


sf3lamer пишет:
разработать нормальный Script editor


берёшь готовый компонент и настраиваешь подсветку, или тут тоже нужно только своё?


sf3lamer пишет:
какие функции здесь нужны? наверно стоит написать все аналогичные тем, что в ида


я так и не понял, ты хочешь сделать продукт, лучше IDA, или тупо скопировать её функционал?
второе нахер не нужно, так что думай.
взявшись за копирование текущей версии, ты закончишь продукт дай бог года через два-три (это в лучшем случае) - на тот момент IDA уйдёт вперёд по сравнению с той версией, с которой ты копировал функционал, а догнать ты уже не догонишь
поэтому нужно изначально проектировать продукт, который будет нужен тому, для кого ты планируешь его создавать, с учётом всех особенностей рынка


sf3lamer пишет:
экспортируемые функции в ида мне крайне не нравятся


по каким причинам они тебе не нравятся?


sf3lamer пишет:
хотелось бы разбить их по группам, например:
BASE_ReadByte(ea: dword): byte
BASE_ReadWord(ea: dword): word


мда.... офигенный пример... говорит о том, что те рановато вообще браться за подобный проект
уясни же ты одну простую вещь:
начинать нужно с целей, а не с технической реализации примитивных функций
чтение байта - это не тот уровень, на котором должен быть продуман SDK


sf3lamer пишет:
анализ, флирт - это в виде плагина


и?


sf3lamer пишет:
BOCHS. обязательно нужно заранее подумать как его в дальнейшем подключить


хорошо что ты BOCHS не планируешь писать с нуля ;)


sf3lamer пишет:
Как лучше предоставлять плагинам интерфейс?


через сообщения, например


sf3lamer пишет:
поле для правки сообщения оказалось маловато


напиши текст в отдельном файле, а потом скопируй сюда

-----
EnJoy!




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

Создано: 08 июля 2009 13:52
· Личное сообщение · #6

sf3lamer пишет:
Я хочу написать что-то похожее на ИДА Про на Делфи

Оно уже написано на BCB, ты издеваешься?

Обскакать не получится. Я бы предложил более реальный план действий:
1) Написать свой GUI на QT, так что бы он юзал ядро существующей IDA.
2) Написать свои загрузчики и процессорные модуля
3) Заменить ядро на свое.

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

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





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

Создано: 08 июля 2009 14:39
· Личное сообщение · #7

Сам ты мало что сможешь сделать, для такого "мега" проекта нужно оч много людей, толпой вы сможете намного больше сделать, распределив с умом нагрузку и конкретные задачи, с которыми тот или иной сможет справится лучше за других. Я пока посмотрю за развитием этого проекта, если он и правда сможет организоватся и что-то сделать, то может я и сам помогу чем-то, а пока...

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




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

Создано: 08 июля 2009 15:16
· Личное сообщение · #8

BoRoV пишет:
Сам ты мало что сможешь сделать


Сделать-то можно. Но для этого надо около 10 лет. И тему создавать на креклабе не обязательно было.

А вообще такой проект как свободное ПО довольно сложная задача. Много ли хороших крупных продуктов доступно бесплатно (таких как GIMP)?

Ильфак тратит на разработку уйму времени. Это его работа, а значит с этого надо получать деньги на жизнь. А кодить такой проект "вечерами" - одному точно не реал.

Единственное что могу сказать, полостью согласен с:

Hexxx пишет:
люди привыкшие юзать IDA скажут тебе спасибо, за то что все их плагины, скрипты и т.д. остались живы.





Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 08 июля 2009 15:19
· Личное сообщение · #9

Еще один мертвый в зародыше проект.
sf3lamer
В одного подобную софтину написать, имхо, нереально. Да и надо ли? Лучше вперед двигаться, а не переписывать старое. Даже на базе "публичной" версии 5.2 с sdk можно дохрена чего написать, чего очень не хватает в IDA. Наверное среди анализаторов, HIEW - это апофеоз того, что может написать один человек, причем распространяя НЕ на бесплатной основе. Я уж не знаю сколько Ильфак переписывал движок IDA, но думаю не раз. Для такого проекта сначала надо полгода на бумажке калякать проектную документацию, анализировать и т.п.
А теперь, собственно, прикинь реально свои возможности и усилия которые необходимо потратить.

-----
Get busy living or get busy dying ©




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

Создано: 08 июля 2009 17:17 · Поправил: Hexxx
· Личное сообщение · #10

Getorix пишет:
Для такого проекта сначала надо полгода на бумажке калякать проектную документацию, анализировать и т.п.А теперь, собственно, прикинь реально свои возможности и усилия которые необходимо потратить.

Потому надо брать готовое и использовать в своих целях

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





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 08 июля 2009 19:36
· Личное сообщение · #11

писатели,
bastard.sourceforge.net/
bastard.sourceforge.net/libdisasm.html
sourceforge.net/projects/bastard/files/



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

Создано: 08 июля 2009 20:07
· Личное сообщение · #12

The bastard is a console-mode program which currently has no usable front-ends

Ну так вот сделать GUI и всё. Если конечно сам двиг стоящий.




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

Создано: 08 июля 2009 20:41
· Личное сообщение · #13

Для начала хотя-бы попробуй написать свой качественный дизассемблер и если не передумаешь, то совершенствуй его добавляя новые возможности, полезнее будет!

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




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 июля 2009 20:53
· Личное сообщение · #14

>>Для начала хотя-бы попробуй написать свой качественный дизассемблер и если не передумаешь, то совершенствуй его добавляя новые возможности, полезнее будет!
и по BSD лицензии !!!

-----
My love is very cool girl.





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 09 июля 2009 02:15
· Личное сообщение · #15

Тема реально бред. Эта тема из серии "автор не дал мне лицензию - потому я хочу сделать свой аналог его софта". Имхо написать аналог IDA за разумные сроки нереально - слишком многое в ней есть и главное слишком много народу к ней привыкло. Про P-Code вообще глупости - есть готовые скрипты, модернизируй их и все. Если нужно что-то большее есть отдельные проекты имеющие гораздо большие возможности для своих задач.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




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

Создано: 14 июля 2009 16:56
· Личное сообщение · #16

ок. я понял, что тут не всё так радужно, как я думал.
сорри, если тема не в тему форума.

админам: удалите мою тему, чтобы не хламить



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

Создано: 14 июля 2009 17:33
· Личное сообщение · #17

sf3lamer
Тычка "Закрыть тему" находится слева внизу от кнопки "Отправить сообщение".


 eXeL@B —› Основной форум —› Анализ IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати