diff --git a/includes/std/mem.pat b/includes/std/mem.pat index 58dae8c..6f2f9b1 100644 --- a/includes/std/mem.pat +++ b/includes/std/mem.pat @@ -47,4 +47,26 @@ namespace std::mem { return builtin::std::mem::read_string(address, size); }; + + struct MagicSearch { + if ($ < (std::mem::size() - std::string::length(Magic) - 1)) { + char __potentialMagic__[std::string::length(Magic)] [[hidden, no_unique_address]]; + + if (__potentialMagic__ == Magic) { + T data [[inline]]; + } else { + padding[1]; + continue; + } + } else { + padding[1]; + continue; + } + }; + + union Reinterpreter { + From from; + To to; + }; + }