Re[2]: имя процесса, которому принадлежит данный адрес.
От: Аноним  
Дата: 05.11.06 22:55
Оценка: 3 (1)
F>Наверно имелось в виду в каком драйвере обработчик перехваченной функции. Мне тоже интересено...
ZwQuerySystemInformation(...SystemModuleInformation..) найти в пространстве какого модуля лежит перехватчик и радоваться
Re: имя процесса, которому принадлежит данный адрес.
От: Fedorenkov  
Дата: 05.11.06 19:55
Оценка: 2 (1)
Здравствуйте, Aleksey1980, Вы писали:

A>Как определить имя процесса, адресному пространству которого принадлежит данный адрес.


A>Т.е. я определил, что в SystemServiceTable некоторые функции перехвачены как определить кто(какой процесс) их перехватил?


Наверно имелось в виду в каком драйвере обработчик перехваченной функции. Мне тоже интересено...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: имя процесса, которому принадлежит данный адрес.
От: _f_b_i_  
Дата: 06.11.06 08:10
Оценка: 2 (1)
Здравствуйте, Аноним, Вы писали:

F>>Наверно имелось в виду в каком драйвере обработчик перехваченной функции. Мне тоже интересено...

А>ZwQuerySystemInformation(...SystemModuleInformation..) найти в пространстве какого модуля лежит перехватчик и радоваться
Это сработает если тело функции перехватчика остается в теле драйвера. Например не стоит иключить тот факт, что драйвер который собирается перехватывать SDT выделит страницу памяти, укажет в SDT этот адресс, скопирует туда код перехватчика, или банально инструкцию jmp на код внутри себя, и вы в этом случае без анализа кода перехватчкика найти модель который реально занимается перехватом будет напорядок сложнее.
Re[4]: имя процесса, которому принадлежит данный адрес.
От: TarasCo  
Дата: 06.11.06 10:58
Оценка: 2 (1)
Здравствуйте, _f_b_i_, Вы писали:

___>Здравствуйте, Аноним, Вы писали:


F>>>Наверно имелось в виду в каком драйвере обработчик перехваченной функции. Мне тоже интересено...

А>>ZwQuerySystemInformation(...SystemModuleInformation..) найти в пространстве какого модуля лежит перехватчик и радоваться
___>Это сработает если тело функции перехватчика остается в теле драйвера. Например не стоит иключить тот факт, что драйвер который собирается перехватывать SDT выделит страницу памяти, укажет в SDT этот адресс, скопирует туда код перехватчика, или банально инструкцию jmp на код внутри себя, и вы в этом случае без анализа кода перехватчкика найти модель который реально занимается перехватом будет напорядок сложнее.

Ну, копировать код двольно таки проблематично — нужно будет организовать re-allocation, либо писать код перехватчика на ассемблере, либо автоматически генерировать его — все это довольно трудоемко, а мне кажется, что лень — общечеловеческое свойство . А вот использование промежуточных трамплинов да еще с обфускатором — очень вероятно, лично я бы сделал именно так. Обфускатор мало полезен для защиты от ручной отладки кода, зато очень полезен от автоматических искателей.
Да пребудет с тобою сила
имя процесса, которому принадлежит данный адрес.
От: Aleksey1980  
Дата: 05.11.06 19:16
Оценка:
Как определить имя процесса, адресному пространству которого принадлежит данный адрес.

Т.е. я определил, что в SystemServiceTable некоторые функции перехвачены как определить кто(какой процесс) их перехватил?
Re[5]: имя процесса, которому принадлежит данный адрес.
От: Aleksey1980  
Дата: 06.11.06 11:40
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Здравствуйте, _f_b_i_, Вы писали:


___>>Здравствуйте, Аноним, Вы писали:


F>>>>Наверно имелось в виду в каком драйвере обработчик перехваченной функции. Мне тоже интересено...

А>>>ZwQuerySystemInformation(...SystemModuleInformation..) найти в пространстве какого модуля лежит перехватчик и радоваться
___>>Это сработает если тело функции перехватчика остается в теле драйвера. Например не стоит иключить тот факт, что драйвер который собирается перехватывать SDT выделит страницу памяти, укажет в SDT этот адресс, скопирует туда код перехватчика, или банально инструкцию jmp на код внутри себя, и вы в этом случае без анализа кода перехватчкика найти модель который реально занимается перехватом будет напорядок сложнее.

TC>Ну, копировать код двольно таки проблематично — нужно будет организовать re-allocation, либо писать код перехватчика на ассемблере, либо автоматически генерировать его — все это довольно трудоемко, а мне кажется, что лень — общечеловеческое свойство . А вот использование промежуточных трамплинов да еще с обфускатором — очень вероятно, лично я бы сделал именно так. Обфускатор мало полезен для защиты от ручной отладки кода, зато очень полезен от автоматических искателей.


Понятно. Спасибо всем, кто откликнулся.
Re[4]: имя процесса, которому принадлежит данный адрес.
От: Аноним  
Дата: 06.11.06 21:34
Оценка:
Сложнее, но не невозможно. Трассировщик на основе какого нить int 3 и дизасма из detours пишется за несколько дней...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.