Created
October 17, 2018 14:30
-
-
Save h4z31/67ec286fbb05fb7553ff0e453afbeca3 to your computer and use it in GitHub Desktop.
[rough] mapping system call numbers of Zw APIs from local ntdll.dll on Windows 10 by binaryninja
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from binaryninja import * | |
| log_to_stderr(1) | |
| def get_syscall_no(zwf): | |
| for b in zwf.basic_blocks: | |
| for i in b.get_disassembly_text(): | |
| if str(i).startswith("syscall"): | |
| eax = zwf.get_reg_value_at(i.address, "eax") | |
| if eax.type == RegisterValueType.ConstantValue: | |
| return eax.value | |
| else: | |
| raise Exception("couldn't determine syscall number.") | |
| raise Exception("syscall not found") | |
| log_info("[*] loading ntdll.dll...") | |
| ntdll = BinaryViewType['PE'].open("C:\\Windows\\System32\\ntdll.dll") | |
| log_info("[*] analyzing ntdll.dll...") | |
| ntdll.update_analysis_and_wait() | |
| ZwFunctions = ( | |
| function for function in ntdll.functions if function.name.startswith("Zw")) | |
| log_info("[*] mapping syscall numbers..") | |
| for f in ZwFunctions: | |
| log_info("- now processing: %s" % (f.name)) | |
| try: | |
| syscallno = get_syscall_no(f) | |
| except Exception as e: | |
| log_error(str(e)) | |
| print("%s\t%s" % (f.name, str(syscallno))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ZwAccessCheck | 0 | |
|---|---|---|
| ZwWorkerFactoryWorkerReady | 1 | |
| ZwAcceptConnectPort | 2 | |
| ZwMapUserPhysicalPagesScatter | 3 | |
| ZwWaitForSingleObject | 4 | |
| ZwCallbackReturn | 5 | |
| ZwReadFile | 6 | |
| ZwDeviceIoControlFile | 7 | |
| ZwWriteFile | 8 | |
| ZwRemoveIoCompletion | 9 | |
| ZwReleaseSemaphore | 10 | |
| ZwReplyWaitReceivePort | 11 | |
| ZwReplyPort | 12 | |
| ZwSetInformationThread | 13 | |
| ZwSetEvent | 14 | |
| ZwClose | 15 | |
| ZwQueryObject | 16 | |
| ZwQueryInformationFile | 17 | |
| ZwOpenKey | 18 | |
| ZwEnumerateValueKey | 19 | |
| ZwFindAtom | 20 | |
| ZwQueryDefaultLocale | 21 | |
| ZwQueryKey | 22 | |
| ZwQueryValueKey | 23 | |
| ZwAllocateVirtualMemory | 24 | |
| ZwQueryInformationProcess | 25 | |
| ZwWaitForMultipleObjects32 | 26 | |
| ZwWriteFileGather | 27 | |
| ZwSetInformationProcess | 28 | |
| ZwCreateKey | 29 | |
| ZwFreeVirtualMemory | 30 | |
| ZwImpersonateClientOfPort | 31 | |
| ZwReleaseMutant | 32 | |
| ZwQueryInformationToken | 33 | |
| ZwRequestWaitReplyPort | 34 | |
| ZwQueryVirtualMemory | 35 | |
| ZwOpenThreadToken | 36 | |
| ZwQueryInformationThread | 37 | |
| ZwOpenProcess | 38 | |
| ZwSetInformationFile | 39 | |
| ZwMapViewOfSection | 40 | |
| ZwAccessCheckAndAuditAlarm | 41 | |
| ZwUnmapViewOfSection | 42 | |
| ZwReplyWaitReceivePortEx | 43 | |
| ZwTerminateProcess | 44 | |
| ZwSetEventBoostPriority | 45 | |
| ZwReadFileScatter | 46 | |
| ZwOpenThreadTokenEx | 47 | |
| ZwOpenProcessTokenEx | 48 | |
| ZwQueryPerformanceCounter | 49 | |
| ZwEnumerateKey | 50 | |
| ZwOpenFile | 51 | |
| ZwDelayExecution | 52 | |
| ZwQueryDirectoryFile | 53 | |
| ZwQuerySystemInformation | 54 | |
| ZwOpenSection | 55 | |
| ZwQueryTimer | 56 | |
| ZwFsControlFile | 57 | |
| ZwWriteVirtualMemory | 58 | |
| ZwCloseObjectAuditAlarm | 59 | |
| ZwDuplicateObject | 60 | |
| ZwQueryAttributesFile | 61 | |
| ZwClearEvent | 62 | |
| ZwReadVirtualMemory | 63 | |
| ZwOpenEvent | 64 | |
| ZwAdjustPrivilegesToken | 65 | |
| ZwDuplicateToken | 66 | |
| ZwContinue | 67 | |
| ZwQueryDefaultUILanguage | 68 | |
| ZwQueueApcThread | 69 | |
| ZwYieldExecution | 70 | |
| ZwAddAtom | 71 | |
| ZwCreateEvent | 72 | |
| ZwQueryVolumeInformationFile | 73 | |
| ZwCreateSection | 74 | |
| ZwFlushBuffersFile | 75 | |
| ZwApphelpCacheControl | 76 | |
| ZwCreateProcessEx | 77 | |
| ZwCreateThread | 78 | |
| ZwIsProcessInJob | 79 | |
| ZwProtectVirtualMemory | 80 | |
| ZwQuerySection | 81 | |
| ZwResumeThread | 82 | |
| ZwTerminateThread | 83 | |
| ZwReadRequestData | 84 | |
| ZwCreateFile | 85 | |
| ZwQueryEvent | 86 | |
| ZwWriteRequestData | 87 | |
| ZwOpenDirectoryObject | 88 | |
| ZwAccessCheckByTypeAndAuditAlarm | 89 | |
| ZwQuerySystemTime | 89 | |
| ZwWaitForMultipleObjects | 91 | |
| ZwSetInformationObject | 92 | |
| ZwCancelIoFile | 93 | |
| ZwTraceEvent | 94 | |
| ZwPowerInformation | 95 | |
| ZwSetValueKey | 96 | |
| ZwCancelTimer | 97 | |
| ZwSetTimer | 98 | |
| ZwAccessCheckByType | 99 | |
| ZwAccessCheckByTypeResultList | 100 | |
| ZwAccessCheckByTypeResultListAndAuditAlarm | 101 | |
| ZwAccessCheckByTypeResultListAndAuditAlarmByHandle | 102 | |
| ZwAcquireProcessActivityReference | 103 | |
| ZwAddAtomEx | 104 | |
| ZwAddBootEntry | 105 | |
| ZwAddDriverEntry | 106 | |
| ZwAdjustGroupsToken | 107 | |
| ZwAdjustTokenClaimsAndDeviceGroups | 108 | |
| ZwAlertResumeThread | 109 | |
| ZwAlertThread | 110 | |
| ZwAlertThreadByThreadId | 111 | |
| ZwAllocateLocallyUniqueId | 112 | |
| ZwAllocateReserveObject | 113 | |
| ZwAllocateUserPhysicalPages | 114 | |
| ZwAllocateUuids | 115 | |
| ZwAllocateVirtualMemoryEx | 116 | |
| ZwAlpcAcceptConnectPort | 117 | |
| ZwAlpcCancelMessage | 118 | |
| ZwAlpcConnectPort | 119 | |
| ZwAlpcConnectPortEx | 120 | |
| ZwAlpcCreatePort | 121 | |
| ZwAlpcCreatePortSection | 122 | |
| ZwAlpcCreateResourceReserve | 123 | |
| ZwAlpcCreateSectionView | 124 | |
| ZwAlpcCreateSecurityContext | 125 | |
| ZwAlpcDeletePortSection | 126 | |
| ZwAlpcDeleteResourceReserve | 127 | |
| ZwAlpcDeleteSectionView | 128 | |
| ZwAlpcDeleteSecurityContext | 129 | |
| ZwAlpcDisconnectPort | 130 | |
| ZwAlpcImpersonateClientContainerOfPort | 131 | |
| ZwAlpcImpersonateClientOfPort | 132 | |
| ZwAlpcOpenSenderProcess | 133 | |
| ZwAlpcOpenSenderThread | 134 | |
| ZwAlpcQueryInformation | 135 | |
| ZwAlpcQueryInformationMessage | 136 | |
| ZwAlpcRevokeSecurityContext | 137 | |
| ZwAlpcSendWaitReceivePort | 138 | |
| ZwAlpcSetInformation | 139 | |
| ZwAreMappedFilesTheSame | 140 | |
| ZwAssignProcessToJobObject | 141 | |
| ZwAssociateWaitCompletionPacket | 142 | |
| ZwCallEnclave | 143 | |
| ZwCancelIoFileEx | 144 | |
| ZwCancelSynchronousIoFile | 145 | |
| ZwCancelTimer2 | 146 | |
| ZwCancelWaitCompletionPacket | 147 | |
| ZwCommitComplete | 148 | |
| ZwCommitEnlistment | 149 | |
| ZwCommitRegistryTransaction | 150 | |
| ZwCommitTransaction | 151 | |
| ZwCompactKeys | 152 | |
| ZwCompareObjects | 153 | |
| ZwCompareSigningLevels | 154 | |
| ZwCompareTokens | 155 | |
| ZwCompleteConnectPort | 156 | |
| ZwCompressKey | 157 | |
| ZwConnectPort | 158 | |
| ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter | 159 | |
| ZwCreateDebugObject | 160 | |
| ZwCreateDirectoryObject | 161 | |
| ZwCreateDirectoryObjectEx | 162 | |
| ZwCreateEnclave | 163 | |
| ZwCreateEnlistment | 164 | |
| ZwCreateEventPair | 165 | |
| ZwCreateIRTimer | 166 | |
| ZwCreateIoCompletion | 167 | |
| ZwCreateJobObject | 168 | |
| ZwCreateJobSet | 169 | |
| ZwCreateKeyTransacted | 170 | |
| ZwCreateKeyedEvent | 171 | |
| ZwCreateLowBoxToken | 172 | |
| ZwCreateMailslotFile | 173 | |
| ZwCreateMutant | 174 | |
| ZwCreateNamedPipeFile | 175 | |
| ZwCreatePagingFile | 176 | |
| ZwCreatePartition | 177 | |
| ZwCreatePort | 178 | |
| ZwCreatePrivateNamespace | 179 | |
| ZwCreateProcess | 180 | |
| ZwCreateProfile | 181 | |
| ZwCreateProfileEx | 182 | |
| ZwCreateRegistryTransaction | 183 | |
| ZwCreateResourceManager | 184 | |
| ZwCreateSectionEx | 185 | |
| ZwCreateSemaphore | 186 | |
| ZwCreateSymbolicLinkObject | 187 | |
| ZwCreateThreadEx | 188 | |
| ZwCreateTimer | 189 | |
| ZwCreateTimer2 | 190 | |
| ZwCreateToken | 191 | |
| ZwCreateTokenEx | 192 | |
| ZwCreateTransaction | 193 | |
| ZwCreateTransactionManager | 194 | |
| ZwCreateUserProcess | 195 | |
| ZwCreateWaitCompletionPacket | 196 | |
| ZwCreateWaitablePort | 197 | |
| ZwCreateWnfStateName | 198 | |
| ZwCreateWorkerFactory | 199 | |
| ZwDebugActiveProcess | 200 | |
| ZwDebugContinue | 201 | |
| ZwDeleteAtom | 202 | |
| ZwDeleteBootEntry | 203 | |
| ZwDeleteDriverEntry | 204 | |
| ZwDeleteFile | 205 | |
| ZwDeleteKey | 206 | |
| ZwDeleteObjectAuditAlarm | 207 | |
| ZwDeletePrivateNamespace | 208 | |
| ZwDeleteValueKey | 209 | |
| ZwDeleteWnfStateData | 210 | |
| ZwDeleteWnfStateName | 211 | |
| ZwDisableLastKnownGood | 212 | |
| ZwDisplayString | 213 | |
| ZwDrawText | 214 | |
| ZwEnableLastKnownGood | 215 | |
| ZwEnumerateBootEntries | 216 | |
| ZwEnumerateDriverEntries | 217 | |
| ZwEnumerateSystemEnvironmentValuesEx | 218 | |
| ZwEnumerateTransactionObject | 219 | |
| ZwExtendSection | 220 | |
| ZwFilterBootOption | 221 | |
| ZwFilterToken | 222 | |
| ZwFilterTokenEx | 223 | |
| ZwFlushBuffersFileEx | 224 | |
| ZwFlushInstallUILanguage | 225 | |
| ZwFlushInstructionCache | 226 | |
| ZwFlushKey | 227 | |
| ZwFlushProcessWriteBuffers | 228 | |
| ZwFlushVirtualMemory | 229 | |
| ZwFlushWriteBuffer | 230 | |
| ZwFreeUserPhysicalPages | 231 | |
| ZwFreezeRegistry | 232 | |
| ZwFreezeTransactions | 233 | |
| ZwGetCachedSigningLevel | 234 | |
| ZwGetCompleteWnfStateSubscription | 235 | |
| ZwGetContextThread | 236 | |
| ZwGetCurrentProcessorNumber | 237 | |
| ZwGetCurrentProcessorNumberEx | 238 | |
| ZwGetDevicePowerState | 239 | |
| ZwGetMUIRegistryInfo | 240 | |
| ZwGetNextProcess | 241 | |
| ZwGetNextThread | 242 | |
| ZwGetNlsSectionPtr | 243 | |
| ZwGetNotificationResourceManager | 244 | |
| ZwGetWriteWatch | 245 | |
| ZwImpersonateAnonymousToken | 246 | |
| ZwImpersonateThread | 247 | |
| ZwInitializeEnclave | 248 | |
| ZwInitializeNlsFiles | 249 | |
| ZwInitializeRegistry | 250 | |
| ZwInitiatePowerAction | 251 | |
| ZwIsSystemResumeAutomatic | 252 | |
| ZwIsUILanguageComitted | 253 | |
| ZwListenPort | 254 | |
| ZwLoadDriver | 255 | |
| ZwLoadEnclaveData | 256 | |
| ZwLoadKey | 257 | |
| ZwLoadKey2 | 258 | |
| ZwLoadKeyEx | 259 | |
| ZwLockFile | 260 | |
| ZwLockProductActivationKeys | 261 | |
| ZwLockRegistryKey | 262 | |
| ZwLockVirtualMemory | 263 | |
| ZwMakePermanentObject | 264 | |
| ZwMakeTemporaryObject | 265 | |
| ZwManageHotPatch | 266 | |
| ZwManagePartition | 267 | |
| ZwMapCMFModule | 268 | |
| ZwMapUserPhysicalPages | 269 | |
| ZwMapViewOfSectionEx | 270 | |
| ZwModifyBootEntry | 271 | |
| ZwModifyDriverEntry | 272 | |
| ZwNotifyChangeDirectoryFile | 273 | |
| ZwNotifyChangeDirectoryFileEx | 274 | |
| ZwNotifyChangeKey | 275 | |
| ZwNotifyChangeMultipleKeys | 276 | |
| ZwNotifyChangeSession | 277 | |
| ZwOpenEnlistment | 278 | |
| ZwOpenEventPair | 279 | |
| ZwOpenIoCompletion | 280 | |
| ZwOpenJobObject | 281 | |
| ZwOpenKeyEx | 282 | |
| ZwOpenKeyTransacted | 283 | |
| ZwOpenKeyTransactedEx | 284 | |
| ZwOpenKeyedEvent | 285 | |
| ZwOpenMutant | 286 | |
| ZwOpenObjectAuditAlarm | 287 | |
| ZwOpenPartition | 288 | |
| ZwOpenPrivateNamespace | 289 | |
| ZwOpenProcessToken | 290 | |
| ZwOpenRegistryTransaction | 291 | |
| ZwOpenResourceManager | 292 | |
| ZwOpenSemaphore | 293 | |
| ZwOpenSession | 294 | |
| ZwOpenSymbolicLinkObject | 295 | |
| ZwOpenThread | 296 | |
| ZwOpenTimer | 297 | |
| ZwOpenTransaction | 298 | |
| ZwOpenTransactionManager | 299 | |
| ZwPlugPlayControl | 300 | |
| ZwPrePrepareComplete | 301 | |
| ZwPrePrepareEnlistment | 302 | |
| ZwPrepareComplete | 303 | |
| ZwPrepareEnlistment | 304 | |
| ZwPrivilegeCheck | 305 | |
| ZwPrivilegeObjectAuditAlarm | 306 | |
| ZwPrivilegedServiceAuditAlarm | 307 | |
| ZwPropagationComplete | 308 | |
| ZwPropagationFailed | 309 | |
| ZwPulseEvent | 310 | |
| ZwQueryAuxiliaryCounterFrequency | 311 | |
| ZwQueryBootEntryOrder | 312 | |
| ZwQueryBootOptions | 313 | |
| ZwQueryDebugFilterState | 314 | |
| ZwQueryDirectoryFileEx | 315 | |
| ZwQueryDirectoryObject | 316 | |
| ZwQueryDriverEntryOrder | 317 | |
| ZwQueryEaFile | 318 | |
| ZwQueryFullAttributesFile | 319 | |
| ZwQueryInformationAtom | 320 | |
| ZwQueryInformationByName | 321 | |
| ZwQueryInformationEnlistment | 322 | |
| ZwQueryInformationJobObject | 323 | |
| ZwQueryInformationPort | 324 | |
| ZwQueryInformationResourceManager | 325 | |
| ZwQueryInformationTransaction | 326 | |
| ZwQueryInformationTransactionManager | 327 | |
| ZwQueryInformationWorkerFactory | 328 | |
| ZwQueryInstallUILanguage | 329 | |
| ZwQueryIntervalProfile | 330 | |
| ZwQueryIoCompletion | 331 | |
| ZwQueryLicenseValue | 332 | |
| ZwQueryMultipleValueKey | 333 | |
| ZwQueryMutant | 334 | |
| ZwQueryOpenSubKeys | 335 | |
| ZwQueryOpenSubKeysEx | 336 | |
| ZwQueryPortInformationProcess | 337 | |
| ZwQueryQuotaInformationFile | 338 | |
| ZwQuerySecurityAttributesToken | 339 | |
| ZwQuerySecurityObject | 340 | |
| ZwQuerySecurityPolicy | 341 | |
| ZwQuerySemaphore | 342 | |
| ZwQuerySymbolicLinkObject | 343 | |
| ZwQuerySystemEnvironmentValue | 344 | |
| ZwQuerySystemEnvironmentValueEx | 345 | |
| ZwQuerySystemInformationEx | 346 | |
| ZwQueryTimerResolution | 347 | |
| ZwQueryWnfStateData | 348 | |
| ZwQueryWnfStateNameInformation | 349 | |
| ZwQueueApcThreadEx | 350 | |
| ZwRaiseException | 351 | |
| ZwRaiseHardError | 352 | |
| ZwReadOnlyEnlistment | 353 | |
| ZwRecoverEnlistment | 354 | |
| ZwRecoverResourceManager | 355 | |
| ZwRecoverTransactionManager | 356 | |
| ZwRegisterProtocolAddressInformation | 357 | |
| ZwRegisterThreadTerminatePort | 358 | |
| ZwReleaseKeyedEvent | 359 | |
| ZwReleaseWorkerFactoryWorker | 360 | |
| ZwRemoveIoCompletionEx | 361 | |
| ZwRemoveProcessDebug | 362 | |
| ZwRenameKey | 363 | |
| ZwRenameTransactionManager | 364 | |
| ZwReplaceKey | 365 | |
| ZwReplacePartitionUnit | 366 | |
| ZwReplyWaitReplyPort | 367 | |
| ZwRequestPort | 368 | |
| ZwResetEvent | 369 | |
| ZwResetWriteWatch | 370 | |
| ZwRestoreKey | 371 | |
| ZwResumeProcess | 372 | |
| ZwRevertContainerImpersonation | 373 | |
| ZwRollbackComplete | 374 | |
| ZwRollbackEnlistment | 375 | |
| ZwRollbackRegistryTransaction | 376 | |
| ZwRollbackTransaction | 377 | |
| ZwRollforwardTransactionManager | 378 | |
| ZwSaveKey | 379 | |
| ZwSaveKeyEx | 380 | |
| ZwSaveMergedKeys | 381 | |
| ZwSecureConnectPort | 382 | |
| ZwSerializeBoot | 383 | |
| ZwSetBootEntryOrder | 384 | |
| ZwSetBootOptions | 385 | |
| ZwSetCachedSigningLevel | 386 | |
| ZwSetCachedSigningLevel2 | 387 | |
| ZwSetContextThread | 388 | |
| ZwSetDebugFilterState | 389 | |
| ZwSetDefaultHardErrorPort | 390 | |
| ZwSetDefaultLocale | 391 | |
| ZwSetDefaultUILanguage | 392 | |
| ZwSetDriverEntryOrder | 393 | |
| ZwSetEaFile | 394 | |
| ZwSetHighEventPair | 395 | |
| ZwSetHighWaitLowEventPair | 396 | |
| ZwSetIRTimer | 397 | |
| ZwSetInformationDebugObject | 398 | |
| ZwSetInformationEnlistment | 399 | |
| ZwSetInformationJobObject | 400 | |
| ZwSetInformationKey | 401 | |
| ZwSetInformationResourceManager | 402 | |
| ZwSetInformationSymbolicLink | 403 | |
| ZwSetInformationToken | 404 | |
| ZwSetInformationTransaction | 405 | |
| ZwSetInformationTransactionManager | 406 | |
| ZwSetInformationVirtualMemory | 407 | |
| ZwSetInformationWorkerFactory | 408 | |
| ZwSetIntervalProfile | 409 | |
| ZwSetIoCompletion | 410 | |
| ZwSetIoCompletionEx | 411 | |
| ZwSetLdtEntries | 412 | |
| ZwSetLowEventPair | 413 | |
| ZwSetLowWaitHighEventPair | 414 | |
| ZwSetQuotaInformationFile | 415 | |
| ZwSetSecurityObject | 416 | |
| ZwSetSystemEnvironmentValue | 417 | |
| ZwSetSystemEnvironmentValueEx | 418 | |
| ZwSetSystemInformation | 419 | |
| ZwSetSystemPowerState | 420 | |
| ZwSetSystemTime | 421 | |
| ZwSetThreadExecutionState | 422 | |
| ZwSetTimer2 | 423 | |
| ZwSetTimerEx | 424 | |
| ZwSetTimerResolution | 425 | |
| ZwSetUuidSeed | 426 | |
| ZwSetVolumeInformationFile | 427 | |
| ZwSetWnfProcessNotificationEvent | 428 | |
| ZwShutdownSystem | 429 | |
| ZwShutdownWorkerFactory | 430 | |
| ZwSignalAndWaitForSingleObject | 431 | |
| ZwSinglePhaseReject | 432 | |
| ZwStartProfile | 433 | |
| ZwStopProfile | 434 | |
| ZwSubscribeWnfStateChange | 435 | |
| ZwSuspendProcess | 436 | |
| ZwSuspendThread | 437 | |
| ZwSystemDebugControl | 438 | |
| ZwTerminateEnclave | 439 | |
| ZwTerminateJobObject | 440 | |
| ZwTestAlert | 441 | |
| ZwThawRegistry | 442 | |
| ZwThawTransactions | 443 | |
| ZwTraceControl | 444 | |
| ZwTranslateFilePath | 445 | |
| ZwUmsThreadYield | 446 | |
| ZwUnloadDriver | 447 | |
| ZwUnloadKey | 448 | |
| ZwUnloadKey2 | 449 | |
| ZwUnloadKeyEx | 450 | |
| ZwUnlockFile | 451 | |
| ZwUnlockVirtualMemory | 452 | |
| ZwUnmapViewOfSectionEx | 453 | |
| ZwUnsubscribeWnfStateChange | 454 | |
| ZwUpdateWnfStateData | 455 | |
| ZwVdmControl | 456 | |
| ZwWaitForAlertByThreadId | 457 | |
| ZwWaitForDebugEvent | 458 | |
| ZwWaitForKeyedEvent | 459 | |
| ZwWaitForWorkViaWorkerFactory | 460 | |
| ZwWaitHighEventPair | 461 | |
| ZwWaitLowEventPair | 462 |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
python syscall_number_mapper.py > syscall_numbers.tsv