Go to file
1orenz0 39ded8c54d Fix size_is description when the parameter is out
When the argument using to describe size_is is an out parameter, we
don't know it's value and it cannot be used to describe the size of
another parameter. That's why in that case we can only set a max range
2018-04-25 20:33:57 +02:00
Qt Upgrade to Qt5 2017-11-07 20:25:01 +01:00
RpcCommon Add whole project 2017-03-14 21:47:33 +01:00
RpcCore FEATURE-EXPERIMENTAL : add /f flag to force loading for unsupported runtimes 2018-02-12 21:54:18 +01:00
RpcDecompiler Fix size_is description when the parameter is out 2018-04-25 20:33:57 +02:00
RpcView FIX : /f flag wasn't transmitted on runas 2018-02-17 19:31:06 +01:00
.gitignore Add whole project 2017-03-14 21:47:33 +01:00
CMakeLists.txt Add manual refresh option and configuration files to describe interfaces 2017-12-11 22:43:44 +01:00
LICENSE Initial commit 2017-03-14 20:14:45 +01:00
README.md Update README.md 2017-11-08 21:02:34 +01:00
_config.yml Set theme jekyll-theme-tactile 2017-04-25 21:48:45 +02:00

README.md

RpcView

RpcView is an open-source tool to explore and decompile all RPC functionalities present on a Microsoft system.

You can get the last official release.

Or you can download the last automatically built release

Build status

Warning: you have to install "Microsoft Visual C++ 2015 Redistributable" to use RpcView.

How to add a new RPC runtime

Basically you have two possibilities to support a new RPC runtime (rpcrt4.dll) version:

  • The easy way: just edit the RpcInternals.h file in the corresponding RpcCore directories (32 and 64-bit versions) to add your runtime version in the RPC_CORE_RUNTIME_VERSION table.
  • The best way: reverse the rpcrt4.dll to define the required structures used by RpcView, e.g. RPC_SERVER, RPC_INTERFACE and RPC_ADDRESS.

Currently, the supported versions are organized as follows:

  • RpcCore1 for Windows XP
  • RpcCore2 for Windows 7
  • RpcCore3 for Windows 8
  • RpcCore4 for Windows 8.1 and 10

Compilation

Required elements to compiled the project:

  • Visual Studio (currently Visual Studio 2015 community)
  • CMake (at least 3.0.2)
  • Qt5 (currently 5.9.1)

Before running CMake you have to set the CMAKE_PREFIX_PATH environment variable with the current Qt path, for instance (x64):

set CMAKE_PREFIX_PATH=C:\Qt\Qt5.9.1\5.9.1\msvc2015_64

Then you can run CMake to produce the project solution. Here is an example to generate the x64 solution with Visual Studio 2015 from the RpcView/Build/x64 directory:

cmake -G"Visual Studio 14 2015 Win64" ../../
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
[RpcView]
[RpcDecompiler]
[RpcCore1_32bits]
[RpcCore2_32bits]
[RpcCore2_64bits]
[RpcCore3_32bits]
[RpcCore3_64bits]
[RpcCore4_32bits]
[RpcCore4_64bits]
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Dev/RpcView/Build/x64

To produce the Win32 solution:

set CMAKE_PREFIX_PATH=C:\Qt\Qt5.9.1\5.9.1\msvc2015

Then from the RpcView/Build/x86 directory:

cmake -G"Visual Studio 14 2015" ../../
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
[RpcView]
[RpcDecompiler]
[RpcCore1_32bits]
[RpcCore2_32bits]
[RpcCore3_32bits]
[RpcCore4_32bits]
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Dev/RpcView/Build/x86

Now you can compile the solution with Visual Studio or CMAKE:

cmake --build . --config Release

RpcView32 binaries are produced in the RpcView/Build/bin/x86 directory and RpcView64 ones in the RpcView/Build/bin/x64

Acknowledgements

  • Jeremy
  • Julien
  • Yoanne
  • Bruno