一般是由更底层的api或多个api封装而成的函数接口,我们要绕过windsock 直接与 AFD 驱动程序进行通信的话,我们就需要探查Winsock中具体哪些函数api是起到作用的, 我们发现,通过NtCreateFile...1.首先通信需要创建一个socket,我们调用NtCreateFile来打开\Device\Afd\Endpoint对象,socket属性(地址族、协议类型等)是使用数据结构体来指定的,该结构作为“扩展属性...”传递给NtCreateFile 函数。...// 创建套接字句柄 IoStatusBlock.Status = 0; IoStatusBlock.Information = NULL; dwStatus = NtCreateFile..."); if (NtCreateFile == NULL) { return 1; } printf("Downloading file: %s\n\n", pURL); // 下载文件
NTSTATUS NtCreateFile(UNICODE_STRING ustr); NTSTATUS NtCreateFile(UNICODE_STRING ustr) { //创建文件...\\c:\\1.txt");//初始化字符串路径 NtStatus = NtCreateFile(uPathName); if (NT_SUCCESS(NtStatus)) {
References [1] FILE_SUPERSEDE: https://docs.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntcreatefile...nf-fileapi-createfilew [3] FILE_DELETE_ON_CLOSE: https://docs.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntcreatefile
他在文章中提到NtCreateFile和NtDeviceIoControlFile 这两个函数,是Winsock库用来与AFD驱动通信使用的。...再到下边引用x86matthew的代码NtCreateFile去触发afd驱动 ObjectFilePath.Buffer = (PWSTR)L"\\Device\\Afd\\Endpoint";...ObjectAttributes.ObjectName = &ObjectFilePath; ObjectAttributes.Attributes = 0x40; ret = _NtCreateFile
Install_Hook(GetSyscallNumber(pImageExportDirectory, "ZwCreateFile", offsetSyscall), (PVOID)Hooked_NtCreateFile..., (PVOID*)&Orig_NtCreateFile, pStartSearchAddress, KiServiceTable); Install_Hook(GetSyscallNumber(pImageExportDirectory
NtCreateFile+0x12 75583f66 755853c4 013259e2 需要注意的是,两个 ntdll 并不一样(ntdll_77b00000 是 32 位 dll),并且 ntdll
该项目包含了 32 位和 64 位的 Lib 库,和一个测试项目,HOOK 了 NtCreateFile 函数实现了对文件打开创建等功能的监控。
这个函数实际上被封装到了kernel32.dll中,在这个函数中调用NtCreateFile,这就是调用ntdll.dll中的native api ,ntdll.dll中一般又两组函数——以Nt开头,以...管理器生成一个IRP请求,并调用内核中的驱动,来相应这个操作,对于CreateFile来说会调用NtCreateFile函数。 7. 最后调用内核实现部分,也就是硬件抽象层。
接着获取 NtSuspendProcess 并调用使当前进程挂起,调用 NtCreateFile 修改浏览器快捷方式中的命令行参数,锁定为 2345 导航站的首页,之后恢复进程,此时浏览器进程为 System
NtCreateFile从用户到内核模式的转换。Ntdll只是为内核提供了一个thunk,因此不感兴趣。 下面是ICAAPI,它是TermDD.sys的用户模式对应物。
NtProtectVirtualMemory", "NtQuerySection", "NtResumeThread", "NtTerminateThread", "NtReadRequestData", "NtCreateFile
dlls -c ntCreateFile // 查询指定函数所在的模块 0:000> !dlls -c ntdll.dll // 列出特定模块头信息 0:000> !
lpDeviceName); InitializeObjectAttributes(&attr, &uDevName, OBJ_CASE_INSENSITIVE, 0, NULL); Status = NtCreateFile
Zw 文件设备操作API 对应NT API 作用 ZwCreateFile NtCreateFile 打开文件/设备 ZwReadFile NtReadFile 读文件/设备 ZwWriteFile NtWriteFile
MiniDumpWriteDump函数来对内存进行dump,但是相比与传统的dump,它先使用hook的方式对NtReadVirtualMemory函数解edr的hook,后通过syscall的方式调用ZwOpenProcess+NtCreateFile
如果该漏洞仅允许通过NtCreateFile调用删除文件FILE_NON_DIRECTORY_FILE,则可以通过打开路径来绕过该限制C:\ProgramData\Microsoft\Windows\WER
NtCreateFile+0x34 a52c9d00 776b64f4 03251114 c0100000 013ae714 nt!..._IcaBindChannel (FPO: [Non-Fpo]) 最后我们再来看看他们调用栈的不同点 第一个调用栈,可以看到从 NtCreateFile 到 termdd!...NtCreateFile+0x34 a52c9d00 776b64f4 03251114 c0100000 013ae714 nt!
领取专属 10元无门槛券
手把手带您无忧上云