mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-28 15:57:03 -05:00
feat: Added cross-platform .NET scripts support (#1185)
This PR intends to add support for .NET scripts that can extend ImHex's functionality in a portable and cross-platform way. --------- Co-authored-by: Justus Garbe <55301990+Nowilltolife@users.noreply.github.com>
This commit is contained in:
44
plugins/script_loader/source/script_api/v1/mem.cpp
Normal file
44
plugins/script_loader/source/script_api/v1/mem.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <script_api.hpp>
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/providers/provider.hpp>
|
||||
|
||||
#define VERSION V1
|
||||
|
||||
SCRIPT_API(void readMemory, u64 address, size_t size, void *buffer) {
|
||||
auto provider = hex::ImHexApi::Provider::get();
|
||||
|
||||
if (provider == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
provider->read(address, buffer, size);
|
||||
}
|
||||
|
||||
SCRIPT_API(void writeMemory, u64 address, size_t size, void *buffer) {
|
||||
auto provider = hex::ImHexApi::Provider::get();
|
||||
|
||||
if (provider == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
provider->write(address, buffer, size);
|
||||
}
|
||||
|
||||
SCRIPT_API(bool getSelection, u64 *start, u64 *end) {
|
||||
if (start == nullptr || end == nullptr)
|
||||
return false;
|
||||
|
||||
if (!hex::ImHexApi::Provider::isValid())
|
||||
return false;
|
||||
|
||||
if (!hex::ImHexApi::HexEditor::isSelectionValid())
|
||||
return false;
|
||||
|
||||
auto selection = hex::ImHexApi::HexEditor::getSelection();
|
||||
|
||||
*start = selection->getStartAddress();
|
||||
*end = selection->getEndAddress();
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user