diff --git a/VERSION.txt b/VERSION.txt index 8fdcf38..77fee73 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.9.2 +1.9.3 diff --git a/include/entropy/hexdisplay/executable_finder.h b/include/entropy/hexdisplay/executable_finder.h new file mode 100644 index 0000000..43aff9e --- /dev/null +++ b/include/entropy/hexdisplay/executable_finder.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include + +#include + +namespace entropy { + +class ExecutableDisplayFeature : public HexDisplayFeature { + public: + ExecutableDisplayFeature() { color = IM_COL32(255, 255, 0, 255); } + std::string getName() const override { return "Executable Finder"; } + std::string getSlug() const override { return "executable"; } + std::string getVersion() const override { return "1.0"; } + std::string getAuthor() const override { return "Entropy Visualizer Team"; } + int getPriority() const override { return 1; } + + std::vector getHighlights(const std::vector §orData, size_t sectorIndex) const override { + std::vector highlights; + // Scan for "MZ" at the start of the sector (0-1) + if (sectorData.size() >= 2 && sectorData[0] == 'M' && sectorData[1] == 'Z') { + highlights.push_back({0, this->color}); + highlights.push_back({1, this->color}); + } + + // Scan for "ELF" at the start of the sector (0-3) + if (sectorData.size() >= 4 && sectorData[0] == 0x7F && sectorData[1] == 'E' && sectorData[2] == 'L' && sectorData[3] == 'F') { + highlights.push_back({0, this->color}); + highlights.push_back({1, this->color}); + highlights.push_back({2, this->color}); + highlights.push_back({3, this->color}); + } + + return highlights; + } +}; + +} // namespace entropy diff --git a/include/entropy/version.h b/include/entropy/version.h index 0dda571..c35a1a4 100644 --- a/include/entropy/version.h +++ b/include/entropy/version.h @@ -2,7 +2,7 @@ namespace entropy { -#define EV_VERSION "1.9.2" +#define EV_VERSION "1.9.3" #define EV_DATE "09.03.2026" } // namespace entropy \ No newline at end of file diff --git a/src/hex_display_feature_manager.cpp b/src/hex_display_feature_manager.cpp index 5c1a509..f604a11 100644 --- a/src/hex_display_feature_manager.cpp +++ b/src/hex_display_feature_manager.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -19,6 +20,7 @@ void HexDisplayFeatureManager::loadFeatures() { features.push_back(new ZeroBytesFeature()); features.push_back(new AA55FinderFeature()); features.push_back(new AEWFDetector()); + features.push_back(new ExecutableDisplayFeature()); } } // namespace entropy \ No newline at end of file