Сейчас на форуме: Magister Yoda, site-pro, Rio, johnniewalker (+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 мая 2012 21:37 · Личное сообщение · #2 |
|
Создано: 31 мая 2012 21:48 · Личное сообщение · #3 Veliant пишет: При нажатии на Options подвисает порядком Пустое меню. Забыл вставить QAction в QMenu. Уже поправлено. Veliant пишет: почему не list а edit везде кроме бряков? Чтобы рисовать можно было. Я вот уже смотрю на list и ужасаюсь. Может все-таки с нуля его переписать. Никакое субклассирование не поможет. Veliant пишет: Cpu окно пустым остается Неудивительно: cpuwindow.cpp: ############################ #include "stdafx.h" #include "cpuwindow.h" ############################ CPU самое сложное, буду делать в конце. Сначала окно опций и максимально уйти от разработки ядра, в смысле вынести все необходимые интерфейсы из ядра отладчика, чтобы не переключаться по 10 раз в день из разработки DBG API и трейсера в GUI. После более менее сносного GUI будем цеплять драйвер. Gideon Vi пишет: close не прибивает процесс. Известный косяк. Это надо "правильно" трейсером пользоваться. В смысле косяк со стороны ГУИ. Допилю все косяки связанные с отладкой в ближайшие дни. |
|
Создано: 31 мая 2012 21:49 · Личное сообщение · #4 |
|
Создано: 31 мая 2012 21:52 · Личное сообщение · #5 |
|
Создано: 31 мая 2012 22:35 · Личное сообщение · #6 |
|
Создано: 31 мая 2012 23:54 · Личное сообщение · #7 |
|
Создано: 01 июня 2012 11:49 · Личное сообщение · #8 |
|
Создано: 01 июня 2012 12:32 · Поправил: reversecode · Личное сообщение · #9 F_a_u_s_t пишет: Есть куча критики по исходникам и проекту в общем, такая критика принимается? доиграетесь пока всех пошлют лес валить критика - почему пробел левее, а не правее? пусть проект пилится, пока не будет более менее рабочим в бета версии - нестоит доставать глупостями F_a_u_s_t пишет: всего лишь отсутствие документации по архитектуре исходники есть! что еще надо?) помоему там и так все понятно F_a_u_s_t пишет: отсутствие в исходниках комментариев к функциям, что они делают, их параметрам, называется догадывайся сам, а при том, что потом можно было пройтись doxygen и была бы готовая документация гадость все это! делай форк и документируй))) |
|
Создано: 01 июня 2012 12:40 · Личное сообщение · #10 |
|
Создано: 01 июня 2012 13:15 · Личное сообщение · #11 reversecode пишет: критика - почему пробел левее, а не правее? Нет, куда скромнее, всего лишь отсутствие документации по архитектуре, общий концепт отладчика, какие интерфейсы, какие стандартные модули, их интерфейсы, отсутствие в исходниках комментариев к функциям, что они делают, их параметрам, называется догадывайся сам, а при том, что потом можно было пройтись doxygen и была бы готовая документация. В исходника куча закомментированых кусков и нет не todo не bug information, а так да, пробелы это святое. В общем ясно, что архитектурой никто не занимался и все на самотеке, int мну банить не надо, я из светлых побуждений. BoRoV На месте, открой sln в notepad++ и сам увидишь под какую студию проект. |
|
Создано: 01 июня 2012 13:27 · Личное сообщение · #12 F_a_u_s_t пишет: На месте, открой sln в notepad++ и сам увидишь под какую студию проект. ...\minidbg\prj\vs90\opendbg.sln (как бы всё правильно) Code:
...\minidbg\prj\vs100\ - где проект? в этой папке только файл с опциями к солюшену а самого его нет. ----- Лучше быть одиноким, но свободным © $me |
|
Создано: 01 июня 2012 13:33 · Поправил: F_a_u_s_t · Личное сообщение · #13 BoRoV пишет: ...\minidbg\prj\vs100\ - где проект? Наверное забыл переложить, ничего страшного ибо очевидно. reversecode пишет: исходники есть! что еще надо?) помоему там и так все понятно Попробую объяснить на пальцах. Есть проект - отладчик, причем модульный, только интерфейса нет, из каких модулей состоит, сколько их планируется, какой их интерфейс, например, в исходниках есть todo анализатор, так вот, напишет кто то это анализатор, а тут раз и интерфейс чем то не устроит и придется менять из за этого нужен будет рефакторин анализатора, хотя интерфейс того же трейсера можно было продумать заранее, как и интерфейс анализатора, какие прототипы функций, какие параметры, что от него может понадобится, тут еще одна проблема, один модуль пишет один человек, второй пишет другой, а завтра они по каким либо причинам уйдут из проекта, придут другие и им в место того что бы писать код нужно втыкать во все исходники что бы вкурить логику и собственно сам фронт работы. В добавок, это все тормозит работы, что бы допилить один модуль нужно ждать пока кто то допилит другой ибо интерфейс его еще не известен. Хоть и сумбурно написал, но думаю смысл понятен. |
|
Создано: 01 июня 2012 16:22 · Личное сообщение · #14 Doxygen будет потом. Это мировой стандарт. Но код сейчас так динамично переписывается, уходят и появляются целые модули. Нет смысла комментировать сейчас альфа-версию. Вот будет статус бета, тогда и начнутся комментарии. И PDK будет с полной документацией и примерами. Сейчас основная задача - сделать достойную замену OllyDbg под 64 бита. Со скриптами, всеми видами бряков, менеджером памяти, окном Hex-дампа, то чего еще нет вообще. Ну и конечно допилить то, что есть сейчас, т.к. глюков просто немерено. BoRoV пишет: А куда делся проект под vs2010? Перепутал opendbg.suo с opendbg.sln. Сейчас поправлю. | Сообщение посчитали полезным: ClockMan |
|
Создано: 01 июня 2012 16:50 · Личное сообщение · #15 |
|
Создано: 01 июня 2012 16:56 · Личное сообщение · #16 Никого банить не буду в принципе. До бета-версии отладчика я снимаю с себя статус модератора форума. А значит мне нельзя писать персональные темы, я не слежу за оффтопом и цензурой в каких-либо разделах. Хватит уже того, что меня Ev1l выбесил до белого каления. Я не хочу, чтобы какие-то мои личные проблемы помешали выходу бета-версии. А проблем хватает: мне сейчас негде жить (не успел во время разрешить вопрос съема, ипотеку брать боюсь), проблемы в личной жизни (развожусь с женой) и еще кое-какие, не суть. Именно поэтому все заказы, которые я брал по R/E сейчас заброшены. Их я не могу делать на работе. А данный проект это один из проектов компании, где я работаю. Поскольку сейчас проектов у нас выше крыше, этим конкретным занимаюсь только я, и то у меня еще целый набор задач стоит. На основании написанного, поддерживаются холивар, идеи, предложения, баг-репорты в любом виде (желательно коды ошибок вылета, адреса падений с приложенными модулями где упало, чтобы мне не ставить себе 100500 операционных систем, скриншоты приветствуются). Когда запустим драйвер, потребуются еще и дампы синяков, чтобы разбираться с несовместимостями с разными программами и конфигурациями. Короче дайте проекту жить, проявите к нему интерес. Думаю, что GNU GPL 3 ни кого не обидет. Проект наверняка будет использоваться и аверами, и вксерами (куда без них ). Единственное, что я не приветствую (но наказывать не буду) это неконструктивная критика типа "проект хрень, инта лох". Пишите почему "хрень", и почему "лох". Если для завершения написания проекта потребуется меня научить программировать, то значит так и придется сделать. F_a_u_s_t пишет: Пиши хоть todo и bug ибо приходится гадать почему код закомментирован Все что закомментировано должно будет переписано. |
|
Создано: 01 июня 2012 17:45 · Поправил: reversecode · Личное сообщение · #17 ui он и в африке ui собирались же с автором edb кооперироватся? чем плох ui http://codef00.com/img/debugger.png содрать/скопировать/позаимствовать/взять идею int пишет: На основании написанного, поддерживаются холивар, идеи, предложения, баг-репорты в любом виде (желательно коды ошибок вылета, адреса падений с приложенными модулями где упало, чтобы мне не ставить себе 100500 операционных систем, скриншоты приветствуются). народ ждет рабочего интерфеса int пишет: Так и будет. Evan не против, тем более он же чем-то думал, когда выбирал лицензию GNU GPL 2. ну тогда ждем вести в поля боя, типа: код Evan-а уже включается в opengdb... |
|
Создано: 01 июня 2012 18:08 · Личное сообщение · #18 |
|
Создано: 01 июня 2012 18:11 · Личное сообщение · #19 |
|
Создано: 01 июня 2012 18:17 · Личное сообщение · #20 |
|
Создано: 01 июня 2012 20:23 · Личное сообщение · #21 |
|
Создано: 01 июня 2012 20:49 · Личное сообщение · #22 |
|
Создано: 01 июня 2012 20:55 · Поправил: Svinovod · Личное сообщение · #23 |
|
Создано: 01 июня 2012 21:09 · Личное сообщение · #24 |
|
Создано: 01 июня 2012 21:16 · Личное сообщение · #25 |
|
Создано: 01 июня 2012 21:16 · Поправил: F_a_u_s_t · Личное сообщение · #26 |
|
Создано: 01 июня 2012 21:23 · Личное сообщение · #27 |
|
Создано: 01 июня 2012 21:40 · Поправил: Promix_17 · Личное сообщение · #28 Bugs: - При открытии NET приложения с помощью UI.exe, приложение сразу же исполняется, когда его закроешь UI.exe вылетит - Вылетает при открытии любого приложения, работающего с сетью (если не получиться повторить - пришлю конкретный пример) - Интересный баг - при активном выполнении программы (F9) отлаживаемая программа начинает жутко тормозить при попытке запуска диалогового окна открыть файл (Актуально только для Win7, на XP всё нормально) |
|
Создано: 01 июня 2012 22:01 · Личное сообщение · #29 |
|
Создано: 02 июня 2012 02:06 · Личное сообщение · #30 Svinovod пишет: Ваш отладчик сможет работать в Ring0? Нужна софтина для исследования 3-го СтарфорсаЕщё я бы добавил макросы как в Excel: т.е. нажал "запись",провел модификацию\трейс кода,записал макрос.Затем одной горячей клавишей всё это в автоматическом режиме можно было бы повторить Многие фичи драйвера позволяют отлаживать и ring0. Проблема создания видео-драйвера или сетевого драйвера. Гуи ринг0 можно попробовать срисовать с NGDBG by Great (кстати отладчик Мс-Рема изначально тоже назывался NGDbg), не знаю правда на сколько оно готово, можно рипнуть с софтайс, благо у меня есть положительный опыт его исследования. У меня нет никакого опыта разработки драйверов, кроме простейших руткитов, которые не лезут глубоко в устройства и порты ввода/вывода, так что нужен кодер драйвера. А вообще удаленная отладка предусмотрена архитектурой OpenDbg DBG API. Т.е. в недалеком будущем можно говорить об универсальном отладчике на все случаи жизни. Другой вопрос, тот факт, что текущий драйвер хучит IDT. Я не идеально знаю архитектуру x86 (главным образом защищенный режим имеется в виду), хотя пришлось очень много ее изучать, поэтому не могу сказать, можно ли реализовать работу с виртуальной памятью как-то иначе (например, пропатчив Native API винды). Хук IDT означает бо-о-ольшие проблемы с 3-им старфорс, который на сколько я знаю регулярно проверяет IDT и более того, сам его хучит. int3 точно, хотя в OpenDbg хука int3 нет. Короче гарантий подружить сабж со старом нет. И говорить об этом можно будет еще не скоро. Идея с макросами принимается и будет реализовываться, макросы мне тоже нравятся, например использую их в Notepad++. Promix_17 пишет: Как я понял ring0 ещё не работает? Todo:- Окно CPU не работает. Это нормально? - Программа вылетает после выполнения программы при открытии новой. По поводу ring0 шутку оценил, зачетно. Вы хотя бы умудритесь этой чернухой (в плане жестокого чернового варианта) ринг3 отладить хоть как-то. Код я выложил, чтобы услышать мнение экспертов (как в реверсе, так и среди программистов) по поводу архитектуры, какие-то советы, а может и описание ошибок использования каких-либо парадигм. Гуи выложил, чтобы понять, стоит ли его дальше продолжать делать или вернуться на wxWidgets, который развивается очень медленно и собирается с простыней предупреждений (warnings), что говорит о незрелости проекта. Это уже третья попытка написать гуи, первый из которыых я видел только на картинке (писался на делфи). F_a_u_s_t пишет: русская локаль то из гуя, формат строки, ну в трейсере нужно сделать проверку на наличие файла Ошибка введения юникода в архитектуру, сейчас буду чинить. Я разрабатываю из Win7 64, это и объясняет почему у Gideon Vi баг тоже не проявился. Там же каталоги пользователей с русскими именами являются всего лишь ссылками на соответствующие англоязычные названия ("Пользователи" -> "Users" и все в таком духе) Promix_17 пишет: Bugs: Очень интересно, буду смотреть. |
|
Создано: 02 июня 2012 09:59 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
eXeL@B —› Крэки, обсуждения —› проект по написанию отладчика |