Skip to content

Commit

Permalink
Merge pull request #450 from processhacker/master
Browse files Browse the repository at this point in the history
[pull] master from processhacker:master
  • Loading branch information
pull[bot] authored Apr 14, 2022
2 parents 3874b61 + 3cd4b4a commit c6df01c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 25 deletions.
30 changes: 24 additions & 6 deletions KProcessHacker/KProcessHacker.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -146,14 +146,18 @@
<LanguageStandard>stdcpplatest</LanguageStandard>
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/kernel %(AdditionalOptions)</AdditionalOptions>
<CallingConvention>StdCall</CallingConvention>
<StringPooling>true</StringPooling>
<SupportJustMyCode>false</SupportJustMyCode>
<ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>ksecdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<AdditionalOptions>/INTEGRITYCHECK /BREPRO /DEPENDENTLOADFLAG:0x800 /PDBALTPATH:%_PDB% %(AdditionalOptions)</AdditionalOptions>
</Link>
<DriverSign>
<FileDigestAlgorithm>certhash</FileDigestAlgorithm>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand All @@ -166,6 +170,9 @@
<LanguageStandard>stdcpplatest</LanguageStandard>
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/kernel %(AdditionalOptions)</AdditionalOptions>
<CallingConvention>StdCall</CallingConvention>
<StringPooling>true</StringPooling>
<ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>ksecdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
Expand All @@ -174,7 +181,7 @@
<CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>certhash</FileDigestAlgorithm>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand All @@ -187,14 +194,18 @@
<LanguageStandard>stdcpplatest</LanguageStandard>
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/kernel %(AdditionalOptions)</AdditionalOptions>
<CallingConvention>StdCall</CallingConvention>
<StringPooling>true</StringPooling>
<SupportJustMyCode>false</SupportJustMyCode>
<ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>ksecdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<AdditionalOptions>/INTEGRITYCHECK /BREPRO /DEPENDENTLOADFLAG:0x800 /PDBALTPATH:%_PDB% %(AdditionalOptions)</AdditionalOptions>
</Link>
<DriverSign>
<FileDigestAlgorithm>certhash</FileDigestAlgorithm>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
Expand All @@ -209,14 +220,16 @@
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/kernel %(AdditionalOptions)</AdditionalOptions>
<CallingConvention>StdCall</CallingConvention>
<StringPooling>true</StringPooling>
<ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>ksecdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<AdditionalOptions>/INTEGRITYCHECK /BREPRO /DEPENDENTLOADFLAG:0x800 /PDBALTPATH:%_PDB% %(AdditionalOptions)</AdditionalOptions>
</Link>
<DriverSign>
<FileDigestAlgorithm>certhash</FileDigestAlgorithm>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -230,6 +243,9 @@
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/kernel %(AdditionalOptions)</AdditionalOptions>
<GuardEHContMetadata>true</GuardEHContMetadata>
<CallingConvention>StdCall</CallingConvention>
<StringPooling>true</StringPooling>
<ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>ksecdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
Expand All @@ -238,7 +254,7 @@
<CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>certhash</FileDigestAlgorithm>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
Expand All @@ -252,14 +268,16 @@
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/kernel %(AdditionalOptions)</AdditionalOptions>
<CallingConvention>StdCall</CallingConvention>
<StringPooling>true</StringPooling>
<ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>ksecdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<AdditionalOptions>/INTEGRITYCHECK /BREPRO /DEPENDENTLOADFLAG:0x800 /PDBALTPATH:%_PDB% %(AdditionalOptions)</AdditionalOptions>
</Link>
<DriverSign>
<FileDigestAlgorithm>certhash</FileDigestAlgorithm>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions KProcessHacker/resource.rc
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
#define VER_PRERELEASE 0

#define VER_COMPANYNAME_STR "ProcessHacker\0"
#define VER_FILEDESCRIPTION_STR "KProcessHacker\0"
#define VER_FILEDESCRIPTION_STR "ProcessHacker\0"
#define VER_LEGALCOPYRIGHT_STR "Licensed under the GNU GPL, v3.\0"
#define VER_ORIGINALFILENAME_STR "kprocesshacker.sys\0"
#define VER_PRODUCTNAME_STR "KProcessHacker\0"
#define VER_ORIGINALFILENAME_STR "ProcessHacker.sys\0"
#define VER_PRODUCTNAME_STR "ProcessHacker\0"

VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
Expand Down
33 changes: 17 additions & 16 deletions KProcessHacker/thread.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,21 +237,6 @@ NTSTATUS KpiOpenThreadProcess(
}
}

status = ObReferenceObjectByHandle(
ThreadHandle,
0,
*PsThreadType,
AccessMode,
&thread,
NULL
);

if (!NT_SUCCESS(status))
{
thread = NULL;
goto CleanupExit;
}

requiredKeyLevel = KphKeyLevel1;

if ((DesiredAccess & KPH_PROCESS_READ_ACCESS) != DesiredAccess)
Expand Down Expand Up @@ -283,13 +268,29 @@ NTSTATUS KpiOpenThreadProcess(
if (!NT_SUCCESS(status))
goto CleanupExit;

status = ObReferenceObjectByHandle(
ThreadHandle,
0,
*PsThreadType,
AccessMode,
&thread,
NULL
);

if (!NT_SUCCESS(status))
{
thread = NULL;
goto CleanupExit;
}

// Note: Windows 7 and Windows 8 require KernelMode (dmex)
status = ObOpenObjectByPointer(
PsGetThreadProcess(thread),
0,
NULL,
DesiredAccess,
*PsProcessType,
AccessMode,
KernelMode,
&processHandle
);

Expand Down

0 comments on commit c6df01c

Please sign in to comment.