Bytecode Peek
300 points · 0 solved
No source, just dis.dis() output (CPython 3.12) of a function that returns the flag.
1 0 RESUME 0
2 2 LOAD_CONST 1 ((120, 120, 128, 103, 126, 121, 106, 104, 116, 105, 106, 100, 110, 120, 100, 119, 106, 102, 105, 102, 103, 113, 106, 130))
4 STORE_FAST 0 (k)
3 6 LOAD_CONST 2 ('')
8 LOAD_ATTR 1 (NULL|self + join)
28 LOAD_CONST 3 (<code object <genexpr> at 0x7f3a2c1b, file "vault.py", line 3>)
30 MAKE_FUNCTION 0
32 LOAD_FAST 0 (k)
34 GET_ITER
36 CALL 0
44 CALL 1
52 RETURN_VALUE
Disassembly of <code object <genexpr> at 0x7f3a2c1b, file "vault.py", line 3>:
3 0 RETURN_GENERATOR
2 POP_TOP
4 RESUME 0
6 LOAD_FAST 0 (.0)
>> 8 FOR_ITER 18 (to 48)
12 STORE_FAST 1 (c)
14 LOAD_GLOBAL 1 (NULL + chr)
24 LOAD_FAST 1 (c)
26 LOAD_CONST 0 (5)
28 BINARY_OP 10 (-)
32 CALL 1
40 YIELD_VALUE 1
42 RESUME 1
44 POP_TOP
46 JUMP_BACKWARD 20 (to 8)
>> 48 END_FOR
50 RETURN_CONST 1 (None)
>> 52 CALL_INTRINSIC_1 3 (INTRINSIC_STOPITERATION_ERROR)
54 RERAISE 1
ExceptionTable:
4 to 50 -> 52 [0] lastiHints0/2