Номера системных функций в таблице сервисных дескрипторов (SDT) Windows
Операционные системы на основе ядра NT (2000, XP, 2003, Vista, 7) используют два режима привилегий процессора - режим ядра (Kernel Mode) и пользовательский режим (User Mode). В режиме ядра есть доступ к вводу-выводу через порты, всей памяти, к привилегированным командам. Драйверы, осуществляющие прямое управление устройствами исполняются в режиме ядра. Из пользовательского режима обращение к функциям ядра и драйверов возможно только через специальные шлюзы, предусмотренные разработчиками.
Ядро содержит функции Native API, которые могут быть вызваны из пользовательского режима. Программа пользовательского режима вызывает какую-либо функцию, а та, используя шлюз, передает управление ядру. Ядро получает параметры функции и выполняет код, результаты исполнения передаются в пользовательский режим.
Например, стандартная WinAPI функция CreateFile вызывает недокументированную функцию ZwCreateFile из ntdll.dll. Эта функция вызывает одноимённый сервис ядра через специальный шлюз.
Почти все функции, содержащиеся в ntdll.dll и есть функции ядра, а одноимённые функции, доступные в пользовательском режиме - это заглушки, передающие управление функциям ядра через шлюзы. Функции ntdll.dll называют NT Native API.
При вызове Native API функции из ntdll.dll в регистр eax записывается номер системной функции ядра. Затем вызывается прерывание 2Eh (в Windows XP - команда sysenter) и происходит переход текущего потока в режим ядра. Ядро содержит обработчик прерываний, в том числе и для прерывания 2Eh. Обработчиком является функция KiSystemService. Эта функция копирует передаваемые системному сервису параметры в память ядра, и производит вызов NativeAPI функции ядра согласно содержимому ServiceDescriptorTable. Эта таблица находится в памяти ядра, и представляет собой структуру, содержащую 4 таблицы системных сервисов (SST). Первая из этих таблиц описывает сервисы ядра (ntoskrnl.exe), вторая - графической подсистемы (win32k.sys), остальные две зарезервированы на будущее и в данный момент не используются.
ServiceDescriptorTable (SDT) содержит таблицы с указателями на функции. Функция пользовательского режима при вызове записывает индекс элемента в этой таблице (это и есть номер функции в SDT).
typedef struct _SYSTEM_SERVICE_TABLE { PVOID* ServiceTable; // Адреса функций ULONG* CounterTable; // Счетчик вызовов ULONG ServiceLimit; // Количество сервисов UCHAR* ArgumentTable; // Количество аргументов функций } SYSTEM_SERVICE_TABLE, *PSYSTEM_SERVICE_TABLE; typedef struct _SERVICE_DESCRIPTOR_TABLE { SYSTEM_SERVICE_TABLE ntoskrnl; //SST для ntoskrnl.exe SYSTEM_SERVICE_TABLE win32k; //SST для win32k.sys SYSTEM_SERVICE_TABLE Reserved1; SYSTEM_SERVICE_TABLE Reserved2; } SERVICE_DESCRIPTOR_TABLE, *PSERVICE_DESCRIPTOR_TABLE;
Например, чтобы перехватить Native API функцию в режиме ядра, можно просто заменить её адрес в SDT. Для того чтобы перехватить именно нужную функцию, нужно знать индексы элементов в таблице, то есть какой функции какой номер соответствует. Номер одной и той же функции в SDT разных операционных систем (Windows 2000, Windows XP) обычно различается.
Средства проактивной защиты и некоторые антивирусы используют перехват функций и контроль передаваемых параметров. Такой перехват системных функций значительно снижает быстродействие системы, так как при каждом системном вызове (а они происходят довольно часто), выполняется дополнительный код перехватчика.
Например, код функции ZwCreateFile (и NtCreateFile, что в пользовательском режиме то же самое) в Windows XP выглядит следующим образом:
; __stdcall ZwCreateFile(x, x, x, x, x, x, x, x, x, x, x) public [email protected] [email protected] proc near mov eax, 25h ; Это номер в SDT mov edx, 7FFE0300h ; Это адрес шлюза (KiFastSystemCall) call dword ptr [edx] ; Вызов шлюза. Он получит ; адрес параметров и вызовет SYSENTER retn 2Ch [email protected] endp
В Windows 2000:
public ZwCreateFile ZwCreateFile proc near arg_0= dword ptr 4 mov eax, 20h ; Это номер в SDT lea edx, [esp+arg_0]; В edx записывается адрес параметров int 2Eh ; Вызывается шлюз retn 2Ch ZwCreateFile endp
Если вызывать Native API функцию подобным образом, можно обойти любой перехват функций в пользовательском режиме.
Для получения номеров функций в SDT системы Fur разработал утилиту sdt.exe, на вход которой следует подать ntdll.dll файлы от разных версий Microsoft Windows. Программа построит таблицу с номерами функций в SDT указанных систем.
Программы
Консольная утилита, выводит таблицу с номерами системных функций в SDT
на основе ntdll.dll файлов от разных ОС (Windows 2000/XP/2003/Vista).
Поддерживаются только x86-релизы файлов ntdll.dll
Архив sdt.rar
Доступен также исходный код программы, написанный на Си для компилятора от Microsoft (можно использовать Platform SDK от Visual Studio 6 и выше): sdttest.c
Использование:
sdt [/hexnumbers] [/win2000:path_to_ntdll] [/winxp:path_to_ntdll] [/win2003:path_to_ntdll] [/winvista:path_to_ntdll] где path_to_ntdll - полный или относительный путь к ntdll.dll файлу соответствующей операционной системы. Можно указывать не все системы, /hex - указывает, что при распечатке таблицы следует выводить номера функций в шестнадцатиричном формате Пример использования: sdt /winxp:C:\Windows\System32\ntdll.dll /win2000:C:\win2000files\ntdll.dll >table.txt При таком запуске программа исследует файлы C:\Windows\System32\ntdll.dll и C:\win2000files\ntdll.dll и распечатает таблицу в файл table.txt В таблице будут сведения, касающиеся только Windows 2000 и Windows XP
Ссылки
Таблица с номерами функций в SDT разных ОС
Операционная система Windows 2000 содержит меньше функций ядра, чем другие, но поддерживает управление объектами Channel, поддержка которых убрана в следующих версиях ОС. Набор функций ядра в Windows XP практически совпадает с Windows Server 2003. Windows Vista содержит много новых функций, которых не было в предыдущих ОС.
Название функции Native API | Номер в SDT | |||
2000 | XP | 2003 | Vista | |
NtAcceptConnectPort | 0 | 0 | 0 | 0 |
NtAccessCheck | 1 | 1 | 1 | 1 |
NtAccessCheckAndAuditAlarm | 2 | 2 | 2 | 2 |
NtAccessCheckByType | 3 | 3 | 3 | 3 |
NtAccessCheckByTypeAndAuditAlarm | 4 | 4 | 4 | 4 |
NtAccessCheckByTypeResultList | 5 | 5 | 5 | 5 |
NtAccessCheckByTypeResultListAndAuditAlarm | 6 | 6 | 6 | 6 |
NtAccessCheckByTypeResultListAndAuditAlarmByHandle | 7 | 7 | 7 | 7 |
NtAddAtom | 8 | 8 | 8 | 8 |
NtAdjustGroupsToken | 9 | 10 | 11 | 11 |
NtAdjustPrivilegesToken | 10 | 11 | 12 | 12 |
NtAlertResumeThread | 11 | 12 | 13 | 13 |
NtAlertThread | 12 | 13 | 14 | 14 |
NtAllocateLocallyUniqueId | 13 | 14 | 15 | 15 |
NtAllocateUserPhysicalPages | 14 | 15 | 16 | 16 |
NtAllocateUuids | 15 | 16 | 17 | 17 |
NtAllocateVirtualMemory | 16 | 17 | 18 | 18 |
NtAreMappedFilesTheSame | 17 | 18 | 20 | 41 |
NtAssignProcessToJobObject | 18 | 19 | 21 | 42 |
NtCallbackReturn | 19 | 20 | 22 | 43 |
NtCancelDeviceWakeupRequest | 22 | 21 | 23 | 44 |
NtCancelIoFile | 20 | 22 | 24 | 45 |
NtCancelTimer | 21 | 23 | 25 | 46 |
NtClearEvent | 23 | 24 | 26 | 47 |
NtClose | 24 | 25 | 27 | 48 |
NtCloseObjectAuditAlarm | 25 | 26 | 28 | 49 |
NtCompleteConnectPort | 26 | 29 | 31 | 52 |
NtConnectPort | 27 | 31 | 33 | 54 |
NtContinue | 28 | 32 | 34 | 55 |
NtCreateChannel | 241 | - | - | - |
NtCreateDirectoryObject | 29 | 34 | 36 | 57 |
NtCreateEvent | 30 | 35 | 37 | 58 |
NtCreateEventPair | 31 | 36 | 38 | 59 |
NtCreateFile | 32 | 37 | 39 | 60 |
NtCreateIoCompletion | 33 | 38 | 40 | 61 |
NtCreateJobObject | 34 | 39 | 41 | 62 |
NtCreateKey | 35 | 41 | 43 | 64 |
NtCreateMailslotFile | 36 | 42 | 44 | 66 |
NtCreateMutant | 37 | 43 | 45 | 67 |
NtCreateNamedPipeFile | 38 | 44 | 46 | 68 |
NtCreatePagingFile | 39 | 45 | 47 | 70 |
NtCreatePort | 40 | 46 | 48 | 71 |
NtCreateProcess | 41 | 47 | 49 | 72 |
NtCreateProfile | 42 | 49 | 51 | 74 |
NtCreateSection | 43 | 50 | 52 | 75 |
NtCreateSemaphore | 44 | 51 | 53 | 76 |
NtCreateSymbolicLinkObject | 45 | 52 | 54 | 77 |
NtCreateThread | 46 | 53 | 55 | 78 |
NtCreateTimer | 47 | 54 | 56 | 79 |
NtCreateToken | 48 | 55 | 57 | 80 |
NtCreateWaitablePort | 49 | 56 | 58 | 115 |
NtDelayExecution | 50 | 59 | 61 | 118 |
NtDeleteAtom | 51 | 60 | 62 | 119 |
NtDeleteFile | 52 | 62 | 65 | 122 |
NtDeleteKey | 53 | 63 | 66 | 123 |
NtDeleteObjectAuditAlarm | 54 | 64 | 67 | 125 |
NtDeleteValueKey | 55 | 65 | 68 | 126 |
NtDeviceIoControlFile | 56 | 66 | 69 | 127 |
NtDisplayString | 57 | 67 | 70 | 128 |
NtDuplicateObject | 58 | 68 | 71 | 129 |
NtDuplicateToken | 59 | 69 | 72 | 130 |
NtEnumerateKey | 60 | 71 | 75 | 133 |
NtEnumerateValueKey | 61 | 73 | 77 | 136 |
NtExtendSection | 62 | 74 | 78 | 137 |
NtFilterToken | 63 | 75 | 79 | 138 |
NtFindAtom | 64 | 76 | 80 | 139 |
NtFlushBuffersFile | 65 | 77 | 81 | 140 |
NtFlushInstructionCache | 66 | 78 | 82 | 141 |
NtFlushKey | 67 | 79 | 83 | 142 |
NtFlushVirtualMemory | 68 | 80 | 84 | 144 |
NtFlushWriteBuffer | 69 | 81 | 85 | 145 |
NtFreeUserPhysicalPages | 70 | 82 | 86 | 146 |
NtFreeVirtualMemory | 71 | 83 | 87 | 147 |
NtFsControlFile | 72 | 84 | 88 | 150 |
NtGetContextThread | 73 | 85 | 89 | 151 |
NtGetDevicePowerState | 74 | 86 | 90 | 152 |
NtGetPlugPlayEvent | 75 | 87 | 91 | 154 |
NtGetTickCount | 76 | - | - | - |
NtGetWriteWatch | 77 | 88 | 92 | 155 |
NtImpersonateAnonymousToken | 78 | 89 | 93 | 156 |
NtImpersonateClientOfPort | 79 | 90 | 94 | 157 |
NtImpersonateThread | 80 | 91 | 95 | 158 |
NtInitializeRegistry | 81 | 92 | 96 | 160 |
NtInitiatePowerAction | 82 | 93 | 97 | 161 |
NtIsSystemResumeAutomatic | 83 | 95 | 99 | 163 |
NtListenChannel | 242 | - | - | - |
NtListenPort | 84 | 96 | 100 | 164 |
NtLoadDriver | 85 | 97 | 101 | 165 |
NtLoadKey | 86 | 98 | 102 | 166 |
NtLoadKey2 | 87 | 99 | 103 | 167 |
NtLockFile | 88 | 100 | 105 | 169 |
NtLockVirtualMemory | 89 | 103 | 108 | 172 |
NtMakeTemporaryObject | 90 | 105 | 110 | 174 |
NtMapUserPhysicalPages | 91 | 106 | 111 | 175 |
NtMapUserPhysicalPagesScatter | 92 | 107 | 112 | 176 |
NtMapViewOfSection | 93 | 108 | 113 | 177 |
NtNotifyChangeDirectoryFile | 94 | 110 | 116 | 180 |
NtNotifyChangeKey | 95 | 111 | 117 | 181 |
NtNotifyChangeMultipleKeys | 96 | 112 | 118 | 182 |
NtOpenChannel | 243 | - | - | - |
NtOpenDirectoryObject | 97 | 113 | 119 | 183 |
NtOpenEvent | 98 | 114 | 120 | 184 |
NtOpenEventPair | 99 | 115 | 121 | 185 |
NtOpenFile | 100 | 116 | 122 | 186 |
NtOpenIoCompletion | 101 | 117 | 123 | 187 |
NtOpenJobObject | 102 | 118 | 124 | 188 |
NtOpenKey | 103 | 119 | 125 | 189 |
NtOpenMutant | 104 | 120 | 126 | 191 |
NtOpenObjectAuditAlarm | 105 | 121 | 127 | 193 |
NtOpenProcess | 106 | 122 | 128 | 194 |
NtOpenProcessToken | 107 | 123 | 129 | 195 |
NtOpenSection | 108 | 125 | 131 | 197 |
NtOpenSemaphore | 109 | 126 | 132 | 198 |
NtOpenSymbolicLinkObject | 110 | 127 | 133 | 200 |
NtOpenThread | 111 | 128 | 134 | 201 |
NtOpenThreadToken | 112 | 129 | 135 | 202 |
NtOpenTimer | 113 | 131 | 137 | 204 |
NtPlugPlayControl | 114 | 132 | 138 | 205 |
NtPowerInformation | 115 | 133 | 139 | 206 |
NtPrivilegeCheck | 116 | 134 | 140 | 207 |
NtPrivilegeObjectAuditAlarm | 118 | 135 | 141 | 208 |
NtPrivilegedServiceAuditAlarm | 117 | 136 | 142 | 209 |
NtProtectVirtualMemory | 119 | 137 | 143 | 210 |
NtPulseEvent | 120 | 138 | 144 | 211 |
NtQueryAttributesFile | 122 | 139 | 145 | 212 |
NtQueryDefaultLocale | 123 | 143 | 149 | 216 |
NtQueryDefaultUILanguage | 124 | 144 | 150 | 217 |
NtQueryDirectoryFile | 125 | 145 | 151 | 218 |
NtQueryDirectoryObject | 126 | 146 | 152 | 219 |
NtQueryEaFile | 127 | 147 | 154 | 221 |
NtQueryEvent | 128 | 148 | 155 | 222 |
NtQueryFullAttributesFile | 129 | 149 | 156 | 223 |
NtQueryInformationAtom | 121 | 150 | 157 | 224 |
NtQueryInformationFile | 130 | 151 | 158 | 225 |
NtQueryInformationJobObject | 131 | 152 | 159 | 226 |
NtQueryInformationPort | 133 | 153 | 160 | 227 |
NtQueryInformationProcess | 134 | 154 | 161 | 228 |
NtQueryInformationThread | 135 | 155 | 162 | 229 |
NtQueryInformationToken | 136 | 156 | 163 | 230 |
NtQueryInstallUILanguage | 137 | 157 | 164 | 231 |
NtQueryIntervalProfile | 138 | 158 | 165 | 232 |
NtQueryIoCompletion | 132 | 159 | 166 | 233 |
NtQueryKey | 139 | 160 | 167 | 234 |
NtQueryMultipleValueKey | 140 | 161 | 168 | 235 |
NtQueryMutant | 141 | 162 | 169 | 236 |
NtQueryObject | 142 | 163 | 170 | 237 |
NtQueryOpenSubKeys | 143 | 164 | 171 | 238 |
NtQueryPerformanceCounter | 144 | 165 | 173 | 240 |
NtQueryQuotaInformationFile | 145 | 166 | 174 | 241 |
NtQuerySection | 146 | 167 | 175 | 242 |
NtQuerySecurityObject | 147 | 168 | 176 | 243 |
NtQuerySemaphore | 148 | 169 | 177 | 244 |
NtQuerySymbolicLinkObject | 149 | 170 | 178 | 245 |
NtQuerySystemEnvironmentValue | 150 | 171 | 179 | 246 |
NtQuerySystemInformation | 151 | 173 | 181 | 248 |
NtQuerySystemTime | 152 | 174 | 182 | 249 |
NtQueryTimer | 153 | 175 | 183 | 250 |
NtQueryTimerResolution | 154 | 176 | 184 | 251 |
NtQueryValueKey | 155 | 177 | 185 | 252 |
NtQueryVirtualMemory | 156 | 178 | 186 | 253 |
NtQueryVolumeInformationFile | 157 | 179 | 187 | 254 |
NtQueueApcThread | 158 | 180 | 188 | 255 |
NtRaiseException | 159 | 181 | 189 | 256 |
NtRaiseHardError | 160 | 182 | 190 | 257 |
NtReadFile | 161 | 183 | 191 | 258 |
NtReadFileScatter | 162 | 184 | 192 | 259 |
NtReadRequestData | 163 | 185 | 193 | 260 |
NtReadVirtualMemory | 164 | 186 | 194 | 261 |
NtRegisterThreadTerminatePort | 165 | 187 | 195 | 262 |
NtReleaseMutant | 166 | 188 | 196 | 263 |
NtReleaseSemaphore | 167 | 189 | 197 | 264 |
NtRemoveIoCompletion | 168 | 190 | 198 | 265 |
NtReplaceKey | 169 | 193 | 201 | 268 |
NtReplyPort | 170 | 194 | 202 | 269 |
NtReplyWaitReceivePort | 171 | 195 | 203 | 270 |
NtReplyWaitReceivePortEx | 172 | 196 | 204 | 271 |
NtReplyWaitReplyPort | 173 | 197 | 205 | 272 |
NtReplyWaitSendChannel | 244 | - | - | - |
NtRequestDeviceWakeup | 174 | 198 | 206 | 273 |
NtRequestPort | 175 | 199 | 207 | 274 |
NtRequestWaitReplyPort | 176 | 200 | 208 | 275 |
NtRequestWakeupLatency | 177 | 201 | 209 | 276 |
NtResetEvent | 178 | 202 | 210 | 277 |
NtResetWriteWatch | 179 | 203 | 211 | 278 |
NtRestoreKey | 180 | 204 | 212 | 279 |
NtResumeThread | 181 | 206 | 214 | 281 |
NtSaveKey | 182 | 207 | 215 | 282 |
NtSaveMergedKeys | 183 | 209 | 217 | 284 |
NtSecureConnectPort | 184 | 210 | 218 | 290 |
NtSendWaitReplyChannel | 245 | - | - | - |
NtSetContextChannel | 246 | - | - | - |
NtSetContextThread | 186 | 213 | 221 | 293 |
NtSetDefaultHardErrorPort | 187 | 215 | 223 | 295 |
NtSetDefaultLocale | 188 | 216 | 224 | 296 |
NtSetDefaultUILanguage | 189 | 217 | 225 | 297 |
NtSetEaFile | 190 | 218 | 227 | 299 |
NtSetEvent | 191 | 219 | 228 | 300 |
NtSetHighEventPair | 192 | 221 | 230 | 302 |
NtSetHighWaitLowEventPair | 193 | 222 | 231 | 303 |
NtSetInformationFile | 194 | 224 | 233 | 305 |
NtSetInformationJobObject | 195 | 225 | 234 | 306 |
NtSetInformationKey | 196 | 226 | 235 | 307 |
NtSetInformationObject | 197 | 227 | 236 | 308 |
NtSetInformationProcess | 198 | 228 | 237 | 309 |
NtSetInformationThread | 199 | 229 | 238 | 310 |
NtSetInformationToken | 200 | 230 | 239 | 311 |
NtSetIntervalProfile | 201 | 231 | 240 | 312 |
NtSetIoCompletion | 185 | 232 | 241 | 313 |
NtSetLdtEntries | 202 | 233 | 242 | 314 |
NtSetLowEventPair | 203 | 234 | 243 | 315 |
NtSetLowWaitHighEventPair | 204 | 235 | 244 | 316 |
NtSetQuotaInformationFile | 205 | 236 | 245 | 317 |
NtSetSecurityObject | 206 | 237 | 246 | 318 |
NtSetSystemEnvironmentValue | 207 | 238 | 247 | 319 |
NtSetSystemInformation | 208 | 240 | 249 | 321 |
NtSetSystemPowerState | 209 | 241 | 250 | 322 |
NtSetSystemTime | 210 | 242 | 251 | 323 |
NtSetThreadExecutionState | 211 | 243 | 252 | 324 |
NtSetTimer | 212 | 244 | 253 | 325 |
NtSetTimerResolution | 213 | 245 | 254 | 326 |
NtSetUuidSeed | 214 | 246 | 255 | 327 |
NtSetValueKey | 215 | 247 | 256 | 328 |
NtSetVolumeInformationFile | 216 | 248 | 257 | 329 |
NtShutdownSystem | 217 | 249 | 258 | 330 |
NtSignalAndWaitForSingleObject | 218 | 250 | 259 | 331 |
NtStartProfile | 219 | 251 | 260 | 332 |
NtStopProfile | 220 | 252 | 261 | 333 |
NtSuspendThread | 221 | 254 | 263 | 335 |
NtSystemDebugControl | 222 | 255 | 264 | 336 |
NtTerminateJobObject | 223 | 256 | 265 | 337 |
NtTerminateProcess | 224 | 257 | 266 | 338 |
NtTerminateThread | 225 | 258 | 267 | 339 |
NtTestAlert | 226 | 259 | 268 | 340 |
NtUnloadDriver | 227 | 262 | 271 | 346 |
NtUnloadKey | 228 | 263 | 272 | 347 |
NtUnlockFile | 229 | 265 | 275 | 350 |
NtUnlockVirtualMemory | 230 | 266 | 276 | 351 |
NtUnmapViewOfSection | 231 | 267 | 277 | 352 |
NtVdmControl | 232 | 268 | 278 | 353 |
NtWaitForMultipleObjects | 233 | 270 | 280 | 355 |
NtWaitForSingleObject | 234 | 271 | 281 | 356 |
NtWaitHighEventPair | 235 | 272 | 282 | 357 |
NtWaitLowEventPair | 236 | 273 | 283 | 358 |
NtWriteFile | 237 | 274 | 284 | 359 |
NtWriteFileGather | 238 | 275 | 285 | 360 |
NtWriteRequestData | 239 | 276 | 286 | 361 |
NtWriteVirtualMemory | 240 | 277 | 287 | 362 |
NtYieldExecution | 247 | 278 | 288 | 363 |
NtAddBootEntry | - | 9 | 9 | 9 |
NtCompactKeys | - | 27 | 29 | 50 |
NtCompareTokens | - | 28 | 30 | 51 |
NtCompressKey | - | 30 | 32 | 53 |
NtCreateDebugObject | - | 33 | 35 | 56 |
NtCreateJobSet | - | 40 | 42 | 63 |
NtCreateKeyedEvent | - | 279 | 289 | 364 |
NtCreateProcessEx | - | 48 | 50 | 73 |
NtDebugActiveProcess | - | 57 | 59 | 116 |
NtDebugContinue | - | 58 | 60 | 117 |
NtDeleteBootEntry | - | 61 | 63 | 120 |
NtEnumerateBootEntries | - | 70 | 73 | 131 |
NtEnumerateSystemEnvironmentValuesEx | - | 72 | 76 | 134 |
NtIsProcessInJob | - | 94 | 98 | 162 |
NtLockProductActivationKeys | - | 101 | 106 | 170 |
NtLockRegistryKey | - | 102 | 107 | 171 |
NtMakePermanentObject | - | 104 | 109 | 173 |
NtModifyBootEntry | - | 109 | 114 | 178 |
NtOpenKeyedEvent | - | 280 | 290 | 365 |
NtOpenProcessTokenEx | - | 124 | 130 | 196 |
NtOpenThreadTokenEx | - | 130 | 136 | 203 |
NtQueryBootEntryOrder | - | 140 | 146 | 213 |
NtQueryBootOptions | - | 141 | 147 | 214 |
NtQueryDebugFilterState | - | 142 | 148 | 215 |
NtQueryPortInformationProcess | - | 283 | 293 | 368 |
NtQuerySystemEnvironmentValueEx | - | 172 | 180 | 247 |
NtReleaseKeyedEvent | - | 281 | 291 | 366 |
NtRemoveProcessDebug | - | 191 | 199 | 266 |
NtRenameKey | - | 192 | 200 | 267 |
NtResumeProcess | - | 205 | 213 | 280 |
NtSaveKeyEx | - | 208 | 216 | 283 |
NtSetBootEntryOrder | - | 211 | 219 | 291 |
NtSetBootOptions | - | 212 | 220 | 292 |
NtSetDebugFilterState | - | 214 | 222 | 294 |
NtSetEventBoostPriority | - | 220 | 229 | 301 |
NtSetInformationDebugObject | - | 223 | 232 | 304 |
NtSetSystemEnvironmentValueEx | - | 239 | 248 | 320 |
NtSuspendProcess | - | 253 | 262 | 334 |
NtTraceEvent | - | 260 | 269 | 343 |
NtTranslateFilePath | - | 261 | 270 | 345 |
NtUnloadKeyEx | - | 264 | 274 | 349 |
NtWaitForDebugEvent | - | 269 | 279 | 354 |
NtWaitForKeyedEvent | - | 282 | 292 | 367 |
NtAddDriverEntry | - | - | 10 | 10 |
NtApphelpCacheControl | - | - | 19 | 40 |
NtDeleteDriverEntry | - | - | 64 | 121 |
NtEnumerateDriverEntries | - | - | 74 | 132 |
NtGetCurrentProcessorNumber | - | - | 294 | 369 |
NtLoadKeyEx | - | - | 104 | 168 |
NtModifyDriverEntry | - | - | 115 | 179 |
NtQueryDriverEntryOrder | - | - | 153 | 220 |
NtQueryOpenSubKeysEx | - | - | 172 | 239 |
NtSetDriverEntryOrder | - | - | 226 | 298 |
NtUnloadKey2 | - | - | 273 | 348 |
NtWaitForMultipleObjects32 | - | - | 295 | 370 |
NtAcquireCMFViewOwnership | - | - | - | 396 |
NtAlpcAcceptConnectPort | - | - | - | 19 |
NtAlpcCancelMessage | - | - | - | 20 |
NtAlpcConnectPort | - | - | - | 21 |
NtAlpcCreatePort | - | - | - | 22 |
NtAlpcCreatePortSection | - | - | - | 23 |
NtAlpcCreateResourceReserve | - | - | - | 24 |
NtAlpcCreateSectionView | - | - | - | 25 |
NtAlpcCreateSecurityContext | - | - | - | 26 |
NtAlpcDeletePortSection | - | - | - | 27 |
NtAlpcDeleteResourceReserve | - | - | - | 28 |
NtAlpcDeleteSectionView | - | - | - | 29 |
NtAlpcDeleteSecurityContext | - | - | - | 30 |
NtAlpcDisconnectPort | - | - | - | 31 |
NtAlpcImpersonateClientOfPort | - | - | - | 32 |
NtAlpcOpenSenderProcess | - | - | - | 33 |
NtAlpcOpenSenderThread | - | - | - | 34 |
NtAlpcQueryInformation | - | - | - | 35 |
NtAlpcQueryInformationMessage | - | - | - | 36 |
NtAlpcRevokeSecurityContext | - | - | - | 37 |
NtAlpcSendWaitReceivePort | - | - | - | 38 |
NtAlpcSetInformation | - | - | - | 39 |
NtCancelIoFileEx | - | - | - | 373 |
NtCancelSynchronousIoFile | - | - | - | 374 |
NtClearAllSavepointsTransaction | - | - | - | 286 |
NtClearSavepointTransaction | - | - | - | 285 |
NtCommitComplete | - | - | - | 95 |
NtCommitEnlistment | - | - | - | 87 |
NtCommitTransaction | - | - | - | 91 |
NtCreateEnlistment | - | - | - | 110 |
NtCreateKeyTransacted | - | - | - | 65 |
NtCreatePrivateNamespace | - | - | - | 69 |
NtCreateResourceManager | - | - | - | 106 |
NtCreateThreadEx | - | - | - | 388 |
NtCreateTransaction | - | - | - | 81 |
NtCreateTransactionManager | - | - | - | 100 |
NtCreateUserProcess | - | - | - | 389 |
NtCreateWorkerFactory | - | - | - | 381 |
NtDeletePrivateNamespace | - | - | - | 124 |
NtEnumerateTransactionObject | - | - | - | 135 |
NtFlushInstallUILanguage | - | - | - | 394 |
NtFlushProcessWriteBuffers | - | - | - | 143 |
NtFreezeRegistry | - | - | - | 148 |
NtFreezeTransactions | - | - | - | 149 |
NtGetMUIRegistryInfo | - | - | - | 395 |
NtGetNextProcess | - | - | - | 371 |
NtGetNextThread | - | - | - | 372 |
NtGetNlsSectionPtr | - | - | - | 153 |
NtGetNotificationResourceManager | - | - | - | 108 |
NtInitializeNlsFiles | - | - | - | 159 |
NtIsUILanguageComitted | - | - | - | 393 |
NtListTransactions | - | - | - | 392 |
NtMapCMFModule | - | - | - | 391 |
NtMarshallTransaction | - | - | - | 378 |
NtOpenEnlistment | - | - | - | 111 |
NtOpenKeyTransacted | - | - | - | 190 |
NtOpenPrivateNamespace | - | - | - | 192 |
NtOpenResourceManager | - | - | - | 107 |
NtOpenSession | - | - | - | 199 |
NtOpenTransaction | - | - | - | 82 |
NtOpenTransactionManager | - | - | - | 101 |
NtPrePrepareComplete | - | - | - | 93 |
NtPrePrepareEnlistment | - | - | - | 85 |
NtPrepareComplete | - | - | - | 94 |
NtPrepareEnlistment | - | - | - | 86 |
NtPropagationComplete | - | - | - | 379 |
NtPropagationFailed | - | - | - | 380 |
NtPullTransaction | - | - | - | 377 |
NtQueryInformationEnlistment | - | - | - | 113 |
NtQueryInformationResourceManager | - | - | - | 109 |
NtQueryInformationTransaction | - | - | - | 83 |
NtQueryInformationTransactionManager | - | - | - | 84 |
NtQueryInformationWorkerFactory | - | - | - | 385 |
NtQueryLicenseValue | - | - | - | 390 |
NtReadOnlyEnlistment | - | - | - | 88 |
NtRecoverEnlistment | - | - | - | 103 |
NtRecoverResourceManager | - | - | - | 104 |
NtRecoverTransactionManager | - | - | - | 105 |
NtRegisterProtocolAddressInformation | - | - | - | 376 |
NtReleaseCMFViewOwnership | - | - | - | 397 |
NtReleaseWorkerFactoryWorker | - | - | - | 382 |
NtRemoveIoCompletionEx | - | - | - | 375 |
NtRollbackComplete | - | - | - | 89 |
NtRollbackEnlistment | - | - | - | 90 |
NtRollbackSavepointTransaction | - | - | - | 287 |
NtRollbackTransaction | - | - | - | 92 |
NtRollforwardTransactionManager | - | - | - | 102 |
NtSavepointComplete | - | - | - | 289 |
NtSavepointTransaction | - | - | - | 288 |
NtSetInformationEnlistment | - | - | - | 112 |
NtSetInformationResourceManager | - | - | - | 99 |
NtSetInformationTransaction | - | - | - | 97 |
NtSetInformationTransactionManager | - | - | - | 98 |
NtSetInformationWorkerFactory | - | - | - | 384 |
NtShutdownWorkerFactory | - | - | - | 387 |
NtSinglePhaseReject | - | - | - | 96 |
NtStartTm | - | - | - | 114 |
NtThawRegistry | - | - | - | 341 |
NtThawTransactions | - | - | - | 342 |
NtTraceControl | - | - | - | 344 |
NtWaitForWorkViaWorkerFactory | - | - | - | 383 |
NtWorkerFactoryWorkerReady | - | - | - | 386 |
Автор: Fur
Дата: 07 августа 2007
Избранное
Остальное
Лента atom