![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
neosapient |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2008 Пользователь №: 216 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте.
Есть программа под Windows, которая умеет подгружать dll-патчи. Я делаю свой патч, но в программу встроена защита от отладки. Когда я пытаюсь приаттачиться к процессу, чтобы отладить dll, программа падает замертво Разработчик утверждает, что именно так и работат защита. Нужен програмный комплекс псевдоотладки работающий в два этапа: 1) Подготовка. Цель: наполнить исходник логами и встроить механизм работы с отладчиком. Я "скармливаю" псевдоотладчику исходный код на С++. Псевдоотладчик парсит исходный код. Для каждой строчки кода вставляет лог/коментарий. Так же в исходный код вставляется серверная часть моей dll, для будущего взаимодействия с окном отладчика. Расставляются брейкпоинты, проходя через которые отладчик остановиться. Кстати, на против любой строчки кода должны устанавливаться брейкпоинты, только неактивные. 2) Рабочий режим. Цель: трассировка приложения в окне отладчика (по логам) Из окна отладчика я должен подключиться к серверной части моей dll. Далее привычная отладка приложения Есть ли такой псевдо отладчик? Чтобы сам в исходниках вставлял логи и, далее, работал как обычный отладчик? P.S. Windows XP Visual Studio 2008 |
|
|
![]() |
Влад |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: ![]() ![]() ![]() |
Я делаю свой патч, но в программу встроена защита от отладки. Когда я пытаюсь приаттачиться к процессу, чтобы отладить dll, программа падает замертво Разработчик утверждает, что именно так и работат защита. Вот за такое нужно разработчику отрывать руки по самые... короче, по эти самые :-) Самый простой выход - отпатчить эту программу так, чтобы она не обнаруживала отладчика, и потом отлаживать свою DLL, как обычно. В большинстве случаев, используются либо функции IsDebuggerPresent (посмотри в импорте), либо прямой анализ флага в PE-структурах. PS: юридически такой патч совершенно законен и прямо разрешен законодательством РФ. Про другие страны - не в курсе :-( |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 29.6.2025, 2:45 |