From 7344df7ff6448c8f7756da9ef97b2e05afdef4ff Mon Sep 17 00:00:00 2001 From: lopqto Date: Sun, 16 Jul 2023 21:51:59 +0330 Subject: [PATCH] patterns/pyinstaller: Added PyInstaller pattern (#142) --- README.md | 1 + patterns/pyinstaller.hexpat | 78 ++++++++++++++++++ .../patterns/test_data/pyinstaller.hexpat.elf | Bin 0 -> 70384 bytes 3 files changed, 79 insertions(+) create mode 100644 patterns/pyinstaller.hexpat create mode 100755 tests/patterns/test_data/pyinstaller.hexpat.elf diff --git a/README.md b/README.md index 5f068d5..ea49e7e 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi | PNG | `image/png` | [`patterns/png.hexpat`](patterns/png.hexpat) | PNG image files | | PRODINFO | | [`patterns/prodinfo.hexpat`](patterns/prodinfo.hexpat) | Nintendo Switch PRODINFO | | Protobuf | | [`patterns/protobuf.hexpat`](patterns/protobuf.hexpat) | Google Protobuf encoding | +| PyInstaller | | [`patterns/pyinstaller.hexpat`](patterns/pyinstaller.hexpat) | PyInstaller binray files | | QBCL | | [`patterns/qbcl.hexpat`](patterns/qbcl.hexpat) | Qubicle voxel scene project file | | QOI | `image/qoi` | [`patterns/qoi.hexpat`](patterns/qoi.hexpat) | QOI image files | | Shell Link | `application/x-ms-shortcut` | [`patterns/lnk.hexpat`](patterns/lnk.hexpat) | Windows Shell Link file format | diff --git a/patterns/pyinstaller.hexpat b/patterns/pyinstaller.hexpat new file mode 100644 index 0000000..53bfb9a --- /dev/null +++ b/patterns/pyinstaller.hexpat @@ -0,0 +1,78 @@ +#pragma endian big + +#include + +// Reference: +// https://pyinstaller.org/en/stable/advanced-topics.html + +// typedef struct _cookie { +// char magic[8]; /* 'MEI\014\013\012\013\016' */ +// uint32_t len; /* len of entire package */ +// uint32_t TOC; /* pos (rel to start) of TableOfContents */ +// int TOClen; /* length of TableOfContents */ +// int pyvers; /* new in v4 */ +// char pylibname[64]; /* Filename of Python dynamic library. */ +// } COOKIE; + +u8 cookieStructLength = 88; + +struct Cookie { + char signature[8]; + u32 len; + u32 TOC[[comment("Table of Content")]]; + s32 TOClen; + s32 pyVers; + char pyLibName[64]; +}; + +u32 cookieOffset = std::mem::find_sequence(0, 'M', 'E', 'I', 0x0C, 0x0B, 0x0A, 0x0B, 0x0E); +Cookie cookie @ cookieOffset; + +u32 startOffset = cookieOffset + cookieStructLength - cookie.len; +u32 tocOffset = startOffset + cookie.TOC; + +struct ZlibArchive { + char pyzMagic[4]; + char pyMagic[4]; + u32 pyzTOCPos[[comment("Table of Content of the embedded PYZ")]]; +}; + +// typedef struct _toc { +// int structlen; /* len of this one - including full len of name */ +// uint32_t pos; /* pos rel to start of concatenation */ +// uint32_t len; /* len of the data (compressed) */ +// uint32_t ulen; /* len of data (uncompressed) */ +// char cflag; /* is it compressed (really a byte) */ +// char typcd; /* type code -'b' binary, 'z' zlib, 'm' module, +// * 's' script (v3),'x' data, 'o' runtime option */ +// char name[1]; /* the name to save it as */ +// /* starting in v5, we stretch this out to a mult of 16 */ +// } TOC; + +u32 tocStructLength = 18; + +enum TypeCode : u8 { + Binary = 98, + Zlib = 122, + Module = 109, + Script = 115, + Data = 120, + RuntimeOption = 111, +}; + +struct TOC { + s32 structLen; + u32 pos; + u32 len[[comment("len of the data (compressed)")]];; + u32 uLen[[comment("len of data (uncompressed)")]];; + bool cFlag[[comment("is it compressed")]];; + TypeCode typcd; + char name[this.structLen - tocStructLength]; + + if(typcd == TypeCode::Zlib) { + ZlibArchive zlibArchive @ startOffset + this.pos; + } +}; + + +TOC toc[while( $ < cookie.TOClen + tocOffset)] @ tocOffset; \ No newline at end of file diff --git a/tests/patterns/test_data/pyinstaller.hexpat.elf b/tests/patterns/test_data/pyinstaller.hexpat.elf new file mode 100755 index 0000000000000000000000000000000000000000..522641ac3af6ad5e24d02e6d4575f698694361ea GIT binary patch literal 70384 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�|79MsIR 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 E2d?PaxBvhE literal 0 HcmV?d00001