Сейчас на форуме: Magister Yoda, site-pro, Rio (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› проект по написанию отладчика
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
Посл.ответ Сообщение


Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 24 ноября 2006 08:47 · Поправил: Модератор
· Личное сообщение · #1

Наверное все вы хотели бы иметь отладчик максимально приспособленый для борьбы с антиотладкой, а также умеющий отлаживать драйвера (включая ring0 защиты), и имеющий при этом удобный GUI интерфейс. К сожалению, сейчас достойных отладчиков практически нет. Из юзермодных конечно рулит оля, но по части скрытности с ней все очень плохо, баги не фиксятся, проект мертв (2я версия если и выйдет, то очень нескоро). В рядах ядерных отладчиков все еще хуже. Soft-Ice умер. windbg - гавно (хотя кому-то и нравиться, не буду спорить), Syser имеет красивый интерфейс, но весьма слаб в остальном. Ну и про отладку ring0 защит существующими отладчиками, даже говорить нечего.
В связи с этим у меня давно назревает идея написания универсального и мощьного отладчика, для отладки как юзермода, так и ядра. При этом хочеться получить развивающийся и поддерживаемый проект.

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

Есть три варианта развития проекта:
1 - Фриварная программа.
Вариант этот хорош для пользователей, но я сомневаюсь, что разработка в этом случае зайдет дальше 1й версии. Такой проект неизбежно обязан быть заброшен, потому что авторам быстро это дело надоест. Сделать из проекта платную программу в этом случае будет тоже нельзя (особенно при большом количестве авторов), так как врядли все на это согласяться.
2 - Мы собираем команду, делаем программу, после чего я обеспечиваю ее раскрутку и продвижение. С доходов каждый получает свой процент.
Этот вариант плох тем, что у авторов может не хватит терпения дождаться хороших доходов, и проект может быть заброшен.
3 - Я собираю команду и финансирую написание отладчика. После чего я имею полные права на код, и продаю его по своему усмотрению.
Этот вариант плох тем, что трудно найти людей которые будут на таких условиях хорошо писать код. Скорее всего все захотят просто срубить бабла, напишут глючную первую версию, и исчезнут после получения оплаты, а я останусь с неподдерживаемым и кривым кодом, что тоже сулит проекту недолгую жизнь.

Сам я склоняюсь к 2му варианту, но хотел бы узнать ваше мнение, а также найти желающих заняться этим делом.

З.Ы. отладочное ядро для юзермодного кода я уже написал, так что приступать к написанию отладчика желающие могут хоть завтра.

-----
Скажем дружно - нафиг нужно.




Ранг: 135.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 31 декабря 2007 09:33
· Личное сообщение · #2

Ara пишет:
а мне нравится 2007 интерфейс...


Ну на вкус и цвет....



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 31 декабря 2007 10:21
· Личное сообщение · #3

Голосую за бан всех мудаков и долбаебов, а особенно нимнула.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 31 декабря 2007 10:21
· Личное сообщение · #4

ntldr
+1

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...




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

Создано: 31 декабря 2007 11:13
· Личное сообщение · #5

Мне интересно, почему подобные проекты не заводят SVN-сервер (да на том же SourceForge хотя бы)? Неужели авторы не знакомы ни с одной системой контроля версий?



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 31 декабря 2007 11:14
· Личное сообщение · #6

Потому что авторы не хотят открывать исходники (имхо в этом и состоит их главная ошибка).

-----
PGP key <0x1B6A24550F33E44A>




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

Создано: 31 декабря 2007 15:02
· Личное сообщение · #7

Нужны логи приватного общения участников проекта, в частности только обсуждения технических вопросов
Эта инфа нужна чтобы не повторять уже сделанные ошибки и в чем проблема того, что коллективно все ложат член по-прошествии одного-недели дней
Основное описание того, что уже есть, для того чтобы можно было понять и сделать выводы
Для примера возьмем ИДО
Там есть sdk, любой может взять изучить и написать плагин, который дополнит недостающий&индивидуальный функционал
Зачем пережевывать индивидуально с каждым одно и тоже, это тоже время, потраченное, судя по результатам в пустую
Тогда обсуждение было найти людей, у которых уже есть готовые наработки и заюзать их(как окозалось их "нет") и была непонятка с продажей, по-этому был смысл скрывать тех-обсуждения
Сейчас получается все бесплатно, смысл скрывать от народа важную инфу, которая поможет понять сможет ли человек асилить написания нужных "компонентов" для отладчика
Написание анализатора требует понимания работы всего кодеса интерфейса и основного движка отладчика
Ознакомление с чужим кодом может занять не только неделю, но и более

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



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

Создано: 31 мая 2012 14:00
· Личное сообщение · #8

Завершено склеивание всех частей отладчика.

Статус проекта: opensource GNU GPL 3

Модули и их статус:
CLI (vissi, dimk4): не написана система команд
DisAsm (Mikae, int): пока кривой врапер для Mediana dissassembler
Analyzer (int): необходимо завершить перенос на врапер медианы
Tracer (dimk4, Rascal, int): только Windows, необходимо внести серьезные изменения в dbgapi для поддержки других платформ
Emulator (ntldr): готов
GUI (dimk4, int): есть Qt-шный гуй, очень сырой, есть тоже сырой вариант с wxWidgets (по словам людей, больше похожий на OllyDbg), но последний заброшен
dbgapi usermode (dimk4, int): 32 бита Windows
dpgapi with driver (ntldr, vol4ok, int), pdbparser (dimk4): 32 и 64 бита, стадия тестирования, часть dbgapi usermode - необходимо перенести все в драйвер
Syntax highlighter (r_e): необходимо переписать под новую архитектуру

Утерянные или устаревшие модули - Ms-Rem (dbgapi), analyzer (Styx), tracer (MiraclE, HoBleen)

Поиск разработчиков, поддержка проекта, feedback - Archer
Остальные участники мне неизвестны.

Первый комит обновленного ядра отладчика - сегодня. Фидбэк, предложения, участие в разработке - приветствуются.

| Сообщение посчитали полезным: ClockMan, neomant, ==DJ==[ZLO], Artem_N, vnekrilov, daFix, drone, Gideon Vi, _ruzmaz_, obfuskator, VAD87, =TS=, stas_02

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

Создано: 31 мая 2012 19:22
· Личное сообщение · #9

Так, пора знакомить с проектом.

Качаем вот эту хрень поиграться: http://rghost.ru/38396993

Что здесь? Начну с того, что в сборке не хватает dbgapi.sys и не с проста. Отладчик построен модульно. Т.е. вы можете зацепить dbgpai.dll к своей программе и использовать хоть как TitanEngine (я не знаю, что из себя представляет последний, могу только догадываться). Отдельно существует tracer.lib. Специально не сделан в виде DLL, ибо бессмысленно. Пока у нас не был готов драйвер (2009 год), мы делали заглушку, а потом решили, что ее можно и оставить. У вас может не быть прав админа или драйвер вдруг начнет синячить (хотя его разрабатывали тщательно и все баги будут фикситься), тогда вы с легкостью подцепляете DBG API своей операционной системы (сейчас речь только о Windows) и работаете без драйвера, но, понятное дело, всех красот отладки, что дает драйвер вы таким образом не получите.

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

Сборка номер 1, 32 бита:

Пакет DBGAPI, работа через драйвер:
dbgapi.sys
dbgapi.dll

Пакет DBGAPI, работа через Windows Debug API:
dbgapi.dll

Интерфейс командной строки (CLI, трейсер встроен):
cli.exe

Графический интерфейс (GUI, трейсер встроен):
QtCore4.dll
QtGui4.dll
ui.exe


Аналогично под 64 бита. Под другие операционные системы "dll" заменяется, например на "so", и все также в этом духе.

Я могу работать с драйвером из консоли, а могу через графический интерфейс работать как в OllyDbg. Т.е. имеем две "шапки" и два ядра. Если все это дело перекомпилить под 64 бита, выглядит все точно также. Как только будет создан интерфейс удаленной отладки, можно будет говорить о 32-битном GUI под винду и 64-х битном драйвере на линуксе (т.е. отладка драйвера под 64-х битную линь из 32-х битный винды). Пока же надо понимать, что интерфейс управления и ядро должны быть скомпилированы с одинаковой разрядностью.

Проект сейчас живет в Visual Studio 2010. Используется стандарт C++0x и библиотеки boost и QtSDK. Последняя - только в GUI. Проект очень большой и мне тупо лень его настраивать, поэтому Qt периодически ругается, что не может найти файл vs100.pdb. Повторная компиляция после сборки решает эту проблему (да - да, lame way). И вообще я строитель, мне вот приснилось, что я программист, до сих пор не отпускает (C) Шутка с работы.

Что за херня в окне точек останова, где же обещанное окно опций и показ всех регистров в двух вариантах. Где окно дизассемблера в конце концов и возможность сделать хоть что-то, кроме тупого трейса и неработающего TraceOver? Ну во-первых сегодня пока еще не 1 июня, а я и обещал выкидыш, которым не обязательно сразу же можно будет начать пользоваться. Все дело в том, что это в любом случае черновой вариант. Главное, что я успел сделать - это слить ВЕСЬ опыт разработки проекта воедино. Это и замечательный трейсер Димы, и концепт построения классов для работы с точками останова от Rascal'а. Код сейчас выглядит очень страшно, смешанный code style и смешанные архитектуры. Я изначально планировал пока не брать концепт Rascal'а, а доделать все на трейсере 2009-ого года (кстати трейсер Миракла потерян навсегда, HoBleen "писал его" дизассемблером, что некоторое время можно было наблюдать на GoogleCode). Из-за очень глупой ошибки, которая называется жадность, проект чуть не задохнулся. Каждый хранил исходники у себя, а у нас тут люди каждый день куда-то исчезают. Где тот же Миркал и Гоблин сейчас, не знает никто (а может и знает, но исходников все равно больше нет). Исходники драйвера Мс-Рема были спасены, а это самое главное. Драйвер был полностью переписан и допилен до поддержки 64 бит. На сколько это правда я буду выяснять в июне. Пока нужно решить, что делать сейчас. Нет смысла собирать небоскреб на деревянном фундаменте. Пока будет дебажить без драйвера и отлаживать usermode-часть. Жду жесткой критики по GUI, а я пока буду думать как засунуть инфу о точках останова в список, т.к. раньше интерфейса для этого не было продумано.

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

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


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

Создано: 31 мая 2012 19:31 · Поправил: reversecode
· Личное сообщение · #10

после запуска ui.exe и попытке открыть в нём cli.exe, прекращение работы программы...

а на svn когда все это пойдет?
я запутался, svn тутошний или тамошний на гугле?

int пишет:
Версия винды?

на висте 32 тоже самое



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

Создано: 31 мая 2012 19:39
· Личное сообщение · #11

Сейчас существует около 7-и кусков проекта, три части на гугле. Остальное на местном SVN. Сейчас проект открывается и в дальнейшем будет на гугле. Здесь останутся только очень сырые компоненты, такие как анализатор.

Комит на SVN будет сегодня, когда допилю все что успею по GUI.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 19:49
· Личное сообщение · #12

int
Падает на всем, вываливается в недрах ntdll



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 31 мая 2012 19:55
· Личное сообщение · #13

F_a_u_s_t, удалось открыть notepad )))



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

Создано: 31 мая 2012 19:58
· Личное сообщение · #14

F_a_u_s_t пишет:
Падает на всем

F8 не жми. Это не отладчик, это GUI. Вот GUI и комментируйте, а отладчик будет завтра. В трейсере еще есть пара косяков, про них знаю. Перезапуск сейчас криво работает, после переноса на новый вид точек останова (в смысле полностью новый модуль).



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 20:03
· Личное сообщение · #15

int
Дело не в F8, падает при открытии файла, работает только на утилитах в винде.



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

Создано: 31 мая 2012 20:04
· Личное сообщение · #16

Версия винды?



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 20:08
· Личное сообщение · #17

int
Windows XP SP3



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 31 мая 2012 20:10
· Личное сообщение · #18

F_a_u_s_t пишет:
работает только на утилитах в винде

это да.

int, а сессии будут сохраняться? Где драг энд дроп?



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 20:15
· Личное сообщение · #19

int
На окне CPU сплитер через попу работает, можно сдвинуть само окно, не зависимо от остальных, положение окна по умолчанию тоже странное, почему оно не закреплено с другими окнами, а находится само по себе.



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

Создано: 31 мая 2012 20:29
· Личное сообщение · #20

NikolayD пишет:
Где драг энд дроп?


Не будет его. Сессии как в ольке в смысле? Или расположение окон? Такую мелочь спрашиваете...



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 31 мая 2012 20:39
· Личное сообщение · #21

int пишет:
Сессии как в ольке в смысле? Или расположение окон?

и то и другое.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 20:41
· Личное сообщение · #22

int
Адреса, сделать возможность выводить в формате 024ffc0 и 024FFC0.
Опять же в адресах, 0x , сделать возможность не отображать ибо некоторых (меня) раздражает.



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

Создано: 31 мая 2012 20:44
· Личное сообщение · #23

NikolayD пишет:
и то и другое.

Будет, но не сразу.

F_a_u_s_t
Сорсы открыты, в чем проблема? Хотелось бы более конструктивную критику. Или намек на то, что пока критиковать нечего? Детали конечно же можно будет настраивать, но черт знает когда до этого дело дойдет.

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

Вот мне лично окно бряков не нравится. Полоска с заголовками просто огромадная. Не хочется вторую иду пилить.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 20:50
· Личное сообщение · #24

int пишет:
Сорсы открыты, в чем проблема?

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



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

Создано: 31 мая 2012 20:52
· Личное сообщение · #25

Что вы называете сплитером? Доки, виджеты или что-то другое?



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 21:00
· Личное сообщение · #26

int
Разделители между окнами, когда за границу окна берешься появляется курсор обозначающий разделение, вот граница окна это сплиттер.



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

Создано: 31 мая 2012 21:03
· Личное сообщение · #27

Короче подробней, что вы хотите? Чтобы окно CPU было приклеено к остальным окнам (типа как Hex дамп, регистры и стэк)? Этого не будет, это Dockable интерфейс вместо олькиного MDI.




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

Создано: 31 мая 2012 21:06 · Поправил: reversecode
· Личное сообщение · #28

у кого как, но у меня разделитель в окне breakpoint, между address и size - двигать нельзя)

че дальше флудить? ждем когда будет более менее работать
сечас работает только на виндовс файлах! на других таргетах падает
ps vista 32

F_a_u_s_t
помоему докинг такой же как и в ida, аля qt интерфейс



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 31 мая 2012 21:15
· Личное сообщение · #29

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



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

Создано: 31 мая 2012 21:16
· Личное сообщение · #30

Разделитель в окне бряков поправил.



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 31 мая 2012 21:20 · Поправил: Veliant
· Личное сообщение · #31

В целом гуй нормальный. Замечания пока следующие:
1)Cpu окно пустым остается
2)Cpu окно не растягивается при масштабировании формы как остальные
3)Между CPU и Log нет сплиттера, он где-то правее
4)Нет смысла прикреплять CPU к левому краю. тк например туда бы не плохо вместилось окно бряков
5)почему не list а edit везде кроме бряков?
6)При нажатии на Options подвисает порядком

P.s. парой месяцев назад пробовал сделать олькин интерфейс на winapi
http://rghost.ru/38400050


<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Крэки, обсуждения —› проект по написанию отладчика
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати