Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

NtOpenFile хук и вызов

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C/C++ только в данном разделе

Ответ
 
Опции темы
Старый 11.08.2014, 21:07   #1
Подпольщик RF Online
 Пехотинец
Аватар для артём612
 
артём612 лучик света в грозовом небеартём612 лучик света в грозовом небеартём612 лучик света в грозовом небеартём612 лучик света в грозовом небеартём612 лучик света в грозовом небеартём612 лучик света в грозовом небеартём612 лучик света в грозовом небе
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Отправить сообщение для артём612 с помощью Skype™
 
По умолчанию NtOpenFile хук и вызов

Вот кусок исходника

Код:
#define InitializeObjectAttributes( p, n, a, r, s ) { \
    (p)->Length = sizeof( OBJECT_ATTRIBUTES );          \
    (p)->RootDirectory = r;                             \
    (p)->Attributes = a;                                \
    (p)->ObjectName = n;                                \
    (p)->SecurityDescriptor = s;                        \
    (p)->SecurityQualityOfService = NULL;               \
    }


#define RtlInitUnicodeString( DestinationString, SourceString ) {\
	(DestinationString)->MaximumLength =   lstrlenW(SourceString) * sizeof(WCHAR); \
	(DestinationString)->Length = (DestinationString)->MaximumLength; \
	(DestinationString)->Buffer = SourceString;	 \
	}

#define FILE_DIRECTORY_FILE			(0x00000001)
#define FILE_WRITE_THROUGH			(0x00000002)
#define FILE_SEQUENTIAL_ONLY		(0x00000004)
#define FILE_NON_DIRECTORY_FILE		(0x00000040)
#define FILE_NO_EA_KNOWLEDGE		(0x00000200)
#define FILE_EIGHT_DOT_THREE_ONLY	(0x00000400)
#define FILE_RANDOM_ACCESS			(0x00000800)
#define FILE_DELETE_ON_CLOSE		(0x00001000)
#define FILE_SYNCHRONOUS_IO_NONALERT   0x00000020



typedef struct _IO_STATUS_BLOCK {
    union {
        NTSTATUS Status;
        PVOID Pointer;
    } DUMMYUNIONNAME;

    ULONG_PTR Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;


typedef struct _OBJECT_ATTRIBUTES {
    ULONG Length;
    HANDLE RootDirectory;
    PUNICODE_STRING ObjectName;
    ULONG Attributes;
    PVOID SecurityDescriptor;
    PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES;
typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;


typedef NTSTATUS (NTAPI *_NtOpenFile) (PHANDLE FileHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PIO_STATUS_BLOCK IoStatusBlock,ULONG ShareAccess,ULONG OpenOptions);




int InStr(wchar_t* Str1, wchar_t* Str2)
{
    int cStr1=0,cStr2=0,i;

    while (Str1[cStr1]) cStr1++;
    while (Str2[cStr2]) cStr2++; 

    if ((!cStr1)||(!cStr1)||(cStr1<cStr2)) return 0;

    for (i=0; i<(cStr1-cStr2+1); i++) // search Str2 in string Str1
        if(CompareStringW(LOCALE_USER_DEFAULT,0,Str1+i,cStr2,Str2,cStr2)==2) return i+1;

    return 0;
}





//Функция вызова NtOpenFile 

HANDLE MyOpenFile(LPCWSTR Filename)
{
PHANDLE myHandle = 0;
OBJECT_ATTRIBUTES attr;
IO_STATUS_BLOCK ISB;
UNICODE_STRING	FileName;
wchar_t PathFileW[2000];

memset((PathFileW),0,sizeof(PathFileW));


int NumSymbol = InStr((wchar_t *)Filename,L"\\??\\");

if(NumSymbol != 1)
{
lstrcpyW(&PathFileW[0],L"\\??\\");
}

lstrcatW(PathFileW,Filename);


RtlInitUnicodeString(&FileName,PathFileW);
InitializeObjectAttributes(&attr, &FileName, 0, NULL, NULL);


nNtOpenFile(myHandle,GENERIC_READ | SYNCHRONIZE,&attr,&ISB,FILE_SHARE_READ,FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT);

return *myHandle;
}


Проблема в вызове MyOpenFile

MyOpenFile не хочет открывать файлы

Я наверное передаю не те аргументы функции ...

Прошу только исправить функцию вызова NtOpenFile на открытие файла (чтение) и (чтение + запись)
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Вызов функций pia3333(4) Общение разработчиков 3 03.09.2012 17:46
[Помогите!] Вызов npc из gm панели Last_Light Вопросы и ответы, обсуждения 2 11.05.2011 12:11

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 04:42.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net