Döngülü Sanal Makine
Kontrol akışı (döngüler) olan bir sanal makine. Her komut 3 byte: [op, a, b]. pc byte cinsinden ilerler. Register’lar: r0 (indeks), r1 (durum). Opcode tablosu:
```
op=1 r0 = a
op=5 r1 = a
op=2 r1 = (r1*a + b) & 0xFF ; keystream adimi
op=3 emit( DATA[r0] ^ r1 ); r0 = (r0+1) & 0xFF
op=4 if r0 < a: pc = b else: pc += 3 ; dongu
op=0 HALT
program.hex = bytecode, data.hex` = DATA bölümü. VM’i yaz, döngüsünü işletince çıktı flag’i verir.
Challenge dosyaları
- program.hex (0.0 KB)
- data.hex (0.1 KB)
Bu challenge ne öğretiyor?
- Sanal makine challenge'ları kendi komut setini yorumlamanı ister.
- Hex (onaltılık), her baytı 0-9 ve a-f ile iki karakterde gösterir.
- Algoritma challenge'ları veriyi elle değil programla işlemeni gerektirir.
- Tersine mühendislik challenge'ları bir programın mantığını okuyup tersine çevirmeyi öğretir.