This commit is contained in:
DavidXanatos 2021-06-15 17:51:55 +02:00
parent cacd8625c1
commit 7cbec731f4
7 changed files with 37 additions and 31 deletions

View File

@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [0.8.2 / 5.50.2] - 2021-06-15
### Fixed
- properly fixed an issue with driver verifyer and user handles
- fixed an issue with CreateWindow introduced with 0.8.0
## [0.8.1 / 5.50.1] - 2021-06-14
### Fixed
@ -832,3 +840,4 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Fixed
- fixed "Windows Installer Service could not be accessed" that got introduced with Windows 1903

View File

@ -21,8 +21,8 @@
#ifndef _MY_VERSION_H
#define _MY_VERSION_H
#define MY_VERSION_BINARY 5,50,1
#define MY_VERSION_STRING "5.50.1"
#define MY_VERSION_BINARY 5,50,2
#define MY_VERSION_STRING "5.50.2"
#define MY_VERSION_COMPAT "5.50.0" // this refers to the driver ABI compatibility
// These #defines are used by either Resource Compiler, or by NSIC installer

View File

@ -254,7 +254,7 @@ _FX ULONG File_IsNamedPipe(const WCHAR *path, const WCHAR **server)
// check if this is an Internet device matching a ClosedFilePath
//
if (len >= 10 && _wcsnicmp(path, File_Mup, 8) == 0) {
if (len >= 10 && _wcsnicmp(path, File_Mup, 8) == 0) { // match \device\ only
BOOLEAN prompt = SbieApi_QueryConfBool(NULL, L"PromptForInternetAccess", FALSE);
if (SbieApi_CheckInternetAccess(NULL, path + 8, !prompt) == STATUS_ACCESS_DENIED

View File

@ -1310,7 +1310,7 @@ _FX HWND Gui_CreateWindowExW(
// replace window procedure
//
if (hwndResult && !Gui_RenameClasses) {
if (hwndResult && Gui_RenameClasses) {
Gui_SetWindowProc(hwndResult, FALSE);
@ -1418,7 +1418,7 @@ _FX HWND Gui_CreateWindowExA(
// replace window procedure
//
if (hwndResult && !Gui_RenameClasses) {
if (hwndResult && Gui_RenameClasses) {
Gui_SetWindowProc(hwndResult, FALSE);
@ -2621,4 +2621,4 @@ _FX BOOLEAN ComDlg32_Init(HMODULE hModule)
//}
return TRUE;
}
}

View File

@ -1163,35 +1163,32 @@ _FX NTSTATUS Ipc_Api_DuplicateObject(PROCESS *proc, ULONG64 *parms)
// wont be able to grab it while we are evaluaiting it
//
HANDLE SourceKernelHandle;
status = Thread_GetKernelHandleForUserHandle(&SourceKernelHandle, SourceHandle);
HANDLE SourceProcessKernelHandle;
status = Thread_GetKernelHandleForUserHandle(&SourceProcessKernelHandle, SourceProcessHandle);
if (NT_SUCCESS(status)) {
HANDLE SourceProcessKernelHandle;
status = Thread_GetKernelHandleForUserHandle(&SourceProcessKernelHandle, SourceProcessHandle);
HANDLE TargetProcessKernelHandle = ZwCurrentProcess(); // TargetProcessHandle == NtCurrentProcess();
//
// driver verifier wants us to provide a kernel handle as process handles
// but the source handle must be a user handle and the ZwDuplicateObject
// function creates an otehr user handle hence NtClose
//
status = ZwDuplicateObject(
SourceProcessKernelHandle, SourceHandle,
TargetProcessKernelHandle, &TestHandle,
DesiredAccess, HandleAttributes,
Options & ~DUPLICATE_CLOSE_SOURCE);
if (NT_SUCCESS(status)) {
HANDLE TargetProcessKernelHandle = ZwCurrentProcess();
//status = Thread_GetKernelHandleForUserHandle(&TargetProcessKernelHandle, TargetProcessHandle);
//if (NT_SUCCESS(status)) {
status = Ipc_CheckObjectName(TestHandle, UserMode);
status = ZwDuplicateObject(
SourceProcessKernelHandle, SourceKernelHandle,
TargetProcessKernelHandle, &TestHandle,
DesiredAccess, HandleAttributes,
Options & ~DUPLICATE_CLOSE_SOURCE);
if (NT_SUCCESS(status)) {
status = Ipc_CheckObjectName(TestHandle, UserMode);
ZwClose(TestHandle);
}
// ZwClose(TargetProcessKernelHandle);
//}
ZwClose(SourceProcessKernelHandle);
NtClose(TestHandle);
}
ZwClose(SourceKernelHandle);
ZwClose(SourceProcessKernelHandle);
}
} else

View File

@ -71,7 +71,7 @@ CTraceView::CTraceView(QWidget* parent) : CPanelWidget<QTreeViewEx>(parent)
connect(m_pTraceTid, SIGNAL(currentIndexChanged(int)), this, SLOT(OnSetTidFilter()));
m_pTraceToolBar->addWidget(m_pTraceTid);
m_pOnlyCurrent = new QCheckBox(tr("Show only sellectes box"));
m_pOnlyCurrent = new QCheckBox(tr("Filter selected box only"));
m_pTraceToolBar->addWidget(m_pOnlyCurrent);
m_pMainLayout->setSpacing(0);

View File

@ -2,7 +2,7 @@
#define VERSION_MJR 0
#define VERSION_MIN 8
#define VERSION_REV 1
#define VERSION_REV 2
#define VERSION_UPD 0
#ifndef STR