Сейчас на форуме: Magister Yoda, site-pro, Rio (+5 невидимых) |
eXeL@B —› Крэки, обсуждения —› проект по написанию отладчика |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
Посл.ответ | Сообщение |
|
Создано: 24 ноября 2006 08:47 · Поправил: Модератор · Личное сообщение · #1 Наверное все вы хотели бы иметь отладчик максимально приспособленый для борьбы с антиотладкой, а также умеющий отлаживать драйвера (включая ring0 защиты), и имеющий при этом удобный GUI интерфейс. К сожалению, сейчас достойных отладчиков практически нет. Из юзермодных конечно рулит оля, но по части скрытности с ней все очень плохо, баги не фиксятся, проект мертв (2я версия если и выйдет, то очень нескоро). В рядах ядерных отладчиков все еще хуже. Soft-Ice умер. windbg - гавно (хотя кому-то и нравиться, не буду спорить), Syser имеет красивый интерфейс, но весьма слаб в остальном. Ну и про отладку ring0 защит существующими отладчиками, даже говорить нечего. В связи с этим у меня давно назревает идея написания универсального и мощьного отладчика, для отладки как юзермода, так и ядра. При этом хочеться получить развивающийся и поддерживаемый проект. Сам я не имею достаточно времени для реализации этой идеи в полном обьеме, но имею все необходимые технологии для построения полностью недетектируемого отладчика (причем большинство их уже обкатано). Поэтому я предлагаю энтузиастам начать такой проект. Я со своей стороны предоставляю отладочное ядро, которое реализует весь необходимый набор функций, а вы пишете собственно сам отладчик. Есть три варианта развития проекта: 1 - Фриварная программа. Вариант этот хорош для пользователей, но я сомневаюсь, что разработка в этом случае зайдет дальше 1й версии. Такой проект неизбежно обязан быть заброшен, потому что авторам быстро это дело надоест. Сделать из проекта платную программу в этом случае будет тоже нельзя (особенно при большом количестве авторов), так как врядли все на это согласяться. 2 - Мы собираем команду, делаем программу, после чего я обеспечиваю ее раскрутку и продвижение. С доходов каждый получает свой процент. Этот вариант плох тем, что у авторов может не хватит терпения дождаться хороших доходов, и проект может быть заброшен. 3 - Я собираю команду и финансирую написание отладчика. После чего я имею полные права на код, и продаю его по своему усмотрению. Этот вариант плох тем, что трудно найти людей которые будут на таких условиях хорошо писать код. Скорее всего все захотят просто срубить бабла, напишут глючную первую версию, и исчезнут после получения оплаты, а я останусь с неподдерживаемым и кривым кодом, что тоже сулит проекту недолгую жизнь. Сам я склоняюсь к 2му варианту, но хотел бы узнать ваше мнение, а также найти желающих заняться этим делом. З.Ы. отладочное ядро для юзермодного кода я уже написал, так что приступать к написанию отладчика желающие могут хоть завтра. ----- Скажем дружно - нафиг нужно. |
|
Создано: 31 декабря 2007 09:33 · Личное сообщение · #2 |
|
Создано: 31 декабря 2007 10:21 · Личное сообщение · #3 |
|
Создано: 31 декабря 2007 10:21 · Личное сообщение · #4 |
|
Создано: 31 декабря 2007 11:13 · Личное сообщение · #5 |
|
Создано: 31 декабря 2007 11:14 · Личное сообщение · #6 Потому что авторы не хотят открывать исходники (имхо в этом и состоит их главная ошибка). ----- PGP key |
|
Создано: 31 декабря 2007 15:02 · Личное сообщение · #7 Нужны логи приватного общения участников проекта, в частности только обсуждения технических вопросов Эта инфа нужна чтобы не повторять уже сделанные ошибки и в чем проблема того, что коллективно все ложат член по-прошествии одного-недели дней Основное описание того, что уже есть, для того чтобы можно было понять и сделать выводы Для примера возьмем ИДО Там есть sdk, любой может взять изучить и написать плагин, который дополнит недостающий&индивидуальный функционал Зачем пережевывать индивидуально с каждым одно и тоже, это тоже время, потраченное, судя по результатам в пустую Тогда обсуждение было найти людей, у которых уже есть готовые наработки и заюзать их(как окозалось их "нет") и была непонятка с продажей, по-этому был смысл скрывать тех-обсуждения Сейчас получается все бесплатно, смысл скрывать от народа важную инфу, которая поможет понять сможет ли человек асилить написания нужных "компонентов" для отладчика Написание анализатора требует понимания работы всего кодеса интерфейса и основного движка отладчика Ознакомление с чужим кодом может занять не только неделю, но и более А если есть проблемы с совместимостью структур и т. д. и можно сделать гораздо удобнее движок анализатора, надо только будет чуть изменить, кто будет решать изменения в основном проекте Тут условия ужаснах, есть движок, и танцуй с бубном как хочешь, подстраивайся, но может возникнуть ситуация, если не трогать основной движок, что нужная финча не получится, много раз на такое попадал Тут нужна мобильность Давайте поймем причину, почему уже много людей отказались от участия в проекте Может не все так гладко, как хотелось бы |
|
Создано: 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 |
|
Создано: 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 |
|
Создано: 31 мая 2012 19:31 · Поправил: reversecode · Личное сообщение · #10 |
|
Создано: 31 мая 2012 19:39 · Личное сообщение · #11 |
|
Создано: 31 мая 2012 19:49 · Личное сообщение · #12 |
|
Создано: 31 мая 2012 19:55 · Личное сообщение · #13 |
|
Создано: 31 мая 2012 19:58 · Личное сообщение · #14 |
|
Создано: 31 мая 2012 20:03 · Личное сообщение · #15 |
|
Создано: 31 мая 2012 20:04 · Личное сообщение · #16 |
|
Создано: 31 мая 2012 20:08 · Личное сообщение · #17 |
|
Создано: 31 мая 2012 20:10 · Личное сообщение · #18 |
|
Создано: 31 мая 2012 20:15 · Личное сообщение · #19 |
|
Создано: 31 мая 2012 20:29 · Личное сообщение · #20 |
|
Создано: 31 мая 2012 20:39 · Личное сообщение · #21 |
|
Создано: 31 мая 2012 20:41 · Личное сообщение · #22 |
|
Создано: 31 мая 2012 20:44 · Личное сообщение · #23 NikolayD пишет: и то и другое. Будет, но не сразу. F_a_u_s_t Сорсы открыты, в чем проблема? Хотелось бы более конструктивную критику. Или намек на то, что пока критиковать нечего? Детали конечно же можно будет настраивать, но черт знает когда до этого дело дойдет. По поводу окна дизасма идея ясна, вам хочется как в ольке. К сожалению пока это требует очень много затрат времени. А время лучше потратить на стабилизацию проекта. Вот мне лично окно бряков не нравится. Полоска с заголовками просто огромадная. Не хочется вторую иду пилить. |
|
Создано: 31 мая 2012 20:50 · Личное сообщение · #24 |
|
Создано: 31 мая 2012 20:52 · Личное сообщение · #25 |
|
Создано: 31 мая 2012 21:00 · Личное сообщение · #26 |
|
Создано: 31 мая 2012 21:03 · Личное сообщение · #27 |
|
Создано: 31 мая 2012 21:06 · Поправил: reversecode · Личное сообщение · #28 |
|
Создано: 31 мая 2012 21:15 · Личное сообщение · #29 int Да, приклеено, как бы объяснить, окно приклеено, за границу окна меня размер окон, за кэпшен включать докинг - перемещение окон, ибо так, как есть разделение работает через попу и докинг, приходится временами не слабо изъе... извернутся что бы вставить окно туда куда хочешь, нужно нормальное определение границ ибо скачет все и улетает вечно куда то не туда. Ну, а остальное пока нечего обсуждать ибо окна пусты, а там может жуткий repaint или баг с выводом. Пили дальше, не торопись и запасись валерианкой пригодится читать багрепорты. |
|
Создано: 31 мая 2012 21:16 · Личное сообщение · #30 |
|
Создано: 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 —› Крэки, обсуждения —› проект по написанию отладчика |