Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.10.17;
Скачать: CL | DM;

Вниз

Как в Windows 7 получить адрес не экспортируемой функции   Найти похожие ветки 

 
SD Software   (2010-07-18 14:28) [0]

Подскажите как в драйвере получить адрес ZwReadVirtualMemory, для экспортируемых функций делаю так

PVOID GetSystemRoutineAddress(WCHAR *Name)
{
 UNICODE_STRING RoutineName;
 PVOID RoutineAddress = NULL;
   
 RtlInitUnicodeString(&RoutineName, Name);

 try
 {
   RoutineAddress = MmGetSystemRoutineAddress(&RoutineName);
 }
 except (EXCEPTION_EXECUTE_HANDLER)
 {
   RoutineAddress = NULL;
 }
   
 return RoutineAddress;
}

typedef NTSTATUS (*_ZwQueryInformationProcess)(__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __out PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength);
 
_ZwQueryInformationProcess ZwQueryInformationProcess;

ZwQueryInformationProcess = GetSystemRoutineAddress(L"ZwQueryInformationProcess");


Может как то из usermode передать можно?

Интерфейс программы на Delphi 7


 
Riply ©   (2010-07-18 15:31) [1]

> [0] SD Software   (18.07.10 14:28)
> Подскажите как в драйвере получить адрес ZwReadVirtualMemory, для экспортируемых функций делаю так

IMHO - никак, ибо нет такой ф-ии в "ядре", да и не нужна она там :)


 
SD Software   (2010-07-18 16:08) [2]


> Riply ©   (18.07.10 15:31) [1]


Неправильно выразил мыслю

Как в "ядре" получить адрес ZwReadVirtualMemory из ntdll

Короче получилось передать из UserMode GetProcAddress(GetModuleHandleW("ntdll.dll"


 
Riply ©   (2010-07-18 18:02) [3]

>  [2] SD Software   (18.07.10 16:08)
> Короче получилось передать из UserMode GetProcAddress(GetModuleHandleW("ntdll.dll"

Стесняюсь спросить: а нафига ну т.е. а зачем это нужно ?  :)


 
SD Software   (2010-07-18 18:32) [4]


> Riply ©   (18.07.10 18:02) [3]


Хочу сделать мало мальскую самозащиту своего процесса, ставлю hook на некоторые nt функции, а так как в c++ я ни силен просто не знаю как получить адрес функции ZwReadVirtualMemory в драйвере, получилось передать из юзермода и поставить хук, я так понимаю толка от этого много не будет, память можно прочесть по другому, хотя может и есть смысл перехватывать...


 
SD Software   (2010-07-18 18:35) [5]


> Riply ©   (18.07.10 18:02) [3]
> Стесняюсь спросить


Стесняеться она, вот неверю я :)


 
Riply_Unreg   (2010-07-18 20:03) [6]

> [4] SD Software   (18.07.10 18:32)
> Хочу сделать мало мальскую самозащиту своего процесса, ставлю hook на некоторые nt функции

Твой процесс и твой драйвер - я правильно поняла ?
Если да, то  
1. Спастись от перехвата Nt-функций в user-mode можно не вызывая их в процессе,
  а прося свой драйвер вызвать их аналог и вернуть результат.
  Это несколько строчек кода - простейшая обертка.
2. Зщитить данные (если их не много) можно храня их в своем же драйвере.
  Тоже очень просто - всего две функуции типа ReadFile, WriteFile

> Стесняеться она, вот неверю я :)

Я никогда не вру :)

P.S.
Что-то меня не пускают под собственным ником - говорят пароль неверный :(


 
Anatoly Podgoretsky ©   (2010-07-18 20:07) [7]

> Riply_Unreg  (18.07.2010 20:03:06)  [6]

А чего unreg, попробуй еще раз


 
Riply_Unreg   (2010-07-18 20:10) [8]

> [7] Anatoly Podgoretsky ©   (18.07.10 20:07)
> А чего unreg, попробуй еще раз

Только что пыталась:
Редактировать анкету не дают - неверный пароль
Пароль на E-mail не высылают: говорят логин (мой E-mail)

:(


 
Германн ©   (2010-07-18 20:21) [9]


> Riply_Unreg   (18.07.10 20:10) [8]

http://delphimaster.net/view/15-1279321281/


 
Anatoly Podgoretsky ©   (2010-07-18 20:24) [10]

> Riply_Unreg  (18.07.2010 20:10:08)  [8]

Максим только что недавно восстановил старую базу, у меня заработало.


 
app ©   (2010-07-18 20:28) [11]

Ну или попроси Максима, в теме http://delphimaster.net/view/15-1279321281/ , удалить анкету


 
Riply ©   (2010-07-18 20:35) [12]

> [11] app ©   (18.07.10 20:28)
> Ну или попроси Максима, в теме http://delphimaster.net/view/15-1279321281/ , удалить анкету

Все получилось. Просто вместе с базой и старый пароль вернулся :)


 
SD Software   (2010-07-18 20:49) [13]


> Riply_Unreg   (18.07.10 20:03) [6]
> я правильно поняла ?


Ставлю в драйвере хук на ZwReadVirtualMemory что бы спастись от чтения памяти моего процесса другими процессами, а из usermode просто передаю адрес функции в драйвер


 
SD Software   (2010-07-18 20:58) [14]


> SD Software   (18.07.10 20:49) [13]


Передаю из usermode адрес функции ZwReadVirtualMemory в драйвер и там ставлю на неё хук, потому что не хватает ума получить адрес в драйвере


 
SD Software   (2010-07-18 21:00) [15]

Блин я сам ничего не понимаю читая свои посты

Кто ни будь отведите меня в поле и пристрелите...



Страницы: 1 вся ветка

Текущий архив: 2010.10.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
15-1279120336
xayam
2010-07-14 19:12
2010.10.17
Изучаем Java


2-1279888458
oleg_teacher
2010-07-23 16:34
2010.10.17
Сохранить в csv


2-1279957179
_guest_
2010-07-24 11:39
2010.10.17
можно ли напрямую использовать сишные файлы h и lib


3-1246354424
Дмитрий Белькевич
2009-06-30 13:33
2010.10.17
Проблема с добавлением записи в таблицу. Delphi 2009.


15-1278865350
Кто б сомневался
2010-07-11 20:22
2010.10.17
Unzip компонент