From eaeea8d09378b64ed66fa06cfd2861bcf3560936 Mon Sep 17 00:00:00 2001 From: ogmini <112595633+ogmini@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:53:40 -0400 Subject: [PATCH] patterns: Added pattern for Windows 11 Notepad Window State bin file (#228) * Add files via upload * Update README.md * Update README.md * Add files via upload * Update Notepad-WindowState.hexpat * Update and rename Notepad-WindowState.hexpat to notepadwindowstate.hexpat * Rename Notepad-WindowState.hexpat.bin to notepad-windowstate.hexpat.bin * Update README.md --- README.md | 1 + patterns/notepadwindowstate.hexpat | 50 ++++++++++++++++++ .../test_data/notepad-windowstate.hexpat.bin | Bin 0 -> 2696 bytes 3 files changed, 51 insertions(+) create mode 100644 patterns/notepadwindowstate.hexpat create mode 100644 tests/patterns/test_data/notepad-windowstate.hexpat.bin diff --git a/README.md b/README.md index aa4ce90..5feb680 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi | NBT | | [`patterns/nbt.hexpat`](patterns/nbt.hexpat) | Minecraft NBT format | | NE | | [`patterns/ne.hexpat`](patterns/ne.hexpat) | NE header and Standard NE fields | | nes | | [`patterns/nes.hexpat`](patterns/nes.hexpat) | .nes file format | +| NotepadWindowState | | [`patterns/notepad-windowstate.hexpat`](patterns/notepad-windowstate.hexpat) | Windows 11 Notepad - Window State .bin file | | NRO | | [`patterns/nro.hexpat`](patterns/nro.hexpat) | Nintendo Switch NRO files | | NTAG | | [`patterns/ntag.hexpat`](patterns/ntag.hexpat) | NTAG213/NTAG215/NTAG216, NFC Forum Type 2 Tag compliant IC | | OGG | `audio/ogg` | [`patterns/ogg.hexpat`](patterns/ogg.hexpat) | OGG Audio format | diff --git a/patterns/notepadwindowstate.hexpat b/patterns/notepadwindowstate.hexpat new file mode 100644 index 0000000..14ec9d1 --- /dev/null +++ b/patterns/notepadwindowstate.hexpat @@ -0,0 +1,50 @@ +#pragma author ogmini https://github.com/ogmini +#pragma description Windows 11 Notepad Window State file %localappdata%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\WindowState + +#include +#include +#include +#include + +using ul = type::uLEB128; +using int = u32; + +struct Tab +{ + u128 GUID; +}; + +struct WindowState +{ + char HeaderIdentifier[2]; // NP + ul SequenceNumber; + ul BytesToCRC32; + u8 Delim[1]; + ul NumberTabs; + + Tab Tabs[NumberTabs]; + + ul ActiveTab; + + int CoordTopLeftX; + int CoordTopLeftY; + + int CoordBottomRightX; + int CoordBottomRightY; + + int WindowSizeWidth; + int WindowSizeHeight; + + u8 Delim2[1]; + + int CRC32; + + u8 SlackSpace[while(!std::mem::eof())]; +}; + + + + +// -- Declaration -- + +WindowState state @ 0x0; diff --git a/tests/patterns/test_data/notepad-windowstate.hexpat.bin b/tests/patterns/test_data/notepad-windowstate.hexpat.bin new file mode 100644 index 0000000000000000000000000000000000000000..d2b12a52a4fad3a77651a40ef67f644a1894fdb4 GIT binary patch literal 2696 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 CE+b0- literal 0 HcmV?d00001