#pragma once #include #include #include namespace hex::plugin::builtin { class ViewYara : public View::Window { public: ViewYara(); ~ViewYara() override; void drawContent() override; private: struct YaraMatch { std::string identifier; std::string variable; u64 address; size_t size; bool wholeDataMatch; mutable u32 highlightId; mutable u32 tooltipId; }; private: PerProvider>> m_rules; PerProvider> m_matches; PerProvider> m_sortedMatches; u32 m_selectedRule = 0; TaskHolder m_matcherTask; std::vector m_consoleMessages; void applyRules(); void clearResult(); }; }