Generated from Manticore v1.1.5 • 201 packages. View on pkg.go.dev

rpcinterface_338cd001224431f1aaaa900038001003_1_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/338cd001-2244-31f1-aaaa-900038001003/1.0"

Package rpcinterface_338cd001224431f1aaaa900038001003_1_0 is the descriptor for the winreg RPC interface, abstract syntax 338cd001-2244-31f1-aaaa-900038001003 version 1.0 ([MS-RRP]).

Generated by tools/idlgen (descriptor phase) from the IDL, then reviewed: the PipeName, the status-code table, and doc comments are not derivable from the IDL and must be confirmed by hand (see the TODO markers).

Index

Constants

Opnums for the on-the-wire methods. Opnums 14, 24, 25, 28 and 30 are reserved slots the server does not implement (the IDL declares them OpnumNNotImplemented); they are kept in the maps below to document the complete wire numbering but expose no callable stub.

const (
    OpnumOpenClassesRoot             uint16 = 0
    OpnumOpenCurrentUser             uint16 = 1
    OpnumOpenLocalMachine            uint16 = 2
    OpnumOpenPerformanceData         uint16 = 3
    OpnumOpenUsers                   uint16 = 4
    OpnumBaseRegCloseKey             uint16 = 5
    OpnumBaseRegCreateKey            uint16 = 6
    OpnumBaseRegDeleteKey            uint16 = 7
    OpnumBaseRegDeleteValue          uint16 = 8
    OpnumBaseRegEnumKey              uint16 = 9
    OpnumBaseRegEnumValue            uint16 = 10
    OpnumBaseRegFlushKey             uint16 = 11
    OpnumBaseRegGetKeySecurity       uint16 = 12
    OpnumBaseRegLoadKey              uint16 = 13
    OpnumOpnum14NotImplemented       uint16 = 14
    OpnumBaseRegOpenKey              uint16 = 15
    OpnumBaseRegQueryInfoKey         uint16 = 16
    OpnumBaseRegQueryValue           uint16 = 17
    OpnumBaseRegReplaceKey           uint16 = 18
    OpnumBaseRegRestoreKey           uint16 = 19
    OpnumBaseRegSaveKey              uint16 = 20
    OpnumBaseRegSetKeySecurity       uint16 = 21
    OpnumBaseRegSetValue             uint16 = 22
    OpnumBaseRegUnLoadKey            uint16 = 23
    OpnumOpnum24NotImplemented       uint16 = 24
    OpnumOpnum25NotImplemented       uint16 = 25
    OpnumBaseRegGetVersion           uint16 = 26
    OpnumOpenCurrentConfig           uint16 = 27
    OpnumOpnum28NotImplemented       uint16 = 28
    OpnumBaseRegQueryMultipleValues  uint16 = 29
    OpnumOpnum30NotImplemented       uint16 = 30
    OpnumBaseRegSaveKeyEx            uint16 = 31
    OpnumOpenPerformanceText         uint16 = 32
    OpnumOpenPerformanceNlsText      uint16 = 33
    OpnumBaseRegQueryMultipleValues2 uint16 = 34
    OpnumBaseRegDeleteKeyEx          uint16 = 35
)

Status codes returned by winreg methods. The methods return error_status_t, a Win32 error code ([MS-ERREF] 2.2 / [MS-RRP] 3.1.5); the values below are the Win32 codes (in hex) the methods document. StatusSuccess (ERROR_SUCCESS) is the canonical success value.

const (
    StatusSuccess uint32 = 0x00000000 // ERROR_SUCCESS

    ErrorFileNotFound       uint32 = 0x00000002 // ERROR_FILE_NOT_FOUND
    ErrorAccessDenied       uint32 = 0x00000005 // ERROR_ACCESS_DENIED
    ErrorInvalidHandle      uint32 = 0x00000006 // ERROR_INVALID_HANDLE
    ErrorInvalidParameter   uint32 = 0x00000057 // ERROR_INVALID_PARAMETER
    ErrorInsufficientBuffer uint32 = 0x0000007A // ERROR_INSUFFICIENT_BUFFER
    ErrorMoreData           uint32 = 0x000000EA // ERROR_MORE_DATA
    ErrorNoMoreItems        uint32 = 0x00000103 // ERROR_NO_MORE_ITEMS
    ErrorBadPathname        uint32 = 0x000000A1 // ERROR_BAD_PATHNAME
    ErrorCallNotImplemented uint32 = 0x00000078 // ERROR_CALL_NOT_IMPLEMENTED
    ErrorKeyDeleted         uint32 = 0x000003FA // ERROR_KEY_DELETED
    ErrorKeyHasChildren     uint32 = 0x000003FB // ERROR_KEY_HAS_CHILDREN
    ErrorRegSubkeyNotFound  uint32 = 0x000003F9 // (ERROR_BADKEY family) subkey not found
    ErrorShutdownInProgress uint32 = 0x0000045B // ERROR_SHUTDOWN_IN_PROGRESS
)

Registry value types (the dwType field of values) ([MS-RRP] 3.1.1.6, [MS-DTYP]).

const (
    RegNone                    uint32 = 0
    RegSz                      uint32 = 1
    RegExpandSz                uint32 = 2
    RegBinary                  uint32 = 3
    RegDword                   uint32 = 4 // little-endian
    RegDwordBigEndian          uint32 = 5
    RegLink                    uint32 = 6
    RegMultiSz                 uint32 = 7
    RegResourceList            uint32 = 8
    RegFullResourceDescriptor  uint32 = 9
    RegResourceRequirementList uint32 = 10
    RegQword                   uint32 = 11
)

REGSAM key-access rights (the samDesired argument) ([MS-RRP] 2.2.3, [MS-DTYP] 2.4.3).

const (
    KeyQueryValue        uint32 = 0x00000001
    KeySetValue          uint32 = 0x00000002
    KeyCreateSubKey      uint32 = 0x00000004
    KeyEnumerateSubKeys  uint32 = 0x00000008
    KeyNotify            uint32 = 0x00000010
    KeyCreateLink        uint32 = 0x00000020
    KeyWow64_64Key       uint32 = 0x00000100
    KeyWow64_32Key       uint32 = 0x00000200
    KeyRead              uint32 = 0x00020019
    KeyWrite             uint32 = 0x00020006
    KeyExecute           uint32 = 0x00020019
    KeyAllAccess         uint32 = 0x000F003F
    RegOptionVolatile    uint32 = 0x00000001 // dwOptions for BaseRegCreateKey
    RegOptionNonVolatile uint32 = 0x00000000
)

Key-creation disposition (the lpdwDisposition out value of BaseRegCreateKey) ([MS-RRP] 3.1.5.7).

const (
    RegCreatedNewKey     uint32 = 0x00000001
    RegOpenedExistingKey uint32 = 0x00000002
)

SECURITY_INFORMATION bits selecting parts of a security descriptor ([MS-DTYP] 2.4.7).

const (
    OwnerSecurityInformation uint32 = 0x00000001
    GroupSecurityInformation uint32 = 0x00000002
    DaclSecurityInformation  uint32 = 0x00000004
    SaclSecurityInformation  uint32 = 0x00000008
)

PipeName is the IPC$-relative named pipe for the winreg interface ([MS-RRP] 1.9 / 2.1: the Remote Registry service listens on the \PIPE\winreg endpoint over ncacn_np).

const PipeName = `\winreg`

Variables

NameToOpnum is the reverse of OpnumToName, built at init so the two never drift.

var NameToOpnum = func() map[string]uint16 {
    m := make(map[string]uint16, len(OpnumToName))
    for op, name := range OpnumToName {
        m[name] = op
    }
    return m
}()

OpnumToName maps each on-the-wire opnum to its method name; the single source of truth.

var OpnumToName = map[uint16]string{
    OpnumOpenClassesRoot:             "OpenClassesRoot",
    OpnumOpenCurrentUser:             "OpenCurrentUser",
    OpnumOpenLocalMachine:            "OpenLocalMachine",
    OpnumOpenPerformanceData:         "OpenPerformanceData",
    OpnumOpenUsers:                   "OpenUsers",
    OpnumBaseRegCloseKey:             "BaseRegCloseKey",
    OpnumBaseRegCreateKey:            "BaseRegCreateKey",
    OpnumBaseRegDeleteKey:            "BaseRegDeleteKey",
    OpnumBaseRegDeleteValue:          "BaseRegDeleteValue",
    OpnumBaseRegEnumKey:              "BaseRegEnumKey",
    OpnumBaseRegEnumValue:            "BaseRegEnumValue",
    OpnumBaseRegFlushKey:             "BaseRegFlushKey",
    OpnumBaseRegGetKeySecurity:       "BaseRegGetKeySecurity",
    OpnumBaseRegLoadKey:              "BaseRegLoadKey",
    OpnumOpnum14NotImplemented:       "Opnum14NotImplemented",
    OpnumBaseRegOpenKey:              "BaseRegOpenKey",
    OpnumBaseRegQueryInfoKey:         "BaseRegQueryInfoKey",
    OpnumBaseRegQueryValue:           "BaseRegQueryValue",
    OpnumBaseRegReplaceKey:           "BaseRegReplaceKey",
    OpnumBaseRegRestoreKey:           "BaseRegRestoreKey",
    OpnumBaseRegSaveKey:              "BaseRegSaveKey",
    OpnumBaseRegSetKeySecurity:       "BaseRegSetKeySecurity",
    OpnumBaseRegSetValue:             "BaseRegSetValue",
    OpnumBaseRegUnLoadKey:            "BaseRegUnLoadKey",
    OpnumOpnum24NotImplemented:       "Opnum24NotImplemented",
    OpnumOpnum25NotImplemented:       "Opnum25NotImplemented",
    OpnumBaseRegGetVersion:           "BaseRegGetVersion",
    OpnumOpenCurrentConfig:           "OpenCurrentConfig",
    OpnumOpnum28NotImplemented:       "Opnum28NotImplemented",
    OpnumBaseRegQueryMultipleValues:  "BaseRegQueryMultipleValues",
    OpnumOpnum30NotImplemented:       "Opnum30NotImplemented",
    OpnumBaseRegSaveKeyEx:            "BaseRegSaveKeyEx",
    OpnumOpenPerformanceText:         "OpenPerformanceText",
    OpnumOpenPerformanceNlsText:      "OpenPerformanceNlsText",
    OpnumBaseRegQueryMultipleValues2: "BaseRegQueryMultipleValues2",
    OpnumBaseRegDeleteKeyEx:          "BaseRegDeleteKeyEx",
}

func StatusString

func StatusString(status uint32) string

StatusString returns a mnemonic for the documented status codes, otherwise the hex value.

func SyntaxID

func SyntaxID() syntax.SyntaxID

SyntaxID returns the winreg abstract syntax identifier: 338cd001-2244-31f1-aaaa-900038001003, version 1.0.

Subpackages