Посл.ответ |
Сообщение |
Ранг: 35.3 (посетитель) Активность: 0.01=0.01 Статус: Участник
|
Создано: 16 апреля 2010 06:08 · Личное сообщение · #1
Как известно, с отладкой отладчика возникают проблемы, т.к. отладочные регистры уже используются. Некоторые защиты строятся на отладке собственного процесса. Поискал, как с этим борятся - обычно готовые инструменты используют. Потому и встал вопрос: а в общем виде (не для отдельно взятого прота) задача решается? Лично меня сабж интересует, т.к. хочу подправить WinDbg.
| Сообщение посчитали полезным: |
|
 Ранг: 529.0 (!), 110thx Активность: 0.29↘0.04 Статус: Участник 5KRT
|
Создано: 16 апреля 2010 08:06 · Личное сообщение · #2
GauriТы ничего не перепутал? Вроде один процесс может отлаживаться одним отладчиком, а отлаживать отладчик нам ни что не мешает
----- Research For Food | Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 16 апреля 2010 08:26 · Личное сообщение · #3
Кому известно, что проблемы? Мне не известно. Проблем не возникает, если отладчик отлаживаемый не ринг0. И не надо путать отладку отладчика и отладку уже кем-то отлаживаемого процесса.
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 16 апреля 2010 18:12 · Личное сообщение · #4
Ничто не мешает изменить отладочный порт
| Сообщение посчитали полезным: |
Ранг: 35.3 (посетитель) Активность: 0.01=0.01 Статус: Участник
|
Создано: 17 апреля 2010 07:10 · Поправил: Gauri · Личное сообщение · #5
Спасибо, в самом деле работает. Копаем дальше: как отладчик может ставить бряку? Обычную, программную. WriteProcessMemory, на который ссылаются все статьи по написанию отладчиков, похоже, не используется. ClerkКакой порт? Это про удалённую отладку, что ли? UPD: Насчёт порта, вроде, нашёл тут: www.codeproject.com/KB/security/AntiReverseEngineering.aspx#SelfDebugging , хотя и не совсем понял, зачем он нужен. Если его поменять при подсоединении второго отладчика, первый не отвалится?
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 17 апреля 2010 09:18 · Личное сообщение · #6
Gauri> Если его поменять при подсоединении второго отладчика, первый не отвалится? Отвалится. Виндбг ядерный отладчик, для приложений есть нормальные, типо олли. Собственно в чём основной вопрос заключается ?
| Сообщение посчитали полезным: |
Ранг: 35.3 (посетитель) Активность: 0.01=0.01 Статус: Участник
|
Создано: 17 апреля 2010 16:02 · Личное сообщение · #7
ClerkВообще-то WinDbg как ядерный, так и ринг3 есть. И я сейчас говорил про второй случай. А основной вопрос на данный момент: с помощью какой API функции отладчик ставит int3 бряку?
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 17 апреля 2010 17:27 · Личное сообщение · #8
Запись в память процесса. Если ты надеялся найти функцию PutBreakpoint, то я тебя огорчу, её нет.
| Сообщение посчитали полезным: |
Ранг: 35.3 (посетитель) Активность: 0.01=0.01 Статус: Участник
|
Создано: 17 апреля 2010 18:20 · Личное сообщение · #9
ArcherКакая именно функция-то может это делать? Как я уже писал, бряка на WriteProcessMemory не срабатывает.
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 17 апреля 2010 19:07 · Личное сообщение · #10
Ну поставь на натив функцию бряк. Может, вообще инжектит свою длл. Где линк то, гадать, что ли? З.Ы. Да, проглядел, что виндбг, мой косяк.
| Сообщение посчитали полезным: |
Ранг: 35.3 (посетитель) Активность: 0.01=0.01 Статус: Участник
|
Создано: 17 апреля 2010 19:56 · Личное сообщение · #11
ArcherКакой линк? Я ж самого начала сказал, что WinDbg отлаживаю. Уф, вроде сам уже разобрался: хитрый WinDbg юзает WriteProcessMemory не сразу, как только бряку его просишь поставить, а только когда программу после этого выполняться запускаешь. Оптимизация, блин...
| Сообщение посчитали полезным: |