Skip to content

Commit d05858d

Browse files
committed
peview: Add CFG GuardFlags text
1 parent 2758840 commit d05858d

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

tools/peview/ldprp.c

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* PE viewer
44
*
55
* Copyright (C) 2010-2011 wj32
6-
* Copyright (C) 2017 dmex
6+
* Copyright (C) 2017-2018 dmex
77
*
88
* This file is part of Process Hacker.
99
*
@@ -23,6 +23,39 @@
2323

2424
#include <peview.h>
2525

26+
PPH_STRING PvpGetPeGuardFlagsText(
27+
_In_ ULONG GuardFlags
28+
)
29+
{
30+
PH_STRING_BUILDER stringBuilder;
31+
32+
PhInitializeStringBuilder(&stringBuilder, 10);
33+
34+
if (GuardFlags & IMAGE_GUARD_CF_INSTRUMENTED)
35+
PhAppendStringBuilder2(&stringBuilder, L"Instrumented, ");
36+
if (GuardFlags & IMAGE_GUARD_CFW_INSTRUMENTED)
37+
PhAppendStringBuilder2(&stringBuilder, L"Instrumented (Write), ");
38+
if (GuardFlags & IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT)
39+
PhAppendStringBuilder2(&stringBuilder, L"Function table, ");
40+
if (GuardFlags & IMAGE_GUARD_SECURITY_COOKIE_UNUSED)
41+
PhAppendStringBuilder2(&stringBuilder, L"Unused security cookie, ");
42+
if (GuardFlags & IMAGE_GUARD_PROTECT_DELAYLOAD_IAT)
43+
PhAppendStringBuilder2(&stringBuilder, L"Delay-load IAT protected, ");
44+
if (GuardFlags & IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION)
45+
PhAppendStringBuilder2(&stringBuilder, L"Delay-load private section, ");
46+
if (GuardFlags & IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION)
47+
PhAppendStringBuilder2(&stringBuilder, L"Export supression, ");
48+
if (GuardFlags & IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT)
49+
PhAppendStringBuilder2(&stringBuilder, L"Export information supression, ");
50+
if (GuardFlags & IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT)
51+
PhAppendStringBuilder2(&stringBuilder, L"Longjump table, ");
52+
53+
if (PhEndsWithString2(stringBuilder.String, L", ", FALSE))
54+
PhRemoveEndStringBuilder(&stringBuilder, 2);
55+
56+
return PhFinalStringBuilderString(&stringBuilder);
57+
}
58+
2659
INT_PTR CALLBACK PvpPeLoadConfigDlgProc(
2760
_In_ HWND hwndDlg,
2861
_In_ UINT uMsg,
@@ -87,7 +120,7 @@ INT_PTR CALLBACK PvpPeLoadConfigDlgProc(
87120
\
88121
if (RTL_CONTAINS_FIELD((Config), (Config)->Size, GuardCFCheckFunctionPointer)) \
89122
{ \
90-
ADD_VALUE(L"CFG GuardFlags", PhaFormatString(L"0x%Ix", (Config)->GuardFlags)->Buffer); \
123+
ADD_VALUE(L"CFG GuardFlags", PhaFormatString(L"0x%Ix", PH_AUTO_T(PH_STRING, PvpGetPeGuardFlagsText((Config)->GuardFlags))->Buffer, (Config)->GuardFlags)->Buffer); \
91124
ADD_VALUE(L"CFG Check Function pointer", PhaFormatString(L"0x%Ix", (Config)->GuardCFCheckFunctionPointer)->Buffer); \
92125
ADD_VALUE(L"CFG Check Dispatch pointer", PhaFormatString(L"0x%Ix", (Config)->GuardCFDispatchFunctionPointer)->Buffer); \
93126
ADD_VALUE(L"CFG Function table", PhaFormatString(L"0x%Ix", (Config)->GuardCFFunctionTable)->Buffer); \

0 commit comments

Comments
 (0)