This commit is contained in:
TogDu
2017-10-30 18:36:00 +01:00
6 changed files with 32 additions and 13 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ project(RpcView)
set(RPCVIEW_VERSION_MAJOR 0)
set(RPCVIEW_VERSION_MINOR 2)
set(RPCVIEW_VERSION_RELEASE 0)
set(RPCVIEW_VERSION_RELEASE 1)
# configure a header file to pass some of the CMake settings to the source code
configure_file (
+2 -2
View File
@@ -19,7 +19,7 @@
#pragma comment(lib,"Version.lib")
#pragma comment(lib,"Userenv.lib")
#define MAX_SIMPLE_DICT_ENTRIES 0x400
#define MAX_SIMPLE_DICT_ENTRIES 0x200
#define RPC_MAX_ENDPOINT_PROTOCOL_SIZE 0x100
#define RPC_MAX_ENDPOINT_NAME_SIZE 0x100
#define RPC_MAX_DLL_NAME_SIZE 0x100
@@ -191,7 +191,7 @@ BOOL WINAPI GetRpcServerAddressCallback(HANDLE hProcess, UINT Index, VOID PTR_T
UNREFERENCED_PARAMETER(Index);
if (!ReadProcessMemory(hProcess,pSimpleDictEntry,&RpcInterface,sizeof(RpcInterface),NULL)) goto End;
if ( (RpcInterface.RpcServerInterface.Length==sizeof(RPC_SERVER_INTERFACE_T)) &&
(!memcmp(&RpcInterface.RpcServerInterface.TransferSyntax, &DceRpcSyntaxUuid, sizeof(DceRpcSyntaxUuid))))
{
+6 -2
View File
@@ -18,9 +18,13 @@ static UINT64 RPC_CORE_RUNTIME_VERSION[] = {
0xA0000295A0132LL, //10.0.10586.306
0xA0000380603E8LL, //10.0.14342.1000
0xA000038190000LL, //10.0.14361.0
0xA000038390000LL, //10.0.14393.0
0xA000038390000LL, //10.0.14393.0
0xA000038390052LL, //10.0.14393.82
0xA00003AD70000LL //10.0.15063.138
0xA00003AD70000LL, //10.0.15063.0
0xA00003AD701BFLL, //10.0.15063.447
0xA00003AD702A2LL, //10.0.15063.674
0xA00003F6803E8LL, //10.0.16232.1000
0xA00003FAB000FLL, //10.0.16299.15
};
#ifdef _WIN64
+6 -3
View File
@@ -17,9 +17,12 @@ static UINT64 RPC_CORE_RUNTIME_VERSION[] = {
0xA0000295A0132LL, //10.0.10586.306
0xA0000380603E8LL, //10.0.14342.1000
0xA000038190000LL, //10.0.14361.0
0xA000038390000LL, //10.0.14393.0
0xA000038390052LL, //10.0.14393.82
0xA00003AD70000LL //10.0.15063.138
0xA000038390000LL, //10.0.14393.0
0xA00003AD70000LL, //10.0.15063.0
0xA00003AD701BFLL, //10.0.15063.447
0xA00003AD702A2LL, //10.0.15063.674
0xA00003F6803E8LL, //10.0.16232.1000
0xA00003FAB000FLL, //10.0.16299.15
};
#define RPC_CORE_DESCRIPTION "Windows 10 64bits runtime core"
+1 -1
View File
@@ -444,7 +444,7 @@ void MainWindow_C::ConfigureSymbols()
CurrentSymbolsPath,
&bOk
);
if ( bOk && !NewSymbolsPath.isEmpty() )
if ( bOk )
{
pSettings->setValue("SymbolsPath",NewSymbolsPath);
SetEnvironmentVariableA("RpcViewSymbolPath",NewSymbolsPath.toAscii());
+16 -4
View File
@@ -1,3 +1,4 @@
#define _CRT_SECURE_NO_WARNINGS
#include "Pdb.h"
#include <conio.h>
#include <Strsafe.h>
@@ -80,8 +81,9 @@ End:
BOOL WINAPI GetPdbFilePath(HANDLE hProcess, VOID* pModuleBase, UCHAR* pPdbPath, UINT PdbPathSize)
{
CV_INFO_PDB70 Pdb70Info;
CHAR SymbolPath[MAX_PATH];
BOOL bResult = FALSE;
CHAR SymbolPath[MAX_PATH] = { 0 };
CHAR NtSymbolPath[MAX_PATH] = { 0 };
BOOL bResult = FALSE;
if (!GetModulePdbInfo(hProcess, pModuleBase, &Pdb70Info)) goto End;
/*
@@ -97,7 +99,18 @@ BOOL WINAPI GetPdbFilePath(HANDLE hProcess, VOID* pModuleBase, UCHAR* pPdbPath,
}
else
{
if (GetEnvironmentVariableA("RpcViewSymbolPath", SymbolPath, sizeof(SymbolPath)) == 0) goto End;
int iResult;
char* pStar = NULL;
if (GetEnvironmentVariableA("RpcViewSymbolPath", NtSymbolPath, sizeof(NtSymbolPath)) == 0)
{
if (GetEnvironmentVariableA("_NT_SYMBOL_PATH", NtSymbolPath, sizeof(NtSymbolPath)) == 0) goto End;
}
iResult = sscanf(NtSymbolPath, "srv*%259s", SymbolPath);
if (iResult == 0) goto End;
pStar = strchr(SymbolPath+4, '*');
if (pStar != NULL) *pStar = 0;
StringCbPrintfA((STRSAFE_LPSTR)pPdbPath, PdbPathSize, "%s\\%s\\%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X%X\\%s",
SymbolPath,
Pdb70Info.PdbFileName,
@@ -116,7 +129,6 @@ BOOL WINAPI GetPdbFilePath(HANDLE hProcess, VOID* pModuleBase, UCHAR* pPdbPath,
Pdb70Info.PdbFileName
);
}
//printf("pdb path: %s\n",pPdbPath);
bResult = TRUE;
End:
return (bResult);