mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-09 17:19:26 +00:00
update changelog and fix minor issues
This commit is contained in:
parent
4bbb62d6fa
commit
aa18675760
18 changed files with 86 additions and 135 deletions
19
.github/git/git-help.md
vendored
19
.github/git/git-help.md
vendored
|
|
@ -51,6 +51,25 @@ git reset --hard
|
|||
git clean -fd
|
||||
```
|
||||
|
||||
To modify the last pushed commit:
|
||||
|
||||
```bash
|
||||
# Undo the last commit but keep the changes in your working tree
|
||||
git reset --soft HEAD~1
|
||||
|
||||
# Make your additional modifications
|
||||
# edit files...
|
||||
|
||||
# Stage everything
|
||||
git add .
|
||||
|
||||
# Create a new commit
|
||||
git commit -m "Updated commit message"
|
||||
|
||||
# Force-push to replace the remote commit
|
||||
git push --force-with-lease
|
||||
```
|
||||
|
||||
---------------
|
||||
|
||||
## Releasing instructions
|
||||
|
|
|
|||
3
.github/workflows/vs2026.yml
vendored
3
.github/workflows/vs2026.yml
vendored
|
|
@ -3,8 +3,7 @@ name: vs2026-ci
|
|||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- dev
|
||||
- '**' # matches all branch names, including ones with slashes
|
||||
tags:
|
||||
- 'v*'
|
||||
paths-ignore:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.20.0.0] - 2026-XX-XX
|
||||
## [0.20.0.0-beta] - 2026-06-21
|
||||
New release of the HyperDbg Debugger.
|
||||
|
||||
### Added
|
||||
|
|
@ -15,6 +15,9 @@ New release of the HyperDbg Debugger.
|
|||
- Added platform IOCTL interface ([link](https://github.com/HyperDbg/HyperDbg/pull/619))
|
||||
- Added typecast for wchar, mismatch on Linux and Windows ([link](https://github.com/HyperDbg/HyperDbg/commit/10576b064a9824ab655e7bea0e35e9556ee68ca4))
|
||||
- Added missing IOCTLs for Intel PT ([link](https://github.com/HyperDbg/HyperDbg/commit/df12e9fd79851c8f378ec82a45066da510da507a))
|
||||
- Added NuGet packages for Windows SDK and WDK
|
||||
- Added Signal handler platform API for Linux ([link](https://github.com/HyperDbg/HyperDbg/pull/627))
|
||||
- Added contribution guidelines for Linux ([link](https://github.com/HyperDbg/HyperDbg/tree/master/hyperdbg/linux#readme))
|
||||
|
||||
### Changed
|
||||
- Moved to Visual Studio 2026 ([link](https://github.com/HyperDbg/HyperDbg/pull/626))
|
||||
|
|
@ -22,6 +25,7 @@ New release of the HyperDbg Debugger.
|
|||
- Fix the new form of loading and unloading in the example app and PT app ([link](https://github.com/HyperDbg/HyperDbg/commit/9ad48d30dcf6b409ae86b2d08262584cd06f606e))
|
||||
- Check whether the top-level hypervisor is Hyper-V and disable/enable VPIDs based on that, thanks to [@Idov31](https://github.com/Idov31) ([link](https://github.com/HyperDbg/HyperDbg/pull/625))
|
||||
- Fix PT operation IOCTL buffer size ([link](https://github.com/HyperDbg/HyperDbg/commit/dabf132d31503843f90949f35f8dce4601d43126))
|
||||
- CI/CD updated with NuGet packages for Visual Studio 2026 ([link](https://github.com/HyperDbg/HyperDbg/commit/5a0fad490124268550f955f594d1211d5c74f03d))
|
||||
|
||||
## [0.19.0.0-beta] - 2026-06-10
|
||||
New release of the HyperDbg Debugger.
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#define VERSION_MINOR 20
|
||||
#define VERSION_PATCH 0
|
||||
|
||||
#define BETA_VERSION 0
|
||||
#define BETA_VERSION TRUE
|
||||
|
||||
//
|
||||
// Example of __DATE__ string: "Jul 27 2012"
|
||||
|
|
@ -110,7 +110,7 @@ const UCHAR BuildDateTime[] = {
|
|||
|
||||
// Complete version as a string
|
||||
|
||||
# if BETA_VERSION == 0
|
||||
# if BETA_VERSION == FALSE
|
||||
# define HYPERDBG_COMPLETE_VERSION "v" TOSTRING(VERSION_MAJOR) "." TOSTRING(VERSION_MINOR) "." TOSTRING(VERSION_PATCH) "\0"
|
||||
# else
|
||||
# define HYPERDBG_COMPLETE_VERSION "v" TOSTRING(VERSION_MAJOR) "." TOSTRING(VERSION_MINOR) "." TOSTRING(VERSION_PATCH) "-beta\0"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
* The body is compiled only where the OS headers don't already provide these
|
||||
* (i.e. not on Windows), so including this unconditionally is safe.
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-16
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
//
|
||||
// Initialize a list head to the empty (points-to-self) state.
|
||||
//
|
||||
static inline void
|
||||
static inline VOID
|
||||
InitializeListHead(PLIST_ENTRY ListHead)
|
||||
{
|
||||
ListHead->Flink = ListHead->Blink = ListHead;
|
||||
|
|
@ -103,7 +103,7 @@ RemoveTailList(PLIST_ENTRY ListHead)
|
|||
//
|
||||
// Insert an entry at the tail of the list.
|
||||
//
|
||||
static inline void
|
||||
static inline VOID
|
||||
InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
|
||||
{
|
||||
PLIST_ENTRY Blink = ListHead->Blink;
|
||||
|
|
@ -117,7 +117,7 @@ InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
|
|||
//
|
||||
// Insert an entry at the head of the list.
|
||||
//
|
||||
static inline void
|
||||
static inline VOID
|
||||
InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
|
||||
{
|
||||
PLIST_ENTRY Flink = ListHead->Flink;
|
||||
|
|
@ -131,7 +131,7 @@ InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
|
|||
//
|
||||
// Splice the entries of ListToAppend onto the tail of ListHead.
|
||||
//
|
||||
static inline void
|
||||
static inline VOID
|
||||
AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend)
|
||||
{
|
||||
PLIST_ENTRY ListEnd = ListHead->Blink;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
* the home where the ioctl()-based implementation against the /dev/HyperDbg
|
||||
* character device will live once the kernel module exists.
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-09
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @file platform-lib-calls.c
|
||||
* @author Max Raulea (max.raulea@gmail.com)
|
||||
* @author Max Raulea (max.raulea@gmail.com)
|
||||
* @brief User mode Cross platform APIs for platofrm dependend library calls
|
||||
* @details
|
||||
* @version 0.19
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
* branch is currently stubbed (returns FALSE/NULL) and is the home where the
|
||||
* termios-based implementation over /dev/tty* will live.
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-08
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
@ -26,8 +26,8 @@
|
|||
// Per-direction overlapped I/O state, owned by the transport layer.
|
||||
//
|
||||
static OVERLAPPED g_PlatformOverlappedReadDebugger = {0};
|
||||
static OVERLAPPED g_PlatformOverlappedReadDebuggee = {0};
|
||||
static OVERLAPPED g_PlatformOverlappedWriteDebugger = {0};
|
||||
static OVERLAPPED g_PlatformOverlappedReadDebuggee = {0};
|
||||
static OVERLAPPED g_PlatformOverlappedWriteDebugger = {0};
|
||||
|
||||
HANDLE
|
||||
PlatformSerialOpen(const char * PortName, PLATFORM_SERIAL_IO_ROLE Role)
|
||||
|
|
@ -88,7 +88,7 @@ PlatformSerialOpen(const char * PortName, PLATFORM_SERIAL_IO_ROLE Role)
|
|||
BOOLEAN
|
||||
PlatformSerialConfigure(HANDLE Handle, DWORD BaudRate)
|
||||
{
|
||||
DCB SerialParams = {0};
|
||||
DCB SerialParams = {0};
|
||||
SerialParams.DCBlength = sizeof(SerialParams);
|
||||
|
||||
if (GetCommState(Handle, &SerialParams) == FALSE)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* a normal thread woken by sigwait() sidesteps that entirely and mirrors the
|
||||
* Windows model where the console-control handler also runs on its own thread.
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-16
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* \\.\HyperDbgDebuggerDevice handle; Linux will map onto ioctl() against a
|
||||
* /dev/HyperDbg character device exposed by the (future) kernel module (TODO).
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-09
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
|
|||
|
|
@ -134,4 +134,4 @@ UINT32
|
|||
PlatformGetCurrentProcessId(VOID);
|
||||
|
||||
CHAR *
|
||||
PlatformGetCurrentProcessName(VOID);
|
||||
PlatformGetCurrentProcessName(VOID);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
* can stay shared. Windows maps onto Win32 (CreateFile / Comm* / overlapped
|
||||
* ReadFile/WriteFile); Linux will map onto termios over /dev/tty* (TODO).
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-08
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
* so the handler runs in ordinary thread context (matching Windows, which
|
||||
* also dispatches the handler on its own thread).
|
||||
*
|
||||
* @version 0.1
|
||||
* @version 0.20
|
||||
* @date 2026-06-16
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
/**
|
||||
* @file list.cpp
|
||||
* @author Sina Karvandi (sina@hyperdbg.org)
|
||||
* @brief The list working functions headers
|
||||
* @details
|
||||
* @version 0.1
|
||||
* @date 2020-04-11
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
*
|
||||
*/
|
||||
#include "pch.h"
|
||||
//
|
||||
///**
|
||||
// * @brief List initializer
|
||||
// *
|
||||
// * @param ListHead
|
||||
// */
|
||||
// void
|
||||
// InitializeListHead(PLIST_ENTRY ListHead)
|
||||
//{
|
||||
// ListHead->Flink = ListHead->Blink = ListHead;
|
||||
//}
|
||||
//
|
||||
///**
|
||||
// * @brief insert entry to the top of the list
|
||||
// *
|
||||
// * @param ListHead
|
||||
// * @param Entry
|
||||
// */
|
||||
// void
|
||||
// InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
|
||||
//{
|
||||
// PLIST_ENTRY Flink;
|
||||
//
|
||||
// Flink = ListHead->Flink;
|
||||
// Entry->Flink = Flink;
|
||||
// Entry->Blink = ListHead;
|
||||
// Flink->Blink = Entry;
|
||||
// ListHead->Flink = Entry;
|
||||
//}
|
||||
//
|
||||
///**
|
||||
// * @brief remove the entry from the list
|
||||
// *
|
||||
// * @param Entry
|
||||
// * @return BOOLEAN
|
||||
// */
|
||||
// BOOLEAN
|
||||
// RemoveEntryList(PLIST_ENTRY Entry)
|
||||
//{
|
||||
// PLIST_ENTRY PrevEntry;
|
||||
// PLIST_ENTRY NextEntry;
|
||||
//
|
||||
// NextEntry = Entry->Flink;
|
||||
// PrevEntry = Entry->Blink;
|
||||
// if ((NextEntry->Blink != Entry) || (PrevEntry->Flink != Entry))
|
||||
// {
|
||||
// //
|
||||
// // Error
|
||||
// //
|
||||
// _CrtDbgBreak();
|
||||
// }
|
||||
//
|
||||
// PrevEntry->Flink = NextEntry;
|
||||
// NextEntry->Blink = PrevEntry;
|
||||
// return (BOOLEAN)(PrevEntry == NextEntry);
|
||||
//}
|
||||
|
|
@ -250,7 +250,6 @@ msbuild "$(SolutionDir)dependencies\zydis\msvc\Zydis.sln" /m /p:Configuration="R
|
|||
<ClCompile Include="code\app\dllmain.cpp" />
|
||||
<ClCompile Include="code\app\libhyperdbg.cpp" />
|
||||
<ClCompile Include="code\common\common.cpp" />
|
||||
<ClCompile Include="code\common\list.cpp" />
|
||||
<ClCompile Include="code\debugger\commands\debugging-commands\bc.cpp" />
|
||||
<ClCompile Include="code\debugger\commands\debugging-commands\bd.cpp" />
|
||||
<ClCompile Include="code\debugger\commands\debugging-commands\be.cpp" />
|
||||
|
|
|
|||
|
|
@ -235,9 +235,6 @@
|
|||
<ClCompile Include="code\common\common.cpp">
|
||||
<Filter>code\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="code\common\list.cpp">
|
||||
<Filter>code\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="code\debugger\commands\debugging-commands\bc.cpp">
|
||||
<Filter>code\debugger\commands\debugging-commands</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
# Contributing to the Linux Port
|
||||
|
||||
HyperDbg is being ported from Windows to Linux. The work is incremental: most
|
||||
of the codebase compiles file-by-file as the Win32-specific calls get replaced
|
||||
with a platform-independent interface.
|
||||
|
||||
## Building
|
||||
|
||||
```bash
|
||||
cmake . # generate the Makefiles
|
||||
make # build
|
||||
```
|
||||
|
||||
Run these from the repo root (or the relevant subdirectory). `cmake .` only
|
||||
needs to be re-run when the CMake files change; otherwise `make` is enough.
|
||||
|
||||
## How to contribute
|
||||
|
||||
The port progresses one source file at a time. To pick up work:
|
||||
|
||||
1. Build and find the next file that fails to compile.
|
||||
2. Go through it and make it Linux-compatible.
|
||||
3. Where the code calls Windows-only APIs (serial, registry, signals,
|
||||
threads, etc.), don't `#ifdef` inline — route the call through the
|
||||
**platform-independent interface** so both Windows and Linux share the same
|
||||
call site with separate backing implementations.
|
||||
4. Rebuild until the file is clean, then move to the next one.
|
||||
|
||||
## The platform interface
|
||||
|
||||
User-mode abstractions live in `include/platform/user/` (`header/` for the
|
||||
interface, `code/` for the implementations). See existing examples such as
|
||||
`platform-serial`, `platform-signal`, and `platform-ioctl` for the pattern to
|
||||
follow. Kernel-mode equivalents are under `include/platform/kernel/`.
|
||||
|
||||
## Guidelines
|
||||
|
||||
- Keep platform-specific code behind the platform abstraction, not scattered
|
||||
through the logic.
|
||||
- Match the surrounding code's style and conventions.
|
||||
- Build before submitting — every changed file should compile.
|
||||
|
|
@ -6,4 +6,46 @@
|
|||
|
||||
Linux is currently **not supported**.
|
||||
|
||||
We are in the process of porting HyperDbg to Linux. This effort is ongoing and may take some time to complete.
|
||||
We are in the process of porting HyperDbg to Linux. This effort is ongoing and may take some time to complete.
|
||||
|
||||
# Contributing to the Linux Port
|
||||
|
||||
HyperDbg is being ported from Windows to Linux. The work is incremental: most
|
||||
of the codebase compiles file-by-file as the Win32-specific calls get replaced
|
||||
with a platform-independent interface.
|
||||
|
||||
## Building
|
||||
|
||||
```bash
|
||||
cmake . # generate the Makefiles
|
||||
make # build
|
||||
```
|
||||
|
||||
Run these from the repo root (or the relevant subdirectory). `cmake .` only
|
||||
needs to be re-run when the CMake files change; otherwise `make` is enough.
|
||||
|
||||
## How to contribute
|
||||
|
||||
The port progresses one source file at a time. To pick up work:
|
||||
|
||||
1. Build and find the next file that fails to compile.
|
||||
2. Go through it and make it Linux-compatible.
|
||||
3. Where the code calls Windows-only APIs (serial, registry, signals,
|
||||
threads, etc.), don't `#ifdef` inline — route the call through the
|
||||
**platform-independent interface** so both Windows and Linux share the same
|
||||
call site with separate backing implementations.
|
||||
4. Rebuild until the file is clean, then move to the next one.
|
||||
|
||||
## The platform interface
|
||||
|
||||
User-mode abstractions live in `include/platform/user/` (`header/` for the
|
||||
interface, `code/` for the implementations). See existing examples such as
|
||||
`platform-serial`, `platform-signal`, and `platform-ioctl` for the pattern to
|
||||
follow. Kernel-mode equivalents are under `include/platform/kernel/`.
|
||||
|
||||
## Guidelines
|
||||
|
||||
- Keep platform-specific code behind the platform abstraction, not scattered
|
||||
through the logic.
|
||||
- Match the surrounding code's style and conventions.
|
||||
- Build before submitting — every changed file should compile.
|
||||
Loading…
Add table
Add a link
Reference in a new issue