ARX
리버싱을 너무 안햇던 관계로 문제를 조금씩 풀어보려 함 ㅠㅠ
안한 이유: 뇌를 쓰기가싫음
아웃라인
key는 12바이트고 SuP3RSaFeK3Y
암호화 로직
key = (0x53, 0x75, 0x50, 0x33, 0x52, 0x53, 0x61, 0x46, 0x65, 0x4b, 0x33, 0x59)
n1 = flag[0]
n2 = flag[1]
for i in range(3):
x = key[2*i]
y = (n2 + ((n1 << 7) | (n1 >> 9)))
tmp = x ^ y
a = key[2 * i + 1]
b = ((n2 << 7) | (n2 >> 9))
tmp2 = a ^ b
n2 = tmp
result[0] = n1
result[1] = n2
대충 이렇게 2바이트씩... 두개씩 잘라들어가는 형태를 상상하면
그대로 역연산 하면 된다. 0xffff
를 이용해서 16비트 값으로 제한해줌
익스
REDACTED! NOTHING TO SEE!