crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Псевдо отладчик к исходному коду, tracert debug отладчик трассировка
neosapient
  опции профиля:
сообщение 9.3.2011, 13:46
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 27.6.2008
Пользователь №: 216

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

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

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


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

P.S.
Windows XP
Visual Studio 2008
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 10.3.2011, 16:17
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


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

Сообщение отредактировал Iron Bug - 10.3.2011, 16:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 11.3.2011, 13:08
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


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

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

PS: юридически такой патч совершенно законен и прямо разрешен законодательством РФ. Про другие страны - не в курсе :-(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 11.3.2011, 19:42
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


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

вот это точно :) зачем такое уродство, если любой мало-мальски грамотный хакер сможет пропатчить код. а вот нормальным разработчикам руки связывать, да ещё если в программе предполагаются патчи - это вообще какой-то мегамаразм.
а вот взломать код не так просто будет, если в этом не ковыряешься постоянно. тем более, что SoftICE прикрыли, а его китайский "аналог", пусть даже и с кряками, весь из себя кривой и какой-то недоделанный. в общем, не впечатляет ни разу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 12.3.2011, 23:55
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


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

А можно по-подробнее?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 13.3.2011, 11:10
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(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 бит и ещё некоторые варианты). я название китайской поделки не вспомню даже, но мне она не понравилась ни разу.

Сообщение отредактировал Iron Bug - 13.3.2011, 14:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 13:08