Сейчас на форуме: 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му варианту, но хотел бы узнать ваше мнение, а также найти желающих заняться этим делом. З.Ы. отладочное ядро для юзермодного кода я уже написал, так что приступать к написанию отладчика желающие могут хоть завтра. ----- Скажем дружно - нафиг нужно. |
|
Создано: 02 июня 2012 11:17 · Поправил: yagello · Личное сообщение · #2 |
|
Создано: 02 июня 2012 13:07 · Личное сообщение · #3 |
|
Создано: 03 июня 2012 16:27 · Личное сообщение · #4 Ну на счет полностью не согласен, но изменять там много чего. Вы просто документацию по архитектуре не видели, там все как надо. За июнь по идее бету сделать успеем. | Сообщение посчитали полезным: hlmadip |
|
Создано: 03 июня 2012 17:40 · Личное сообщение · #5 |
|
Создано: 04 июня 2012 11:07 · Личное сообщение · #6 yagello пишет: Импорт по ординалам из винсок32 криво обрабатывается? Нет никакой обработки импорта. Анализатор еще не подцеплен. Promix_17 пишет: Вылетает при открытии любого приложения, работающего с сетью Не "любое". Нормально открыл миранду, приведите пример неработающего приложения. Исправлено несколько багов, постараюсь разобраться с остальными и закомичу. |
|
Создано: 04 июня 2012 12:46 · Личное сообщение · #7 int пишет: Нет никакой обработки импорта Падает не из за импорта, а если я правильно понял, из за обработки исключений. Смотри атач. 24da_04.06.2012_EXELAB.rU.tgz - GetIp.rar |
|
Создано: 04 июня 2012 14:15 · Личное сообщение · #8 Периодически приходит отладочное сообщение, что в программе сработал останов по адресу 0x778b0fab. Если туда глянуть, то там действительно 0xCC и это ntdll.dll. Вопрос только почему. Если исключение отдать жертве, проглатывает. Еще поймал проблему отключеня/включения бряков, правда не факт, что баг присутствует в версии на SVN. Поскольку эта функция (enable(), включающая бряк) стояла в конструкторах, из-за наследования бряк врубало два раза, перезаписывая m_orig_value. Сейчас пытаюсь победить баг с тем, что временные бряки не удаляются после перезапуска: void BreakpointsManager::clearTempBreakpoints() { std::remove_if( breakpoints.begin(), breakpoints.end(), boost::bind(&Breakpoint::get_type, _1) == brk_temp // не удаляетя :\ ); } |
|
Создано: 04 июня 2012 16:35 · Поправил: ClockMan · Личное сообщение · #9 int нету вызова VirtualProtect перед записью в OEP СС, дебуг апи за вас это делать небудет Code:
ну и спецефичный файло прилогаю a902_04.06.2012_EXELAB.rU.tgz - Genrandom.exe ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. |
|
Создано: 05 июня 2012 12:20 · Личное сообщение · #10 int если не удаляются из breakpoints void BreakpointsManager::clearTempBreakpoints() { iterator it = // iterator - тип итератора контейнера breakpoints std::remove_if( breakpoints.begin(), breakpoints.end(), boost::bind(&Breakpoint::get_type, _1) == brk_temp // не удаляетя :\ ); breakpoints.erase(it, breakpoints.end()); } может быть так попробывать? | Сообщение посчитали полезным: r_e |
|
Создано: 05 июня 2012 12:51 · Личное сообщение · #11 |
|
Создано: 05 июня 2012 12:56 · Личное сообщение · #12 |
|
Создано: 05 июня 2012 13:21 · Поправил: neomant · Личное сообщение · #13 |
|
Создано: 05 июня 2012 14:35 · Личное сообщение · #14 |
|
Создано: 05 июня 2012 15:05 · Личное сообщение · #15 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . |
eXeL@B —› Крэки, обсуждения —› проект по написанию отладчика |