Hackim 2019 – Cat (misc)
This challenge provide us a file called «final» and the description is «Decrypt the file to unlock the door».
The first thing I do is make a cat command to the file, and faces of cat emoticons appear:

This sounds like an esoteric programming language. After looking in google I see this that fits perfectly:
- https://esolangs.org/wiki/Unicat
- https://github.com/gemdude46/unicat
After executing the python file to decipher what is hidden, we have this:

These instructions are from the implementation of the language itself, so I created a python to automate the decoding, based on the unicat python I already had. I deleted the first two instructions, because the first was to wait for an entry data, and the second was to exit. ((‘inputst’,1),(‘diepgrm’,))
import sys import random mem = {} ins = [('asgnlit', 1, 1),('asgnlit', 4, 1),('asgnlit', 10, 7),('echoval', 2),('pointer',4,4),('echoval',4),('applop+', 10, 1),('echoval',10),('asgnlit', 2, 72),('applop*', 2, 10),('echoval',2),('asgnlit', 0, 108), ('echovar', 0),('asgnlit', 0, 108), ('echovar', 0),('asgnlit', 0, 65), ('echovar', 0),('asgnlit', 0, 119), ('echovar', 0),('asgnlit', 0, 69), ('echovar', 0),('asgnlit', 0, 115), ('echovar', 0),('asgnlit', 0, 48), ('echovar', 0),('asgnlit', 0, 109), ('echovar', 0),('asgnlit', 0, 69), ('echovar', 0),('asgnlit', 0, 95), ('echovar', 0),('asgnlit', 0, 67), ('echovar', 0),('asgnlit', 0, 64), ('echovar', 0),('asgnlit', 0, 84), ('echovar', 0)] i = 0 while i<37: mem[-1]=mem.get(-1,-1)+1 try: it = ins[mem[-1]] except IndexError: it = ("asgnlit",-1,-1) if it[0] == "diepgrm": sys.exit() if it[0] == "pointer": mem[it[1]]=mem.get(mem.get(it[1],0),0) if it[0] == "randomb": mem[it[1]]=random.randint(True,False) if it[0] == "asgnlit": mem[it[1]]=it[2] if it[0] == "jumpif>" and mem.get(it[1],0) > 0: mem[-1]=it[2] if it[0] == "applop+": mem[it[1]]=mem.get(it[1],0)+mem.get(it[2],0) if it[0] == "applop-": mem[it[1]]=mem.get(it[1],0)-mem.get(it[2],0) if it[0] == "applop/": mem[it[1]]=mem.get(it[1],0)/mem.get(it[2],0) if it[0] == "applop*": mem[it[1]]=mem.get(it[1],0)*mem.get(it[2],0) if it[0] == "echovar": sys.stdout.write(unichr(mem.get(it[1],0))) if it[0] == "echoval": sys.stdout.write(str(mem.get(it[1],0))) if it[0] == "inputst": inp = sys.stdin.readline() for k in range(it[1],it[1]+len(inp)): mem[k]=ord(inp[k-it[1]]) mem[k+1]=0 i = i+1
If you execute the script you get the flag:

Regards!