Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ Псевдо отладчик к исходному коду

Автор: neosapient 9.3.2011, 13:46

Здравствуйте.

Есть программа под Windows, которая умеет подгружать dll-патчи.
Я делаю свой патч, но в программу встроена защита от отладки. Когда я пытаюсь приаттачиться к процессу, чтобы отладить dll, программа падает замертво Разработчик утверждает, что именно так и работат защита.

Нужен програмный комплекс псевдоотладки работающий в два этапа:
1) Подготовка. Цель: наполнить исходник логами и встроить механизм работы с отладчиком.
Я "скармливаю" псевдоотладчику исходный код на С++. Псевдоотладчик парсит исходный код. Для каждой строчки кода вставляет лог/коментарий. Так же в исходный код вставляется серверная часть моей dll, для будущего взаимодействия с окном отладчика. Расставляются брейкпоинты, проходя через которые отладчик остановиться. Кстати, на против любой строчки кода должны устанавливаться брейкпоинты, только неактивные.
2) Рабочий режим. Цель: трассировка приложения в окне отладчика (по логам)
Из окна отладчика я должен подключиться к серверной части моей dll. Далее привычная отладка приложения


Есть ли такой псевдо отладчик? Чтобы сам в исходниках вставлял логи и, далее, работал как обычный отладчик?

P.S.
Windows XP
Visual Studio 2008

Автор: Iron Bug 10.3.2011, 16:17

отладчики в венде реализуются через запуск приложения с флагом отладки. если программа-хост определяет наличие отладчика по флагу, то отладка в принципе невозможна (во всяком случае, без хака программы). есть отладчики ядра, которые софт не видит, но про них можно целую отдельную главу написать и это не по теме на кросслпатформенном форуме. если охота копать в эту сторону, то нужно искать по именам DbgPrint user mode. это отладка через виртуальные машины или на двух компах, со спец. оборудованием. можно также заюзать утильку DebugView: останавливаться она не будет, но сообщения можно смотреть в риал-тайме и всячески фильтровать. DebugView запустится под XP без проблем и даже можно будет отлаживаться на одной машине, без виртуалок.
а так, логи можно самому вставить в дебажный код и смотреть в своих логах нужную инфу, запускаясь без отладчика. просто и без геморроя.

Автор: Влад 11.3.2011, 13:08

Цитата(neosapient @ 9.3.2011, 13:46) *
Я делаю свой патч, но в программу встроена защита от отладки. Когда я пытаюсь приаттачиться к процессу, чтобы отладить dll, программа падает замертво Разработчик утверждает, что именно так и работат защита.

Вот за такое нужно разработчику отрывать руки по самые... короче, по эти самые :-)
Самый простой выход - отпатчить эту программу так, чтобы она не обнаруживала отладчика, и потом отлаживать свою DLL, как обычно. В большинстве случаев, используются либо функции IsDebuggerPresent (посмотри в импорте), либо прямой анализ флага в PE-структурах.

PS: юридически такой патч совершенно законен и прямо разрешен законодательством РФ. Про другие страны - не в курсе :-(

Автор: Iron Bug 11.3.2011, 19:42

Цитата(Влад @ 11.3.2011, 15:08) *
Вот за такое нужно разработчику отрывать руки по самые... короче, по эти самые :-)

вот это точно :) зачем такое уродство, если любой мало-мальски грамотный хакер сможет пропатчить код. а вот нормальным разработчикам руки связывать, да ещё если в программе предполагаются патчи - это вообще какой-то мегамаразм.
а вот взломать код не так просто будет, если в этом не ковыряешься постоянно. тем более, что SoftICE прикрыли, а его китайский "аналог", пусть даже и с кряками, весь из себя кривой и какой-то недоделанный. в общем, не впечатляет ни разу.

Автор: Rocky 12.3.2011, 23:55

Цитата(Iron Bug @ 11.3.2011, 19:42) *
........тем более, что SoftICE прикрыли.......

А можно по-подробнее?

Автор: Iron Bug 13.3.2011, 11:10

Цитата(Rocky @ 13.3.2011, 1:55) *
А можно по-подробнее?

ну, вообще ещё несколько лет назад. из вики:
Цитата
Older versions exist for DOS and compatible operating systems. SoftICE was originally produced by a company called NuMega, and was subsequently acquired by Compuware in 1997, which in turn sold the property to Micro Focus in 2009. As of January 2011, Micro Focus owned the source code and patents, but was not actively maintaining the product for various technical and market reasons.

по сути, компанию NuMega развалили, скупили и уничтожили, a продукт поддерживать стало некому. после этого сорцы попали в сеть. их подобрали какие-то китайцы и теперь клепают невесть что на их основе, продавая за деньги. это нечто, крякнутое, лежит на разных торрентах, но оно даже близко не дотягивает по уровню до SoftICE и не работает под многими системами (например, 64 бит и ещё некоторые варианты). я название китайской поделки не вспомню даже, но мне она не понравилась ни разу.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)