mirror of
https://github.com/stormshield/HiveSwarming
synced 2026-06-08 17:37:30 +00:00
Add RegSetKeyValueW as fallback to NtSetValueKey
Also: - Update copyright year - Strip PDB Path information from builds
This commit is contained in:
+4
-1
@@ -1,4 +1,7 @@
|
||||
Version 1.5 -
|
||||
Version 1.6 - 2026-02-09
|
||||
* Add fallback method when NtSetValueKey fails
|
||||
|
||||
Version 1.5 - 2025-04-14
|
||||
* Add support for .pol files
|
||||
* Extend .reg file format for readability of REG_MULTI_SZ,
|
||||
REG_EXPAND_SZ and REG_QWORD values
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
Copyright 2025 Stormshield
|
||||
Copyright 2026 Stormshield
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
+13
-1
@@ -1,4 +1,4 @@
|
||||
(C) 2025 Stormshield
|
||||
(C) 2026 Stormshield
|
||||
|
||||
HiveSwarming - Conversions between registry hive and registry export formats
|
||||
without a need for special privileges.
|
||||
@@ -74,3 +74,15 @@ A. This is a consequence of the internals of registry hives. We try to delete
|
||||
|
||||
Q. Do you accept pull requests?
|
||||
A. They are welcome and will be reviewed.
|
||||
|
||||
GET IT
|
||||
------
|
||||
|
||||
Hiveswarming is a standalone executable. You can just download it from the
|
||||
Github release pages. The executable should be digitally signed.
|
||||
|
||||
As of August 2025, Hiveswarming v1.5 has been made available on WinGet by a
|
||||
third-party user contribution (@upintheairsheep).
|
||||
You can install this specific version with:
|
||||
winget install Hiveswarming --exact --id HiveSwarming --version 1.5.0.0
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
+5
-5
@@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,5,0,0
|
||||
PRODUCTVERSION 1,5,0,0
|
||||
FILEVERSION 1,6,0,0
|
||||
PRODUCTVERSION 1,6,0,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@@ -43,12 +43,12 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Stormshield SAS"
|
||||
VALUE "FileDescription", "Conversions between Registry export format and Registry hive"
|
||||
VALUE "FileVersion", "1.5.0.0"
|
||||
VALUE "FileVersion", "1.6.0.0"
|
||||
VALUE "InternalName", "HiveSwarming.exe"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2025 Stormshield SAS"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2026 Stormshield SAS"
|
||||
VALUE "OriginalFilename", "HiveSwarming.exe"
|
||||
VALUE "ProductName", "HiveSwarming"
|
||||
VALUE "ProductVersion", "1.5.0.0"
|
||||
VALUE "ProductVersion", "1.6.0.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalOptions>/PDBALTPATH:Hiveswarming.pdb %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
||||
@@ -87,8 +88,6 @@
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||
<ClCompile>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
@@ -107,8 +107,12 @@ _Must_inspect_result_ static HRESULT InternalToHkey
|
||||
NTSTATUS Status = NtSetValueKey(KeyHandle, &ValueName, 0ul, Value.Type, (PVOID)Value.BinaryValue.data(), static_cast<ULONG>(Value.BinaryValue.size()));
|
||||
if (NT_SUCCESS(Status) == FALSE)
|
||||
{
|
||||
ReportError(Status, L"Could not set value " + Value.Name + L" of key " + RegKey.Name + L" with NtSetValueKey, trying fallback");
|
||||
goto Cleanup;
|
||||
Result = RegSetKeyValueW(KeyHandle, nullptr, Value.Name.c_str(), Value.Type, (PVOID)Value.BinaryValue.data(), static_cast<ULONG>(Value.BinaryValue.size()));
|
||||
if (FAILED(Result)) {
|
||||
ReportError(HRESULT_FROM_NT(Status), L"Could not set value " + Value.Name + L" of key " + RegKey.Name + L" with NtSetValueKey.");
|
||||
ReportError(Result, L"Could not set value " + Value.Name + L" of key " + RegKey.Name + L" with RegSetKeyValueW as fallback.");
|
||||
goto Cleanup;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Stormshield 2025
|
||||
// (C) Stormshield 2026
|
||||
// Licensed under the Apache license, version 2.0
|
||||
// See LICENSE.txt for details
|
||||
|
||||
|
||||
Reference in New Issue
Block a user