Создано: 15 мая 2011 16:36 · Поправил: PE_Kill New! Цитата · Личное сообщение · #1
Плагин для отладчика OllyDbg 2. Плагин помогает отлаживать программы с несложной защитой от отладки. Т.к. вторая версия OllyDbg не поддерживает плагины, вам придется внедрить код в отладчик для подгрузки плагина. В архиве уже пропатченый exe версии 2.01 (Alfa 2). При запуске отладчика плагин добавляет меню Options -> OllyExt, где есть скудные (пока) настройки.
* Hide from PEB - обнуляет в PEB флаги BeingDebugged и NtGlobalFlag * Protect debug registers - скрывает и защищает от модификации отладочные регистры посредством SEH и Get/SetThreadContext
Баги: XQuader пишет: Кста, если стоит в настройках шагать юзая HW бряки, то процесс сразу стартует (в олькином логе видно, что прибивается её бряк на ЕП и остальные, если стояли при запуске ) => начало отладки должно начинаться с Int3 бряка.
Создано: 15 мая 2011 19:08 · Поправил: XQuader New! Цитата · Личное сообщение · #5
Кста, если стоит в настройках шагать юзая HW бряки, то процесс сразу стартует (в олькином логе видно, что прибивается её бряк на ЕП и остальные, если стояли при запуске ) => начало отладки должно начинаться с Int3 бряка. ЗЫ. Прикрутил к сборке SND 2.0, брать здесь. ЗЗЫ. Линк поправил
Создано: 30 мая 2011 20:58 · Поправил: Veliant New! Цитата · Личное сообщение · #8
Позволил себе немного попилить ольку, на вашей базе. Если быть точным подменил свою ollyext.dll http://rghost.ru/8633771 Что обходит: ZwQueryInformationProcess с классами 0x07 - ProcessDebugPort 0x1E - ProcessDebugObjectHandle 0x1F - ProcessDebugFlags ZwSetInformationThread спараметром 0x11 - ThreadHideFromDebugger
Пока что без морды настроек. Есть желание сначала скрыть по максимуму, потом уже чебоксы прикрутить
Usulgurt пишет: А достижения предыдущего товарища в этом направлении как бы игнорируются? Ничуть не хочу оскорбить PE_Kill и его труд, просто попался прот который палит весь этот список, и оказалось проще написать свое чем прикручивать к чужому свой функционал. Если PE_Kill будет заинтерисован в объединении усилий - я только за, ну а нет - буду делать свою реализацию. Никому от этого хуже не станет.
Создано: 30 мая 2011 22:33 New! Цитата · Личное сообщение · #9
Veliant пишет: Позволил себе немного попилить ольку, на вашей базе. Если быть точным подменил свою ollyext.dll А достижения предыдущего товарища в этом направлении как бы игнорируются?
Создано: 5 июня 2011 00:13 · Поправил: Veliant New! Цитата · Личное сообщение · #13
Итак. Так как выдался свободный денек решил попилить вторую ольку. Начал навешивать на нее плагинную систему. Сразу скажу что изучив plugin api первой оли я отбросил затею делать совместимый код. На данный момент уже имеются некоторые рабочие функции вроде добавления в меню, run/trace аналоги горячих клавиш, чтение памяти, запись в память, ассемблирование команды, установка/снятие int3 бряков, вывод в log. (Остальные функции из экспорта пока как заглушки)
На данный момент пока что довольно сыро, тк писалось за один день на коленке в FASM'е.
Собственно вот пример на погонять. http://rghost.ru/9405861
Буду признателен если кто изучал вторую ольку и подкинет пару адресов функций которые можно вынести в api плагина.
Сразу оговорюсь что проект будет свернут, если разработчик все же сблагоизволит добавить свой PDK, а пока это вынужденная необходимость
Временное описание для тех кого заинтересовало AddMenuItem (WCHAR*text, FARPROC* MakeMenu, FARPROC* Handler) text - надпись makeMenu - указатель на процедуру, которая создаст подменю и вернет HMENU, либо 0 для однострочной записи Handler - обработчик меню (для выпадающих меню передается ID,которое должен сам сравнивать и вернуть 0 или 1 в случае если ID принадлежит ему) AddLogItem (_DWORD addr, WCHAR*text) DbgReadMemory (void *addr, void *buffer, size) DbgWriteMemory (void *addr, void *buffer, size) DbgRun() DbgRunThread() DbgStepInto() DbgStepOver() DbgTillRet() DbgSetInt3Break (void *addr) DbgDelInt3Break (void *addr) DbgAssemble (void *addr, WCHAR *command, void *buffer) addr - адрес относительно которого ассемблировать command - юникод строка с командой buffer - указатель на массив в 32 байта, куда будет сохранен бинарный код
Для случаев патча самой ольки PmHookOllyIAT (void *addr, void *handler) addr - адрес который надо искать в IAT handler - на что подменить
Ранг: 660.9 (! !) Статус: Участник ALIEN Hack Team
Создано: 6 июня 2011 10:34 · Поправил: ARCHANGEL New! Цитата · Личное сообщение · #14
Veliant
А что - идея с хайдом ольки мне нравится. Хотя Плагин СДК как таковой меня мало интересует. Как вы отнеслилсь бы к драйверному сокрытию отладчика? Т.е. к присобачиванию дровины к вашему плагину? Честно говоря, не смотрел, как вы скрывали её. Может быть, это всё у вас уже реализовано? Если Вас не затруднит, введидте в курс дела, как вы добивались сокрытия?
Создано: 6 июня 2011 13:08 New! Цитата · Личное сообщение · #16
ARCHANGEL пишет: А что - идея с хайдом ольки мне нравится. Хотя Плагин СДК как таковой меня мало интересует. Как вы отнеслилсь бы к драйверному сокрытию отладчика? Т.е. к присобачиванию дровины к вашему плагину? Честно говоря, не смотрел, как вы скрывали её. Может быть, это всё у вас уже реализовано? Если Вас не затруднит, введидте в курс дела, как вы добивались сокрытия? Я бы с радостью, но у меня нет опыта программирования дров под винду. Поэтому на данный момент, как сказал PE_Kill, реализовано палевным способом - сплайсом функций ntdll кодом вида mov eax, address / call eax
Создано: 8 августа 2011 16:35 · Поправил: Veliant New! Цитата · Личное сообщение · #19
dimcha пишет: 3 августа вышла OllyDbg 2.01 alpha 4 с поддержкой системы плагинов. Да, я видел эту новость, поэтому, скорей всего, мой проект сворачивается
Gideon Vi пишет: если сворачивать только из-за того, что в мега-глючной версии добавили плаги - зря. Ну честно признаться первая мысля была - теперь проще будет все функции найти и забить себе))) Поюзал новый билд пару дней - вернулся на старый
Создано: 13 августа 2011 18:42 · Поправил: Veliant New! Цитата · Личное сообщение · #27
--DEL-- (fix кривой экспорт)
P.S. Если возникает вопрос зачем мне это, после добавления оффициального PDK - задумка прежде всего в создании обратной совместимости с плагинами от 1.10