mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
feat: kernel memory plugin + unified source menu + driver improvements
- KernelMemory plugin: kernel-mode process/physical memory R/W via IOCTL driver - rcxdrv.sys: MmCopyMemory for reads, MDL mapping with correct cache types (MmCached for RAM, MmNonCached for MMIO only — fixes cache corruption BSOD) - Driver reconnect: ensureDriverLoaded tries device handle first, no auto stop+delete cycle. Manual unload closes handle only, service stays running. - Unified source menu: ProviderRegistry::populateSourceMenu() shared by both main window Data Source menu and RcxEditor inline picker (icons + dll names) - IProviderPlugin::populatePluginMenu() for conditional plugin actions (e.g. "Unload Kernel Driver" only when loaded) - Physical memory mode removed from selectTarget (access via context menu only) - requestOpenProviderTab sets base address from provider after template load - Address parser: vtop(), cr3(), physRead() callbacks for kernel paging expressions
This commit is contained in:
@@ -7,6 +7,13 @@
|
||||
// Forward declarations
|
||||
namespace rcx { class Provider; }
|
||||
class QWidget;
|
||||
class QMenu;
|
||||
|
||||
// Lightweight struct for saved source display in menus
|
||||
struct SavedSourceDisplay {
|
||||
QString text;
|
||||
bool active = false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Global registry for data source providers
|
||||
@@ -56,7 +63,13 @@ public:
|
||||
|
||||
// Clear all providers
|
||||
void clear();
|
||||
|
||||
|
||||
// Populate a QMenu with source items (File, providers with icons/dll names,
|
||||
// plugin actions, saved sources). Used by both the main window Data Source
|
||||
// menu and the RcxEditor inline source picker.
|
||||
static void populateSourceMenu(QMenu* menu,
|
||||
const QVector<SavedSourceDisplay>& savedSources = {});
|
||||
|
||||
private:
|
||||
ProviderRegistry() = default;
|
||||
QList<ProviderInfo> m_providers;
|
||||
|
||||
Reference in New Issue
Block a user