Здаравствуйте уважаемые. Вот на днях задался вопросом : Ставлю я hardware breakpoint на вызов функции и хочу узнать адрес откуда она была вызвана . Как узнать содержимое msr - регистра в OllyDbg (P.S. ^ в сайсе есть команды msr )
на счет "в стек посмотреть" .. я вот что скажу : Я бряк поставил на MessageMap в коде это выглядит так : 00474BD6 . A1 5C474900 MOV EAX,DWORD PTR DS:[<&MFC42.#4258>] ; PropertyPage::MessageMap() а теперь я ставлю бряк и в стеке вижу ФИГУ ! вот поэтому я и спрашиваю в общем и тему навел про msr то узнать адрес той инструкции которая была до вызава.
юзер модный, а в Dr-ы пишет... Ну дык не напрямую же, а через тучу функций, так что не надо ля-ля. А к MSR доступа из 3-го кольца нет.
Ну вот видишь - через тучу функций а может и к msr есть доступ через тучу функций а если нет то можно ли как нить узнать в Олли адрус предыдущей инструкции если предыдущая инструкция была гдет ов другом месте кода и тп
Так это не вызов ф-ции, а запись в eax, ты попробуй Alt+F1 и что-то вроде bp MFC42.MessageMap, если вылетешь на начале ф-ции, то в стеке и будет адрес вызова (если там конечно хитрых jcc не используется
Broken Sword Так приводили же пример как-то, как те функции (-я) проверяет то, что было выставлено в DRx, чтобы юзер сильно не умничал…
Можно через ZwSystemDebugControl с кодами DebugSysReadMsr = 16 DebugSysWriteMsr = 17 Для этого требуются SeDebugPrivilege http://www.securitylab.ru/42928.html
Хм .. а что мешает отладчику создавать свой виртуальный драйвер и получать буквально доступ к 0-му кольцу ?
раз уж такая пьянка пошла - может напишет кто плагин к олли, чтобы по аппаратному бряку выводилось "откуда" и "куда" ?
а что мешает отладчику создавать свой виртуальный драйвер прикольно. а что такое "виртуальный драйвер"? это такой, который дает "виртуальный доступ", да?
Наверно Спроси у Four_F ^) Да это я так сказал ... забейте на слово "виртуальный" . Просто не реальный же драйвер которые можно руками пощупать .. вот и я назвал .. а вообще у нас весь инте виртуальный
раз уж такая пьянка пошла - может напишет кто плагин к олли, чтобы по аппаратному бряку выводилось "откуда" и "куда" ? у меня есть некоторые принципиальные сомнения... Одно из которых - мне, лично, не совсем понятен механизм сохранения DR между процессами в винде, в особенности, учитывая отсутствие TSS :-\
у Питрека все расписано по этому вопросу. Есть структура context, которая есть суть программная модель-структура TSS. Есесно, для каждого проца она своя. У меня есть ее формат для x86. Там и DR-регистры и еще много чего
Нет такой структуры уже в кольце-0 и Питрек по этому вопросу уже НИЧЕГО не пишет, поскольку в нуле он никогда не копался. Однако ты правильно подумал... А я совсем забыл :-/ Тогда юзайте то, что предложил ECk - хорошая идея.