2010-04-15 9 views
2

Я отлаживаю удаленно машину Windows XP. Один из моих драйверов загружается по адресу 0xb2c4c000 до 0xb2cb9680.Windbg + IDA: вычислить адрес в модуле

Теперь, когда я открываю свой драйвер в IDA, смещение Я хочу, чтобы установить точку останова на это при 00017619.

Как я могу эффективно соответствовать моей IDA обратиться в WinDbg?

Я пробовал очевидное, что должно суммировать 0xb2c4c000 + 00017619 = 0xB2C635F7 и разобрать этот адрес, используя команду «u» в windbg. Но результаты не совпадают с сборкой в ​​IDA.

На стороне вопроса: есть способ отменить команду, которая работает в windbg? Несколько раз я запускал команды, которые требовали времени для обработки, я хотел бы иметь возможность отменить их, если это необходимо. Поэтому я могу продолжать работать.

Спасибо за ваше время.

+1

относительно вашего 2-й вопрос - хорошо воспитанные расширения обрабатывать Ctrl-Break (альт Ctrl-C.) (Который способ отменить команду слишком долго) – deemok

+0

Какое смещение вы смотрели в IDA? Я предполагаю, что вы не смотрели на смещение файла ... вам нужно взглянуть на базовый адрес для вашего модуля драйвера, а затем сначала вычесть его из смещения. –

ответ

1

Последние версии IDA Pro позволяют отлаживать драйверы устройств через его плагин отладчика WinDbg.

Еще одна альтернатива заключается в том, что вы можете пересобирать базу данных в соответствии с базой загруженного модуля и, как и у вас, есть одно к одному сопоставление между idb и сеансом windbg.

1

Вы добавляете неправильно. Поскольку МАР предполагает 10000 в качестве точки входа правильный способ добавить в

0xb2c4c000 + 00007619 (10000 вычитается)