ntdll.dll

ntdll.dll

中文名 ntdll.dll
版本 6.3.9600.17736
属于 WindowsNT内核
目录导航

基本概述

ntdll-ntdll.dll-DLL文件信息

DLL文件:ntdll或者ntdll.dll

DLL名称:NTLayerDLL

描述:

ntdll.dll是NT操作系统重要的模块。[1]

属于:WindowsNT

系统DLL文件:是

常见错误:FileNotFound,MissingFile,ExceptionErrors

安全等级(0-5):0

间谍软件:否

广告软件:否

函数调用

对于一部分得知其定义形式的函数,可以这样调用:

1.先将NTDLL.DLL读入LoadLibrary(TEXT(\"NTDLL.dll\"))

2.利用GetProcAddress获取其函数入口地址

3.利用得到的函数指针调用

但是可以大致的分为几类吧

1PropertyLengthAsVariant它被排在了第一号,但是我就是不明白它是做什么的

2Csr(configurationstatusregister?CommandandStatusRegister?)系列

CsrAllocateCaptureBufferCsrAllocateMessagePointerCsrCaptureMessageBufferCsrCaptureMessageMultiUnicodeStringsInPlaceCsrCaptureMessageStringCsrCaptureTimeoutCsrClientCallServerCsrClientConnectToServerCsrFreeCaptureBufferCsrGetProcessIdCsrIdentifyAlertableThreadCsrNewThreadCsrProbeForReadCsrProbeForWriteCsrSetPriorityClass

3Dbg系列调试函数

DbgBreakPointDbgPrintDbgPrintExDbgPrintReturnControlCDbgPromptDbgQueryDebugFilterStateDbgSetDebugFilterStateDbgUiConnectToDbgDbgUiContinueDbgUiConvertStateChangeStructureDbgUiDebugActiveProcessDbgUiGetThreadDebugObjectDbgUiIssueRemoteBreakinDbgUiRemoteBreakinDbgUiSetThreadDebugObjectDbgUiStopDebuggingDbgUiWaitStateChangeDbgUserBreakPoint

4ki系列

KiRaiseUserExceptionDispatcher

KiUserApcDispatcher

KiUserCallbackDispatcher

KiUserExceptionDispatcher

5Ldr系列LoaderAPIs,共34个

API

NTDLLAPIs

LoadResource

LdrAccessResource

Ldr*****nateResourcesEnabled

DisableThreadLibraryCalls

LdrDisableThreadCalloutsForDll

LdrEnumResources

LdrFindAppCompatVariableInfo

LdrFindEntryForAddress

EnumResourceTypesW

LdrFindResourceDirectory_U

FindResourceExA

LdrFindResource_U

LdrFlush*****nateResourceModules

LdrGet*****nateResourceModuleHandle

GetModuleHandleForUnicodeString

LdrGetDllHandle

GetProcAddress

LdrGetProcedureAddress

LdrInitializeThunk

LoadLibraryEx(LOAD_LIBRARY_AS_DATAFILE)

LdrLoad*****nateResourceModule

LoadLibrary

LdrLoadDll

LdrProcessRelocationBlock

LdrQueryApplicationCompatibilityGoo

LdrQueryImageFileExecutionOptions

LdrQueryProcessModuleInformation

LdrRelocateImage

ExitProcess

LdrShutdownProcess

ExitThread

LdrShutdownThread

LdrUnload*****nateResourceModule

FreeLibrary

LdrUnloadDll

LdrVerifyImageMatchesChecksum

LdrVerifyMappedImageMatchesChecksum

6Nls(NationalLanguageSupport)系列代码页管理

NlsAnsiCodePage

NlsMbCodePageTag

NlsMbOemCodePageTag

详细介绍

打开NTDLL.dll,惊奇的发现原来CRT的许多基本函数居然都是在这里实现的!甚至包括qsort,ceil这样的函数,还有臭名昭著的strcpy堆的释放,进程管理,似乎都是在这。于是,我决定,仔细察看一下它,这1410个函数是做什么的

用户模式的代码在调用系统内核函数的时候,首先把一个叫做systemcallnumber的数放在EAX中,把参数放在其它的寄存器中了。然后调用INT2E中断。但是大部分应用程序并不需要直接这么做。通常都是在调用kernel32.dll等时由他们来调用INT2E.

内核模式的代码,做法稍微有点不同。他们通常调用由NTOSKRNL.EXE导出的NTDLL.dll中Zw开头的那一系列函数,比如ZwWaitForSingleObject,反之,如果是用户级代码需要调用内核,就会利用INT2E调用WaitForSingleObject.对于许多函数的批量调用,你会明显发现Zw族要比Rtl族效率高很多。

ntdll.dll中的大部分函数都是undocumented.[1]

相关百科
返回顶部
产品求购 求购