/// <summary> /// encode param list to bytes /// </summary> /// <param name="paramList">param list</param> /// <param name="Opnum">rpc method opnum</param> /// <returns>bytes array</returns> protected internal byte[] NrpcStubEncodeToBytes(Int3264[] paramList, NrpcMethodOpnums Opnum) { return RpceStubEncoder.ToBytes( RpceStubHelper.GetPlatform(), NrpcRpcStubFormatString.TypeFormatString, new RpceStubExprEval[] { new RpceStubExprEval(NrpcRpcAdapter.logon__NETLOGON_DELTA_USERExprEval_0000) }, NrpcRpcStubFormatString.ProcFormatString, NrpcRpcStubFormatString.ProcFormatStringOffsetTable[(int)Opnum], false, paramList); }
internal static NrpcRequestStub CreateNrpcRequestStub(NrpcMethodOpnums opnum) { NrpcRequestStub requestStub = null; switch (opnum) { case NrpcMethodOpnums.NetrLogonUasLogon: requestStub = new NrpcNetrLogonUasLogonRequest(); break; case NrpcMethodOpnums.NetrLogonUasLogoff: requestStub = new NrpcNetrLogonUasLogoffRequest(); break; case NrpcMethodOpnums.NetrLogonSamLogon: requestStub = new NrpcNetrLogonSamLogonRequest(); break; case NrpcMethodOpnums.NetrLogonSamLogoff: requestStub = new NrpcNetrLogonSamLogoffRequest(); break; case NrpcMethodOpnums.NetrServerReqChallenge: requestStub = new NrpcNetrServerReqChallengeRequest(); break; case NrpcMethodOpnums.NetrServerAuthenticate: requestStub = new NrpcNetrServerAuthenticateRequest(); break; case NrpcMethodOpnums.NetrServerPasswordSet: requestStub = new NrpcNetrServerPasswordSetRequest(); break; case NrpcMethodOpnums.NetrDatabaseDeltas: requestStub = new NrpcNetrDatabaseDeltasRequest(); break; case NrpcMethodOpnums.NetrDatabaseSync: requestStub = new NrpcNetrDatabaseSyncRequest(); break; case NrpcMethodOpnums.NetrAccountDeltas: requestStub = new NrpcNetrAccountDeltasRequest(); break; case NrpcMethodOpnums.NetrAccountSync: requestStub = new NrpcNetrAccountSyncRequest(); break; case NrpcMethodOpnums.NetrGetDCName: requestStub = new NrpcNetrGetDCNameRequest(); break; case NrpcMethodOpnums.NetrLogonControl: requestStub = new NrpcNetrLogonControlRequest(); break; case NrpcMethodOpnums.NetrGetAnyDCName: requestStub = new NrpcNetrGetAnyDCNameRequest(); break; case NrpcMethodOpnums.NetrLogonControl2: requestStub = new NrpcNetrLogonControl2Request(); break; case NrpcMethodOpnums.NetrServerAuthenticate2: requestStub = new NrpcNetrServerAuthenticate2Request(); break; case NrpcMethodOpnums.NetrDatabaseSync2: requestStub = new NrpcNetrDatabaseSync2Request(); break; case NrpcMethodOpnums.NetrDatabaseRedo: requestStub = new NrpcNetrDatabaseRedoRequest(); break; case NrpcMethodOpnums.NetrLogonControl2Ex: requestStub = new NrpcNetrLogonControl2ExRequest(); break; case NrpcMethodOpnums.NetrEnumerateTrustedDomains: requestStub = new NrpcNetrEnumerateTrustedDomainsRequest(); break; case NrpcMethodOpnums.DsrGetDcName: requestStub = new NrpcDsrGetDcNameRequest(); break; case NrpcMethodOpnums.NetrLogonGetCapabilities: requestStub = new NrpcNetrLogonGetCapabilitiesRequest(); break; case NrpcMethodOpnums.NetrLogonSetServiceBits: requestStub = new NrpcNetrLogonSetServiceBitsRequest(); break; case NrpcMethodOpnums.NetrLogonGetTrustRid: requestStub = new NrpcNetrLogonGetTrustRidRequest(); break; case NrpcMethodOpnums.NetrLogonComputeServerDigest: requestStub = new NrpcNetrLogonComputeServerDigestRequest(); break; case NrpcMethodOpnums.NetrLogonComputeClientDigest: requestStub = new NrpcNetrLogonComputeClientDigestRequest(); break; case NrpcMethodOpnums.NetrServerAuthenticate3: requestStub = new NrpcNetrServerAuthenticate3Request(); break; case NrpcMethodOpnums.DsrGetDcNameEx: requestStub = new NrpcDsrGetDcNameExRequest(); break; case NrpcMethodOpnums.DsrGetSiteName: requestStub = new NrpcDsrGetSiteNameRequest(); break; case NrpcMethodOpnums.NetrLogonGetDomainInfo: requestStub = new NrpcNetrLogonGetDomainInfoRequest(); break; case NrpcMethodOpnums.NetrServerPasswordSet2: requestStub = new NrpcNetrServerPasswordSet2Request(); break; case NrpcMethodOpnums.NetrServerPasswordGet: requestStub = new NrpcNetrServerPasswordGetRequest(); break; case NrpcMethodOpnums.NetrLogonSendToSam: requestStub = new NrpcNetrLogonSendToSamRequest(); break; case NrpcMethodOpnums.DsrAddressToSiteNamesW: requestStub = new NrpcDsrAddressToSiteNamesWRequest(); break; case NrpcMethodOpnums.DsrGetDcNameEx2: requestStub = new NrpcDsrGetDcNameEx2Request(); break; case NrpcMethodOpnums.NetrLogonGetTimeServiceParentDomain: requestStub = new NrpcNetrLogonGetTimeServiceParentDomainRequest(); break; case NrpcMethodOpnums.NetrEnumerateTrustedDomainsEx: requestStub = new NrpcNetrEnumerateTrustedDomainsExRequest(); break; case NrpcMethodOpnums.DsrAddressToSiteNamesExW: requestStub = new NrpcDsrAddressToSiteNamesExWRequest(); break; case NrpcMethodOpnums.DsrGetDcSiteCoverageW: requestStub = new NrpcDsrGetDcSiteCoverageWRequest(); break; case NrpcMethodOpnums.NetrLogonSamLogonEx: requestStub = new NrpcNetrLogonSamLogonExRequest(); break; case NrpcMethodOpnums.DsrEnumerateDomainTrusts: requestStub = new NrpcDsrEnumerateDomainTrustsRequest(); break; case NrpcMethodOpnums.DsrDeregisterDnsHostRecords: requestStub = new NrpcDsrDeregisterDnsHostRecordsRequest(); break; case NrpcMethodOpnums.NetrServerTrustPasswordsGet: requestStub = new NrpcNetrServerTrustPasswordsGetRequest(); break; case NrpcMethodOpnums.DsrGetForestTrustInformation: requestStub = new NrpcDsrGetForestTrustInformationRequest(); break; case NrpcMethodOpnums.NetrGetForestTrustInformation: requestStub = new NrpcNetrGetForestTrustInformationRequest(); break; case NrpcMethodOpnums.NetrLogonSamLogonWithFlags: requestStub = new NrpcNetrLogonSamLogonWithFlagsRequest(); break; case NrpcMethodOpnums.NetrServerGetTrustInfo: requestStub = new NrpcNetrServerGetTrustInfoRequest(); break; case NrpcMethodOpnums.OpnumUnused47: requestStub = new NrpcOpnumUnused47Request(); break; case NrpcMethodOpnums.DsrUpdateReadOnlyServerDnsRecords: requestStub = new NrpcDsrUpdateReadOnlyServerDnsRecordsRequest(); break; case NrpcMethodOpnums.NetrChainSetClientAttributes: requestStub = new NrpcNetrChainSetClientAttributesRequest(); break; default: throw new InvalidOperationException("Unknown opnum encountered"); }; return requestStub; }