x32 Intro

Aperi'CTF 2019 - MISC (100 pts).

Aperi’CTF 2019: x32 Intro

Challenge details

Event Challenge Category Points Solves
Aperi’CTF 2019 x32 Intro MISC 100 14

La société ENO.corp fabrique des cartes à puce pour microcontrôleurs. Ces cartes sont programmables grâce au langage d’assemblage inventé spécialement pour l’occasion: x32 !

Votre mission est de devenir un expert afin d’analyser les microcontrôleurs qu’ils vendent et les exploiter.

Afin de vous familiariser avec ce nouveau langage, votre tâche est d’écrire un mini-programme qui récupérera 10 caractères de STDIN et les affichera sur STDOUT.

nc x32.aperictf.fr 32321

Note : Lisez la documentation de ce langage avant de commencer.
Ressource complémentaire : la documentation - md5sum: 5ac1ef34b4641b319281e65d80e84411

Methodology

The following code is self explanatory. The only difficulty was thinking to save space on the stack before writing, otherwise an out of bounds exception occurs. The server is kind enough to give details on where a problem is located and the causes, should it be during assembling, running or testing.

---- START ----
set A1, 0xa     # We will receive and send 10 bytes
sub SP, 0xa     # Reserve enough space on the stack to hold our input
in SP           # Reads A1 bytes from STDIN and stores it in the stack at SP
out SP          # Writes A1 bytes from the stack at SP, to STDOUT
---- END ----
Test 1/10 : SUCCESS
Test 2/10 : SUCCESS
Test 3/10 : SUCCESS
Test 4/10 : SUCCESS
Test 5/10 : SUCCESS
Test 6/10 : SUCCESS
Test 7/10 : SUCCESS
Test 8/10 : SUCCESS
Test 9/10 : SUCCESS
Test 10/10 : SUCCESS
Your code passed all the tests, here you go :
APRK{b4by_x32_t0_b3g1n}

Flag

APRK{b4by_x32_t0_b3g1n}

ENOENT