Ребята подскажите как в моей DLL можно определить кто вызывает функции моей DLL. (Я имею ввиду не только название приолжения но и его производитель). А также функции могут вызывать и драйвера. Да DLL будет на 0 кольце защиты.
ох.. ну getcurrentthread -> инфо о модуле, в котором энтри треда, потом из файла образа инфа о производителе, версии и т.п. (см. формат РЕ) вообще странная задача, зачем оно?
в каком смысле? ворды ксорил? browser -> www.google.com -> VERSION INFO PE -> (http://ru.wikipedia.org/wiki/Portable_Executable, http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx)
может быть, у человека всё в уме вырисовалось уже, и таблицу предполагаемого импорта он тебе зачитает без подсказок, а вот как оформить в сях - не знает?
Короче ребята я голову пудрить не буду. Я хочу пропатчить Hal.dll. И мне надо определить кто его вызывает и в соответствии с этим реагировать. Кто вызывает, определить производителя драйвера и т.д. Причем мне надо вставлять на асме вставку. Место в файле уже подготовил, куда код надо вставить, мне только надо знать какой функцией можно определить.
anatolymik Она всем вызывается, прерывания ведь обрабатывает аппаратные, это самое дно, вызов функционала ядра в большинстве случаев пройдёт через этот модуль.
что "вызывает функции моей DLL"? если сидишь в ядре и ловишь вызовы hal, то большинство вызовов будет происхордить в контексте процесса system. не думаю, что анализируя вызовы hal можно получить много полезной информации. а вообще - PEPROCESS IoGetCurrentProcess(VOID); структурка EPROCESS неофициально определена для каждой версии оси. её парсишь - получаешь всё что тебе нужно.
как? если вы думаете, что system - это такой процесс, который можно открыть через OpenProcess\WriteProcessMemory\CreateRemoteThread, то сильно ошибаетесь. потока, запущенные в ядре объеденены в контексте процесса system.
Ладно а какие для того функции предназначены кроме IoGetCurrentProcess, офицальные в смысле с описанием