Offset Hex Data Description/code ============================================================ Lua header; 0000 1B 4C 75 61 - Lua header (+Lua) 0004 51 - Lua version (5.1) 0005 00 - Format version (official) 0006 01 - Endianness flag (little endian) 0007 04 - Size of Int (4 bytes) 0008 04 - Size of size_t (4 bytes) 0009 04 - Size of Instruction (4 bytes) 000A 04 - Size of lua_Number (4 bytes) 000B 01 - Integer/floating point flag (integer) Top-level function block; 000C 00 00 00 00 - Length of source name (0 = empty string, no field) 0010 00 00 00 00 - Line defined (always 0 for top-level) 0014 00 00 00 00 - Last line defined (always 0 for top-level) 0018 00 - Number of upvalues (0) 0019 00 - Number of parameters (0) 001A 02 - is_vararg flag 001B 04 - Max stack size Top-level code: 001C 0D 00 00 00 - Table size (13) 0020 24 00 00 00 - closure (function[0]) 0024 64 40 00 00 - closure (function[1]) 0028 A4 80 00 00 - closure (function[2]) 002C C0 00 80 00 - move 0030 DC 40 80 00 - call 0034 C0 00 00 01 - move 0038 DC 40 80 00 - call 003C C0 00 00 00 - move 0040 DC 40 80 00 - call 0044 43 00 00 01 - loadnil 0048 C5 00 00 00 - getglobal (collectgarbage) 004C DC 40 80 00 - call 0050 1E 00 80 00 - return Top-level constants: 0054 01 00 00 00 - Size of table (1) 0058 06 - Constant Type (6 = NodeMCU String) 0059 0F 00 00 00 005D 63 6F 6C 6C 65 63 74 67> 0065 61 72 62 61 67 65 00 - "collectgarbage\0" Top-level functions: 006C 03 00 00 00 - Functions (3) -------- END TOP LEVEL FUNCTION -------- function[0] definition: 0070 00 00 00 00 - Length of source name (0 = empty string, no field) 0074 01 00 00 00 - Line defined (1) 0078 06 00 00 00 - Last line defined (6) 007C 00 - Number of upvalues (0) 007D 00 - Number of parameters (0) 007E 00 - is_vararg flag (0, not vararg) 007F 08 - Max stack size (8) function[0] code: 0080 26 00 00 00 - Table size (38) 0084 05 00 00 00 - getglobal (crypto) 0088 06 40 40 00 - gettable (toHex) 008C 45 00 00 00 - getglobal (crypto) 0090 46 80 C0 00 - gettable (hash) 0094 81 C0 00 00 - loadk (md5) 0098 C5 00 01 00 - getglobal (string) 009C C6 40 C1 01 - gettable (format) 00A0 01 81 01 00 - loadk (RuxHHV2017%06X) 00A4 45 C1 01 00 - getglobal (node) 00A8 46 01 C2 02 - gettable (chipid) 00AC 5C 01 80 00 - call (node.chipid()) 00B0 DC 00 00 00 - call (string.format("RuxHHV2017%06X" ...)) 00B4 5C 00 00 00 - call (crypto.hash("md5"...)) 00B8 1C 80 00 00 - call (crypto.toHex(...)) 00BC 0B 40 42 00 - self (sub) 00C0 81 80 02 00 - loadk (1) 00C4 C1 C0 02 00 - loadk (16) 00C8 1C 80 00 02 - call (::sub(1,16)) 00CC 41 00 03 00 - loadk (>:5>#`\17om\20f\31hce\29a\18f\26n\20\18\29\30cbm\29c\22\24\28olio+) 00D0 85 00 00 00 - getglobal (crypto) 00D4 86 40 43 01 - gettable (encrypt) 00D8 C1 80 03 00 - loadk (AES-CBC) 00DC 00 01 00 00 - move 00E0 45 01 00 00 - getglobal (crypto) 00E4 46 C1 C3 02 - gettable (mask) 00E8 80 01 80 00 - move 00EC C1 01 04 00 - loadk (XVTY) 00F0 5C 01 80 01 - call (crypto.mask(..."XVTY")) 00F4 9C 80 00 00 - call (crypto.encrypt(AES-CBC"...)) 00F8 C5 40 04 00 - getglobal (print) 00FC 01 81 04 00 - loadk (flag: ) 0100 45 01 00 00 - getglobal (crypto) 0104 46 41 C0 02 - gettable (toHex) 0108 80 01 00 01 - move 010C 5C 81 00 01 - call (crypto.toHex(...)) 0110 15 41 01 02 - concat 0114 DC 40 00 01 - call (print("flag: "...) 0118 1E 00 80 00 - return function[0] constants: 011C 13 00 00 00 - Table size (19) 0120 06 - Constant Type (6 = NodeMCU String) 0121 07 00 00 00 - Length of Constant (7) 0125 63 72 79 70 74 6F 00 - "crypto\0" 012C 06 - Constant Type (6 = NodeMCU String) 012D 06 00 00 00 - Length of Constant (6) 0131 74 6F 48 65 78 00 - "toHex\0" 0137 06 - Constant Type (6 = NodeMCU String) 0138 05 00 00 00 - Length of Constant (5) 013C 68 61 73 68 00 - "hash\0" 0141 06 - Constant Type (6 = NodeMCU String) 0142 04 00 00 00 - Length of Constant (4) 0146 6D 64 35 00 - "md5\0" 014A 06 - Constant Type (6 = NodeMCU String) 014B 07 00 00 00 - Length of Constant (7) 014F 73 74 72 69 6E 67 00 - "string\0" 0156 06 - Constant Type (6 = NodeMCU String) 0157 07 00 00 00 - Length of Constant (7) 015B 66 6F 72 6D 61 74 00 - "format\0" 0162 06 - Constant Type (6 = NodeMCU String) 0163 0F 00 00 00 - Length of Constant (15) 0167 52 75 78 48 48 56 32 30 016F 31 37 25 30 36 58 00 - "RuxHHV2017%06X\0" 0176 06 - Constant Type (6 = NodeMCU String) 0177 05 00 00 00 - Length of Constant (5) 017B 6E 6F 64 65 00 - "node\0" 0180 06 - Constant Type (6 = NodeMCU String) 0181 07 00 00 00 - Length of Constant (7) 0185 63 68 69 70 69 64 00 - "chipid\0" 018C 06 - Constant Type (6 = NodeMCU String) 018D 04 00 00 00 - Length of Constant (3) 0191 73 75 62 00 - "sub\0" 0195 05 - Constant Type (5 = NodeMCU number) 0196 01 00 00 00 - "1" 019A 05 - Constant Type (5 = NodeMCU number) 019B 10 00 00 00 - "16" 019F 06 - Constant Type (6 = NodeMCU String) 01A0 27 00 00 00 - Length of Constant (39) 01A4 3E 3A 35 3E 23 60 11 6F 01AC 6D 14 66 1F 68 63 65 1D 01B4 61 12 66 1A 6E 14 12 1D 01BC 1E 63 62 6D 1D 63 16 18 01C4 1C 6F 6C 69 6F 2B 00 - ">:5>#`\17om\20f\31hce\29a\18f\26n\20\18\29\30cbm\29c\22\24\28olio+\0" 01CB 06 - Constant Type (6 = NodeMCU String) 01CC 08 00 00 00 - Length of Constant (8) 01D0 65 6E 63 72 79 70 74 00 - "encrypt\0" 01D8 06 - Constant Type (6 = NodeMCU String) 01D9 08 00 00 00 - Length of Constant (8) 01DD 41 45 53 2D 43 42 43 00 - "AES-CBC\0" 01E5 06 - Constant Type (6 = NodeMCU String) 01E6 05 00 00 00 - Length of Constant (5) 01EA 6D 61 73 6B 00 - "mask\0" 01EF 06 - Constant Type (6 = NodeMCU String) 01F0 05 00 00 00 - Length of Constant (5) 01F4 58 56 54 59 00 - "XVTY\0" 01F9 06 - Constant Type (6 = NodeMCU String) 01FA 06 00 00 00 - Length of Constant (6) 01FE 70 72 69 6E 74 00 - "print\0" 0204 06 - Constant Type (6 = NodeMCU String) 0205 07 00 00 00 - Length of Constant (7) 0209 66 6C 61 67 3A 20 00 - "flag: \0" function[0] functions: 0210 00 00 00 00 - Table size (0) function[0] line positions: 0214 00 00 00 00 - Table size (0) function[0] locals: 0218 00 00 00 00 - Table size (0) function[0] upvalues: 021C 00 00 00 00 - Table size (0) -------- END FUNCTION[0] -------- function[1] definition: 0220 00 00 00 00 - Length of source name (0 = empty string, no field) 0224 0B 00 00 00 - Line defined (11) 0228 10 00 00 00 - Last line defined (16) 022C 00 - Number of upvalues (0) 022D 00 - Number of parameters (0) 022E 00 - is_vararg flag (0, not vararg) 022F 06 - Max stack size (6) function[1] code: 0230 12 00 00 00 - Table size (18) 0234 05 00 00 00 - getglobal (ws2812) 0238 06 40 40 00 - gettable (init) 023C 1C 40 80 00 - call 0240 05 00 00 00 - getglobal (ws2812) 0244 06 80 40 00 - gettable (newBuffer) 0248 41 C0 00 00 - loadk (5) 024C 81 00 01 00 - loadk (3) 0250 1C 80 80 01 - call 0254 4B 40 41 00 - self (fill) 0258 C1 80 01 00 - loadk (0) 025C 01 81 01 00 - loadk (0) 0260 41 81 01 00 - loadk (0) 0264 5C 40 80 02 - call 0268 45 00 00 00 - getglobal (ws2812) 026C 46 C0 C1 00 - gettable (write) 0270 80 00 00 00 - move 0274 5C 40 00 01 - call 0278 1E 00 80 00 - return function[1] constants: 027C 08 00 00 00 - Table size (8) 0280 06 - Constant Type (6 = NodeMCU String) 0281 07 00 00 00 - Length of Constant (5) 0285 77 73 32 38 31 32 00 - "ws2812\0" 028C 06 - Constant Type (6 = NodeMCU String) 028D 05 00 00 00 - Length of Constant (5) 0291 69 6E 69 74 00 - "init\0" 0296 06 - Constant Type (6 = NodeMCU String) 0297 0A 00 00 00 - Length of Constant (5) 029B 6E 65 77 42 75 66 66 65 02A3 72 00 - "newBuffer\0" 02A5 05 - Constant Type (5 = NodeMCU Number) 02A6 05 00 00 00 - "5" 02AA 05 - Constant Type (5 = NodeMCU Number) 02AB 03 00 00 00 - "3" 02AF 06 - Constant Type (6 = NodeMCU String) 02B0 05 00 00 00 - Length of Constant (5) 02B4 66 69 6C 6C 00 - "fill\0" 02B9 05 - Constant Type (5 = NodeMCU Number) 02BA 00 00 00 00 - "0" 02BE 06 - Constant Type (6 = NodeMCU String) 02BF 06 00 00 00 - Length of Constant (5) 02C3 77 72 69 74 65 00 - "write\0" function[1] functions: 02C9 00 00 00 00 - Table size (0) function[1] line positions: 02CD 00 00 00 00 - Table size (0) function[1] locals: 02D1 00 00 00 00 - Table size (0) function[1] upvalues: 02D5 00 00 00 00 - Table size (0) -------- END FUNCTION[1] -------- 02D9 00 00 00 - Padding? Seems like it wants the headers aligned on 4b boundaries. function[2] definition: 02DC 00 00 00 00 - Length of source name (0 = empty string, no field) 02E0 14 00 00 00 - Line defined (20) 02E4 1C 00 00 00 - Last line defined (28) 02E8 00 - Number of upvalues (0) 02E9 00 - Number of parameters (0) 02EA 00 - is_vararg flag (0, not vararg) 02EB 03 - Max stack size (6) function[2] code: 02EC 1F 00 00 00 - Table size (31) 02F0 05 00 00 00 - getglobal (gpio) 02F4 06 40 40 00 - gettable (mode) 02F8 41 80 00 00 - loadk (6) 02FC 85 00 00 00 - getglobal (gpio) 0300 86 C0 40 01 - gettable (INPUT) 0304 1C 40 80 01 - call 0308 05 00 00 00 - getglobal (gpio) 030C 06 40 40 00 - gettable (mode) 0310 41 00 01 00 - loadk (7) 0314 85 00 00 00 - getglobal (gpio) 0318 86 C0 40 01 - gettable (INPUT) 031C 1C 40 80 01 - call 0320 05 00 00 00 - getglobal (gpio) 0324 06 40 40 00 - gettable (mode) 0328 41 40 01 00 - loadk (5) 032C 85 00 00 00 - getglobal (gpio) 0330 86 C0 40 01 - gettable (INPUT) 0334 1C 40 80 01 - call 0338 05 00 00 00 - getglobal (gpio) 033C 06 40 40 00 - gettable (mode) 0340 41 80 01 00 - loadk (4) 0344 85 00 00 00 - getglobal (gpio) 0348 86 C0 41 01 - gettable (OUTPUT) 034C 1C 40 80 01 - call 0350 05 00 00 00 - getglobal (gpio) 0354 06 00 42 00 - gettable (write) 0358 41 80 01 00 - loadk (4) 035C 85 00 00 00 - getglobal (gpio) 0360 86 40 42 01 - gettable (HIGH) 0364 1C 40 80 01 - call 0368 1E 00 80 00 - return function[2] constants: 036C 0A 00 00 00 - Table size (10) 0370 06 - Constant Type (6 = NodeMCU String) 0371 05 00 00 00 - Length of Constant (5) 0375 67 70 69 6F 00 - "gpio\0" 037A 06 - Constant Type (6 = NodeMCU String) 037B 05 00 00 00 - Length of Constant (5) 037F 6D 6F 64 65 00 - "mode\0" 0384 05 - Constant Type (5 = NodeMCU Number) 0385 06 00 00 00 - "6" 0389 06 - Constant Type (6 = NodeMCU String) 038A 06 00 00 00 - Length of Constant (5) 038E 49 4E 50 55 54 00 - "INPUT\0" 0394 05 - Constant Type (5 = NodeMCU Number) 0395 07 00 00 00 - "7" 0399 05 - Constant Type (5 = NodeMCU Number) 039A 05 00 00 00 - "5" 039E 05 - Constant Type (5 = NodeMCU Number) 039F 04 00 00 00 - "4" 03A3 06 - Constant Type (6 = NodeMCU String) 03A4 07 00 00 00 - Length of Constant (5) 03A8 4F 55 54 50 55 54 00 - "OUTPUT\0" 03AF 06 - Constant Type (6 = NodeMCU String) 03B0 06 00 00 00 - Length of Constant (5) 03B4 77 72 69 74 65 00 - "write\0" 03BA 06 - Constant Type (6 = NodeMCU String) 03BB 05 00 00 00 - Length of Constant (5) 03BF 48 49 47 48 00 - "HIGH\0" function[2] functions: 03C4 00 00 00 00 - Table size (0) function[2] line positions: 03C8 00 00 00 00 - Table size (0) function[2] locals: 03CC 00 00 00 00 - Table size (0) function[2] upvalues: 03D0 00 00 00 00 - Table size (0) -------- END FUNCTION[2] -------- 03D4 00 00 00 00 - More padding? 03D8 00 00 00 00 03DC 00 00 00 00