|
|||||
| Join WTFPass |
|
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped Check with strings :
import struct mem = bytearray(open('bytecode.bin', 'rb').read()) reg = [0]*8 stack = [] pc = 0
| Opcode | Mnemonic | Operands | |--------|--------------|-------------------------| | 0x01 | MOV reg, imm | reg (1 byte), imm (4 bytes) | | 0x02 | ADD reg, reg | src, dst | | 0x03 | XOR reg, reg | | | 0x10 | PUSH reg | | | 0x11 | POP reg | | | 0x20 | JMP addr | 4-byte address | | 0x21 | JZ addr | jump if reg0 == 0 | | 0xFF | HALT | | f1vm 32 bit
00000000: 01 01 00 00 00 40 mov reg1, 0x40000000 00000006: 10 01 push reg1 ... At offset 0x80 inside the bytecode, there’s a sequence:
dd if=f1vm_32bit of=bytecode.bin bs=1 skip=$((0x804B040)) count=256 Using xxd : ELF 32-bit LSB executable, Intel 80386, version 1
Dump it:
f1vm_32bit (ELF 32-bit executable) 2. Initial Analysis file f1vm_32bit Output: But there’s a section: [+] Flag is encrypted in VM memory
Run the binary:
strings f1vm_32bit | grep -i flag No direct flag. But there’s a section: [+] Flag is encrypted in VM memory.
enc = bytes.fromhex("25 73 12 45 9A 34 22 11 ...") key = 0xDEADBEEF flag = '' for i, b in enumerate(enc): shift = (i * 8) % 32 key_byte = (key >> shift) & 0xFF flag += chr(b ^ key_byte) print(flag) Output:
./f1vm_32bit Output:
| Copyright © 2026 — Grand NodeWTF Pass Tube. All rights reserved! Powered by Nubiles Tube Script |