Я пытаюсь научиться через CTF (захватывать флаг) назначения, для записи это не активный ctf, но я использую его для того, чтобы узнать, что я могу, прежде чем перейти к реальному
в этой конкретной задаче мне нужно получить флаг из кода сборки, который я получил из bin-файла для настраиваемой виртуальной машины на основе стека
Но независимо от того, что я пытаюсь ввести или откуда пытаюсь запуститьот, я не могу получить ничего, что выглядит как флаг
Я чувствую, что я действительно хорошо понял, как все работает, и все еще сидел на этом некоторое время и действительно не нашел ничего подобногоэто задание, чтобы попытаться увидеть, что мне не хватает, поэтому подумал, что, возможно, кто-то сможет помочь мне увидеть то, что я пропустил, или сказать мне, что я должен изучить и где, чтобы понять, что здесь происходит
этодля кодов операций и описания, если вам не нужно описание, просто прокрутите вниз до кодов операций: https://pastebin.com/hgKKkDzC
И это сборка соде:
0x00: push 0x15
0x01: push 0x68
0x02: push 0x0f
0x03: push 0x61
0x04: push 0x08
0x05: push 0x64
0x06: push 0x08
0x07: push 0x67
0x08: push 0x35
0x09: push 0x52
0x0a: push 0x3c
0x0b: push 0x55
0x0c: push 0x39
0x0d: push 0x55
0x0e: push 0x3a
0x0f: push 0x68
0x10: push 0x0f
0x11: push 0x61
0x12: push 0x08
0x13: push 0x64
0x14: push 0x08
0x15: push 0x67
0x16: push 0x35
0x17: push 0x52
0x18: push 0x3c
0x19: push 0x55
0x1a: push 0x39
0x1b: push 0x55
0x1c: push 0x3a
0x1d: push 0x68
0x1e: push 0x3a
0x1f: push 0x55
0x20: push 0x0d
0x21: push 0x76
0x22: push 0x11
0x23: push 0x70
0x24: push 0x1c
0x25: push 0x7a
0x26: push 0x0b
0x27: jse
0x28: read
0x29: push 0x0c
0x2a: call
0x2b: load 0x01
0x2c: push 0x0a
0x2d: push 0x00
0x2e: sub
0x2f: cje
0x30: push 0x30
0x31: push 0x01
0x32: jmp
0x33: push 0x31
0x34: write
0x35: push 0x2f
0x36: jmp
0x37: load 0x02
0x38: load 0x02
0x39: push 0x00
0x3a: push 0x25
0x3b: cje
0x3c: load 0x02
0x3d: swap 0x01
0x3e: push 0x00
0x3f: push 0x20
0x40: cje
0x41: push 0x00
0x42: swap 0x01
0x43: load 0x04
0x44: push 0x1b
0x45: cje
0x46: pop
0x47: push 0x02
0x48: load 0x02
0x49: div
0x4a: push 0x02
0x4b: load 0x05
0x4c: div
0x4d: swap 0x01
0x4e: swap 0x02
0x4f: add
0x50: push 0x02
0x51: swap 0x01
0x52: div
0x53: swap 0x01
0x54: pop
0x55: load 0x02
0x56: load 0x02
0x57: push 0x24
0x58: push 0x00
0x59: sub
0x5a: call
0x5b: push 0x02
0x5c: mul
0x5d: add
0x5e: swap 0x02
0x5f: pop
0x60: pop
0x61: swap 0x03
0x62: pop
0x63: swap 0x01
0x64: pop
0x65: ret