Сейчас на форуме: Magister Yoda, site-pro, Rio, johnniewalker (+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му варианту, но хотел бы узнать ваше мнение, а также найти желающих заняться этим делом.

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

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





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

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

win7x64 - не упало ни разу. чяднт?

close не прибивает процесс.



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

Создано: 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 не прибивает процесс.

Известный косяк. Это надо "правильно" трейсером пользоваться. В смысле косяк со стороны ГУИ. Допилю все косяки связанные с отладкой в ближайшие дни.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

А нельзя ли выложить релиз? И вообще где оно всё находится - на svn только два доступных (для меня) проекта, и там нет отладчика

-----
Stuck to the plan, always think that we would stand up, never ran.




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

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

Где-то через час выложу на GoogleCode, о чем отпишусь здесь же.

Лежать будет здесь (без драйвера версия):

https://opendbg.googlecode.com/svn/branches/minidbg



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

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

Залил




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

Что-то пусто в папке bin!

-----
Stuck to the plan, always think that we would stand up, never ran.




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

Создано: 01 июня 2012 11:49
· Личное сообщение · #8

ARCHANGEL
Как бы самому собрать можно, а bin в путях настроит на вывод бинаря.

int
Есть куча критики по исходникам и проекту в общем, такая критика принимается?




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

Создано: 01 июня 2012 12:32 · Поправил: reversecode
· Личное сообщение · #9

F_a_u_s_t пишет:
Есть куча критики по исходникам и проекту в общем, такая критика принимается?

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

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


F_a_u_s_t пишет:
всего лишь отсутствие документации по архитектуре

исходники есть! что еще надо?) помоему там и так все понятно
F_a_u_s_t пишет:
отсутствие в исходниках комментариев к функциям, что они делают, их параметрам, называется догадывайся сам, а при том, что потом можно было пройтись doxygen и была бы готовая документация

гадость все это!
делай форк и документируй)))




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

Создано: 01 июня 2012 12:40
· Личное сообщение · #10

А куда делся проект под vs2010?

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




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

Создано: 01 июня 2012 13:15
· Личное сообщение · #11

reversecode пишет:
критика - почему пробел левее, а не правее?

Нет, куда скромнее, всего лишь отсутствие документации по архитектуре, общий концепт отладчика, какие интерфейсы, какие стандартные модули, их интерфейсы, отсутствие в исходниках комментариев к функциям, что они делают, их параметрам, называется догадывайся сам, а при том, что потом можно было пройтись doxygen и была бы готовая документация. В исходника куча закомментированых кусков и нет не todo не bug information, а так да, пробелы это святое.
В общем ясно, что архитектурой никто не занимался и все на самотеке, int мну банить не надо, я из светлых побуждений.

BoRoV
На месте, открой sln в notepad++ и сам увидишь под какую студию проект.




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

Создано: 01 июня 2012 13:27
· Личное сообщение · #12

F_a_u_s_t пишет:
На месте, открой sln в notepad++ и сам увидишь под какую студию проект.

...\minidbg\prj\vs90\opendbg.sln (как бы всё правильно)
Code:
  1. Microsoft Visual Studio Solution File, Format Version 10.00
  2. # Visual Studio 2008


...\minidbg\prj\vs100\ - где проект? в этой папке только файл с опциями к солюшену а самого его нет.

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




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

Создано: 01 июня 2012 13:33 · Поправил: F_a_u_s_t
· Личное сообщение · #13

BoRoV пишет:
...\minidbg\prj\vs100\ - где проект?

Наверное забыл переложить, ничего страшного ибо очевидно.

reversecode пишет:
исходники есть! что еще надо?) помоему там и так все понятно

Попробую объяснить на пальцах.
Есть проект - отладчик, причем модульный, только интерфейса нет, из каких модулей состоит, сколько их планируется, какой их интерфейс, например, в исходниках есть todo анализатор, так вот, напишет кто то это анализатор, а тут раз и интерфейс чем то не устроит и придется менять из за этого нужен будет рефакторин анализатора, хотя интерфейс того же трейсера можно было продумать заранее, как и интерфейс анализатора, какие прототипы функций, какие параметры, что от него может понадобится, тут еще одна проблема, один модуль пишет один человек, второй пишет другой, а завтра они по каким либо причинам уйдут из проекта, придут другие и им в место того что бы писать код нужно втыкать во все исходники что бы вкурить логику и собственно сам фронт работы.
В добавок, это все тормозит работы, что бы допилить один модуль нужно ждать пока кто то допилит другой ибо интерфейс его еще не известен.
Хоть и сумбурно написал, но думаю смысл понятен.



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

Создано: 01 июня 2012 16:22
· Личное сообщение · #14

Doxygen будет потом. Это мировой стандарт. Но код сейчас так динамично переписывается, уходят и появляются целые модули. Нет смысла комментировать сейчас альфа-версию. Вот будет статус бета, тогда и начнутся комментарии. И PDK будет с полной документацией и примерами. Сейчас основная задача - сделать достойную замену OllyDbg под 64 бита. Со скриптами, всеми видами бряков, менеджером памяти, окном Hex-дампа, то чего еще нет вообще. Ну и конечно допилить то, что есть сейчас, т.к. глюков просто немерено.

BoRoV пишет:
А куда делся проект под vs2010?

Перепутал opendbg.suo с opendbg.sln. Сейчас поправлю.

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

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

Создано: 01 июня 2012 16:50
· Личное сообщение · #15

int
Пиши хоть todo и bug ибо приходится гадать почему код закомментирован, то ли баг, то ли просто мертвый код оставшийся от переписывания, если баг, то в чем выражается, все это сильно упростит написание патчей.



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

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

Никого банить не буду в принципе. До бета-версии отладчика я снимаю с себя статус модератора форума. А значит мне нельзя писать персональные темы, я не слежу за оффтопом и цензурой в каких-либо разделах. Хватит уже того, что меня Ev1l выбесил до белого каления. Я не хочу, чтобы какие-то мои личные проблемы помешали выходу бета-версии. А проблем хватает: мне сейчас негде жить (не успел во время разрешить вопрос съема, ипотеку брать боюсь), проблемы в личной жизни (развожусь с женой) и еще кое-какие, не суть. Именно поэтому все заказы, которые я брал по R/E сейчас заброшены. Их я не могу делать на работе. А данный проект это один из проектов компании, где я работаю. Поскольку сейчас проектов у нас выше крыше, этим конкретным занимаюсь только я, и то у меня еще целый набор задач стоит.

На основании написанного, поддерживаются холивар, идеи, предложения, баг-репорты в любом виде (желательно коды ошибок вылета, адреса падений с приложенными модулями где упало, чтобы мне не ставить себе 100500 операционных систем, скриншоты приветствуются). Когда запустим драйвер, потребуются еще и дампы синяков, чтобы разбираться с несовместимостями с разными программами и конфигурациями. Короче дайте проекту жить, проявите к нему интерес. Думаю, что GNU GPL 3 ни кого не обидет. Проект наверняка будет использоваться и аверами, и вксерами (куда без них ). Единственное, что я не приветствую (но наказывать не буду) это неконструктивная критика типа "проект хрень, инта лох". Пишите почему "хрень", и почему "лох". Если для завершения написания проекта потребуется меня научить программировать, то значит так и придется сделать.

F_a_u_s_t пишет:
Пиши хоть todo и bug ибо приходится гадать почему код закомментирован

Все что закомментировано должно будет переписано.




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

Создано: 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...



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

Создано: 01 июня 2012 18:08
· Личное сообщение · #18

reversecode пишет:
народ ждет рабочего интерфеса

+1. Пока особо и не о чём говорить, нужно пилить )



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

Создано: 01 июня 2012 18:11
· Личное сообщение · #19

reversecode пишет:
содрать/скопировать/позаимствовать/взять идею

Так и будет. Evan не против, тем более он же чем-то думал, когда выбирал лицензию GNU GPL 2.




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 01 июня 2012 18:17
· Личное сообщение · #20

NikolayD пишет:
+1. Пока особо и не о чём говорить, нужно пилить )

+1. Пилите, Шура, пилите. Пока, считаю, обсуждать особо нечего.

-----
Следуй за белым кроликом





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 01 июня 2012 20:23
· Личное сообщение · #21

Не собирается у меня - пишет, что нет валидной версии Qt для Win32. Не мог бы кто-нибудь дать бинарь, у вас же у всех как-то собралось.

-----
Stuck to the plan, always think that we would stand up, never ran.




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

Создано: 01 июня 2012 20:49
· Личное сообщение · #22

ARCHANGEL
Инт давал же ссылку на билд - --> Link <--

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

Ранг: 3.7 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 01 июня 2012 20:55 · Поправил: Svinovod
· Личное сообщение · #23

int
Ваш отладчик сможет работать в Ring0? Нужна софтина для исследования 3-го Старфорса
Ещё я бы добавил макросы как в Excel: т.е. нажал "запись",провел модификацию\трейс кода,записал макрос.
Затем одной горячей клавишей всё это в автоматическом режиме можно было бы повторить



Ранг: 37.1 (посетитель), 11thx
Активность: 0.030
Статус: Участник

Создано: 01 июня 2012 21:09
· Личное сообщение · #24

Как я понял ring0 ещё не работает?

Todo:

- Окно CPU не работает. Это нормально?
- Программа вылетает после выполнения программы при открытии новой.

Никакую другую функциональность проверить не удалось.



Ранг: 3.7 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 01 июня 2012 21:16
· Личное сообщение · #25

Не запускается отладчик,ошибка:




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

Создано: 01 июня 2012 21:16 · Поправил: F_a_u_s_t
· Личное сообщение · #26

Promix_17
Причину вылета я нашел, не должно быть русских букв в пути.
CPU пустое, это пилотная версия, для оценки концепта UI.

Svinovod
Что то мне подсказывают звезды что ты два раза подряд открывал блокнот.



Ранг: 3.7 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 01 июня 2012 21:23
· Личное сообщение · #27

Загрузил notepad.exe в этот чудо дебаггер и сразу вылетело вот что:




Ранг: 37.1 (посетитель), 11thx
Активность: 0.030
Статус: Участник

Создано: 01 июня 2012 21:40 · Поправил: Promix_17
· Личное сообщение · #28

Bugs:

- При открытии NET приложения с помощью UI.exe, приложение сразу же исполняется, когда его закроешь UI.exe вылетит

- Вылетает при открытии любого приложения, работающего с сетью (если не получиться повторить - пришлю конкретный пример)

- Интересный баг - при активном выполнении программы (F9) отлаживаемая программа начинает жутко тормозить при попытке запуска диалогового окна открыть файл http://narod.ru/disk/3546408001/PE.exe.html

(Актуально только для Win7, на XP всё нормально)



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

Создано: 01 июня 2012 22:01
· Личное сообщение · #29

Promix_17
NET только что проверил, падает, баг имеет место быть, ноги вроде бы из трейсера растут, русская локаль то из гуя, формат строки, ну в трейсере нужно сделать проверку на наличие файла.



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

Создано: 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:

Очень интересно, буду смотреть.



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

Создано: 02 июня 2012 09:59
· Личное сообщение · #31

int пишет:
Bugs:
Очень интересно, буду смотреть.

Там два бага и оба в трейсере.


<< . 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 » Выход » ЛС
   Для печати Для печати