Skip to content

Commit 04d1eae

Browse files
committed
Reworked RPC client builder to also build a COM proxy.
1 parent d831fe9 commit 04d1eae

File tree

6 files changed

+219
-221
lines changed

6 files changed

+219
-221
lines changed

NtApiDotNet/NtApiDotNet.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,8 @@
544544
<Compile Include="Win32\Rpc\EndpointMapper\RpcEndpointMapperManaged.cs" />
545545
<Compile Include="Win32\Rpc\EndpointMapper\RpcEndpointMapperNative.cs" />
546546
<Compile Include="Win32\Rpc\EndpointMapper\RpcEndPointVersionOption.cs" />
547+
<Compile Include="Win32\Rpc\IRpcBuildableClient.cs" />
548+
<Compile Include="Win32\Rpc\RpcComProxy.cs" />
547549
<Compile Include="Win32\Rpc\RpcInterfaceId.cs" />
548550
<Compile Include="Win32\Rpc\EndpointMapper\RpcProtocolIdentifier.cs" />
549551
<Compile Include="Win32\Rpc\EndpointMapper\RpcProtocolTower.cs" />
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// Copyright 2019 Google Inc. All Rights Reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
using NtApiDotNet.Ndr;
16+
using System;
17+
using System.Collections.Generic;
18+
19+
namespace NtApiDotNet.Win32.Rpc
20+
{
21+
/// <summary>
22+
/// Interface to represent a "buildable" RPC client.
23+
/// </summary>
24+
public interface IRpcBuildableClient
25+
{
26+
/// <summary>
27+
/// The RPC server interface UUID.
28+
/// </summary>
29+
Guid InterfaceId { get; }
30+
/// <summary>
31+
/// The RPC server interface version.
32+
/// </summary>
33+
Version InterfaceVersion { get; }
34+
/// <summary>
35+
/// The list of RPC procedures.
36+
/// </summary>
37+
IEnumerable<NdrProcedureDefinition> Procedures { get; }
38+
/// <summary>
39+
/// List of parsed complext types.
40+
/// </summary>
41+
IEnumerable<NdrComplexTypeReference> ComplexTypes { get; }
42+
/// <summary>
43+
/// Path to the PE file this server came from (if known)
44+
/// </summary>
45+
string FilePath { get; }
46+
}
47+
}

0 commit comments

Comments
 (0)