Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 19:59   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Перехват NtCreateFile и копирование файла на диск

Перехватчик для CreateFileW работает нормально,а с NtCreateFile не хочет копировать. Вот тело функции NewNtCreateFile:
Код:
    begin
      result:=TrueNtCreateFile(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize,
                              FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength);
      UnhookCode(@TrueNtCreateFile);
      hFile1:=CreateFileW('C:\proverka.txt',GENERIC_READ,
                               FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0);
     hFile2:=CreateFileW('C:\test.pak',GENERIC_WRITE,
                               0, nil, OPEN_ALWAYS, 0, 0);
        HookProc('ntdll.dll', 'NtCreateFile', @NewNtCreateFile, @TrueNtCreateFile);
        if (hFile1 =  INVALID_HANDLE_VALUE) or (hFile2=INVALID_HANDLE_VALUE) then exit;
        try
        text:= ObjectAttributes.ObjectName;
          buffer:=#13+#10;
          if text.Buffer='\??\C:\proverka.txt' then
           begin
          buff:=GetFileSize(hFile1,nil);
     SetFilePointer(hFile1, 0, nil, FILE_BEGIN);
     data:=VirtualAlloc(nil,buff,MEM_COMMIT or MEM_RESERVE,PAGE_READWRITE);
     ReadFile(hFile1,data^,buff,zapisano,nil);
     WriteFile(hFile2,data^,buff,zapisano,nil);
            end;
        finally
          CloseHandle(f);
        end;
      end;
calypso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование файла на сетевой диск Amrek Microsoft Office Excel 1 07.06.2011 10:23
Перемещение файла из диска на диск Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 20.03.2011 21:21
перехват нажатия кнопки и копирование в буфер hoolio_g Общие вопросы Delphi 9 23.01.2011 17:05
Перехват создания файла DOS vamp8 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 08.06.2010 21:56
Перехват имени копируемого файла..!!! MaXXX Win Api 0 02.04.2010 18:32