Skip to content

Commit 11d44bd

Browse files
ch3rn0bylch3rn0byl
ch3rn0byl
authored and
ch3rn0byl
committed
Got rid of using Capstone library. Now supports 1909/20h1/20h2
1 parent c517240 commit 11d44bd

File tree

6 files changed

+358
-201
lines changed

6 files changed

+358
-201
lines changed

AngryWindows/AngryWindows.vcxproj

+12-8
Original file line numberDiff line numberDiff line change
@@ -134,26 +134,30 @@
134134
</PropertyGroup>
135135
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
136136
<Link>
137-
<AdditionalLibraryDirectories>X:\Offensive Security\AngryWindows\AngryWindows;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
138-
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;winkernel.lib</AdditionalDependencies>
137+
<AdditionalLibraryDirectories>
138+
</AdditionalLibraryDirectories>
139+
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
139140
</Link>
140141
</ItemDefinitionGroup>
141142
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
142143
<Link>
143-
<AdditionalLibraryDirectories>X:\Offensive Security\AngryWindows\AngryWindows;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
144-
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;winkernel.lib</AdditionalDependencies>
144+
<AdditionalLibraryDirectories>
145+
</AdditionalLibraryDirectories>
146+
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
145147
</Link>
146148
</ItemDefinitionGroup>
147149
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
148150
<Link>
149-
<AdditionalLibraryDirectories>X:\Offensive Security\AngryWindows\AngryWindows;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
150-
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;winkernel.lib</AdditionalDependencies>
151+
<AdditionalLibraryDirectories>
152+
</AdditionalLibraryDirectories>
153+
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
151154
</Link>
152155
</ItemDefinitionGroup>
153156
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
154157
<Link>
155-
<AdditionalLibraryDirectories>X:\Offensive Security\AngryWindows\AngryWindows;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
156-
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;winkernel.lib</AdditionalDependencies>
158+
<AdditionalLibraryDirectories>
159+
</AdditionalLibraryDirectories>
160+
<AdditionalDependencies>%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
157161
</Link>
158162
</ItemDefinitionGroup>
159163
<ItemGroup>

AngryWindows/Source.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
#include "typedefs.h"
44
#include "bluescreen.h"
55

6-
int _fltused = 0;
7-
86
PBSOD_INFORMATION g_BsodInformation = nullptr;
97

108
EXTERN_C NTSTATUS DriverEntry(PDRIVER_OBJECT, PUNICODE_STRING)

AngryWindows/bluescreen.cpp

+17-10
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,39 @@ NTSTATUS bluescreen::initialize()
2121
return STATUS_NOT_FOUND;
2222
}
2323

24-
cs_err csStatus = resolve::KeBugCheck2(KeBugCheckExAddress, &KeBugCheck2);
25-
if (csStatus != CS_ERR_OK || KeBugCheck2 == 0)
24+
NTSTATUS Status = resolve::KeBugCheck2(
25+
reinterpret_cast<UINT64>(KeBugCheckExAddress),
26+
&KeBugCheck2
27+
);
28+
if (!NT_SUCCESS(Status) || KeBugCheck2 == 0)
2629
{
2730
DbgPrint("[%ws::%d] Unable to resolve KeBugCheck2\n", __FUNCTIONW__, __LINE__);
2831
return STATUS_NOT_FOUND;
2932
}
3033

31-
csStatus = resolve::KiDisplayBlueScreen(
32-
reinterpret_cast<PVOID>(KeBugCheck2),
34+
Status = resolve::KiDisplayBlueScreen(
35+
KeBugCheck2,
3336
&KiDisplayBlueScreen
3437
);
35-
if (csStatus != CS_ERR_OK || KiDisplayBlueScreen == 0)
38+
if (!NT_SUCCESS(Status) || KiDisplayBlueScreen == 0)
3639
{
3740
DbgPrint("[%ws::%d] Unable to resolve KiDisplayBlueScreen\n", __FUNCTIONW__, __LINE__);
3841
return STATUS_NOT_FOUND;
3942
}
4043

41-
csStatus = resolve::BgpFwDisplayBugCheckScreen(
42-
reinterpret_cast<PVOID>(KiDisplayBlueScreen),
44+
Status = resolve::BgpFwDisplayBugCheckScreen(
45+
KiDisplayBlueScreen,
4346
&BgpFwDisplayBugCheckScreen
4447
);
45-
if (csStatus != CS_ERR_OK || BgpFwDisplayBugCheckScreen == 0)
48+
if (!NT_SUCCESS(Status) || BgpFwDisplayBugCheckScreen == 0)
4649
{
4750
DbgPrint("[%ws::%d] Unable to resolve BgpFwDisplayBugCheckScreen\n", __FUNCTIONW__, __LINE__);
4851
return STATUS_NOT_FOUND;
4952
}
5053

54+
DbgPrint("Located BgpFwDisplayBugCheckScreen: %p\n", BgpFwDisplayBugCheckScreen);
55+
resolve::Phrases(BgpFwDisplayBugCheckScreen);
56+
/*
5157
csStatus = resolve::HalpPCIConfigReadHandlers(
5258
reinterpret_cast<PVOID>(BgpFwDisplayBugCheckScreen),
5359
&g_BsodInformation->HalpPCIConfigReadHandlers
@@ -57,7 +63,7 @@ NTSTATUS bluescreen::initialize()
5763
DbgPrint("[%ws::%d] Unable to resolve HalpPCIConfigReadHandlers\n", __FUNCTIONW__, __LINE__);
5864
return STATUS_NOT_FOUND;
5965
}
60-
66+
*/
6167
return STATUS_SUCCESS;
6268
}
6369

@@ -72,7 +78,8 @@ NTSTATUS bluescreen::initialize()
7278
NTSTATUS bluescreen::OverwriteSadFace()
7379
{
7480
PHYSICAL_ADDRESS pa = MmGetPhysicalAddress(
75-
reinterpret_cast<PVOID>(g_BsodInformation->HalpPCIConfigReadHandlers)
81+
//reinterpret_cast<PVOID>(g_BsodInformation->HalpPCIConfigReadHandlers)
82+
reinterpret_cast<PVOID>(g_BsodInformation->Sadface)
7683
);
7784

7885
PUNICODE_STRING mappedAddress = static_cast<PUNICODE_STRING>(

0 commit comments

Comments
 (0)