Shattered Tablet
Personal Rating: Medium
This was a reversing and deobfuscation challenge. I could find this code with ghidra:
(((((((((local_30._7_1_ == 'p') && (local_48._1_1_ == 'T')) && (local_48._7_1_ == 'k')) &&
((local_28._4_1_ == 'd' && (local_40._3_1_ == '4')))) &&
((local_38._4_1_ == 'e' && ((local_40._2_1_ == '_' && ((char)local_48 == 'H')))))) &&
(local_28._2_1_ == 'r')) &&
((((local_28._3_1_ == '3' && (local_30._1_1_ == '_')) && (local_48._2_1_ == 'B')) &&
(((local_30._5_1_ == 'r' && (local_48._3_1_ == '{')) &&
((local_30._2_1_ == 'b' && ((local_48._5_1_ == 'r' && (local_40._5_1_ == '4')))))))))) &&
(((local_30._6_1_ == '3' &&
(((local_38._3_1_ == 'v' && (local_40._4_1_ == 'p')) && (local_28._1_1_ == '1')))) &&
(((local_30._3_1_ == '3' && (local_38._1_1_ == 'n')) &&
(((local_48._4_1_ == 'b' && (((char)local_28 == '4' && (local_40._1_1_ == 'n')))) &&
((char)local_38 == ',')))))))) &&
((((((((char)local_40 == '3' && (local_48._6_1_ == '0')) && (local_38._7_1_ == 't')) &&
((local_40._7_1_ == 't' && ((char)local_30 == '0')))) &&
((local_40._6_1_ == 'r' && ((local_28._5_1_ == '}' && (local_38._5_1_ == 'r')))))) &&
(local_38._6_1_ == '_')) && ((local_38._2_1_ == '3' && (local_30._4_1_ == '_'))))))
Those are my notes for the deobfuscation process:
4871==k
4861==0
4851==r
4841==b
4831=={
4821==B
4811==T
48==H
4071==t
4061==r
4051==4
4041==p
4031==4
4021==_
4011==n
40==3
3871==t
3861==_
3851==r
3841==e
3831==v
3821==3
3811==n
38==,
3071==p
3061==3
3051==r
3041==_
3031==3
3021==b
3011==_
30==0
2851==}
2841==d
2831==3
2821==r
2811==1
28==4
I then wrote this sorting script to get the flag:
from array import *
from itertools import groupby
f = open("notes", "r")
input = f.read()
array = input.split("&&")
unsorted = []
array1 = [[]]
letters = []
numbers = []
for i in array:
i = i.replace('(', '')
i = i.replace(')', '')
i = i.replace(' ', '')
i = i.replace('_', '')
i = i.replace('char', '')
i = i.replace('.', '')
i = i.replace('\n', '')
i = i.replace('local', '')
i = i.replace("'", '')
unsorted.append(i)
unsorted.sort()
#print(list(g) for k, g in groupby(unsorted, key=lambda x: x[0]))
for i in unsorted:
print(i)
HTB{br0k3n_4p4rt,n3ver_t0_b3_r3p41r3d}
Last updated