0pepsi/Jinzear

GitHub: 0pepsi/Jinzear

针对 MiWiFi 固件中 Fate/Z 混淆的 Lua 5.1 字节码进行格式还原的反混淆工具。

Stars: 0 | Forks: 0

## 适用于 MiWiFi 固件的 Fate/Z Lua 字节码反混淆器。 - 将 Fate/Z 混淆的 Lua 5.1 字节码转换回标准的 Lua 5.1 字节码,以便由 unluac、luadec 或 luac -l 处理。 ## Fate/Z 格式与标准 Lua 5.1 的差异: ``` - Magic: \x1bFate/Z\x1b (8 bytes) instead of \x1bLua (4 bytes) - Header: 16 bytes total (8 magic + version + format + endian + sizeof fields +extra byte) - No LUAC_NUM test number after header - String type tag: 0x07 instead of 0x04 - Boolean type tag: 0x04 instead of 0x01 - Number type tag (double): 0x06 instead of 0x03 - Nil type tag: 0x03 (alternate nil, no payload) in addition to 0x00 - Integer type tag: 0x0c (extension, 4-byte LE int32) - String constants XOR-encrypted (key = last byte of encrypted string) - Source name and debug info name strings: only the size field is stored, no data bytes follow (names are stripped from the bytecode) - Function header field order differs from standard Lua 5.1: Standard: source, linedefined, lastlinedefined, nups, numparams, is_vararg maxstacksize Fate/Z: nups, source, numparams, linedefined, is_vararg, lastlinedefined, maxstacksize (interleaves DumpChar and DumpInt calls differently) - Opcodes are permuted (42-slot table mapped to standard 38 opcodes) - LEN opcode uses C field (non-standard; cleared during conversion) - LOADNIL uses standard encoding (A=start, B=end, B >= A) - Three comparison opcodes (EQ, LT, LE) have duplicate encodings - nups field in function headers is zeroed (obfuscation) ``` 作者:0xmadvise
标签:DAST, Deobfuscator, Fate/Z, IoT 安全, Lua 5.1, Lua 反混淆, MiWiFi 固件, Opcode 还原, rizin, XOR 解密, 二进制分析, 云安全运维, 云资产清单, 固件解密, 字节码还原, 小米路由器, 嵌入式安全, 弱口令检测, 恶意软件分析, 混淆解除, 路由器安全, 逆向工具, 逆向工程