r-xor-t

buaii·2023년 10월 18일
0

Reverse Engineering

목록 보기
3/4

reversing

리버싱 레벨 1 문제를 다 풀어서 레벨 2 문제 중 최신문제를 풀었다

문제에서 제공된 코드를 디컴파일한 결과이다
코드의 순서를 살펴보면

  1. 문자열을 입력받는데 그 길이가 64여야 한다
  2. 입력값에 13을 더한다
  3. 0x7F를 &연산한다
  4. 문자열을 뒤집는다
  5. 입력값에 3을 xor한다

이 순서로 코드가 진행되고 그 결과값을 하드코딩된 문자열에 비교하는걸 알 수 있다
그러면 그 반대로 진행을 한다면 원하는 입력값을 알아낼 수 있다

반대로 진행을 해보자

payload

result = b"C@qpl==Bppl@<=pG<>@l>@Blsp<@l@AArqmGr=B@A>q@@B=GEsmC@ArBmAGlA=@q"
result = list(result)

result2 = ""

for i in result:
	i = i ^ 3
	result2 = result2 + chr(i)
print(result2)

result2 = b"@Crso>>AssoC?>sD?=Co=CAops?CoCBBqrnDq>ACB=rCCA>DFpn@CBqAnBDoB>Cr"
result2 = list(result2)

result3 = b'rC>BoDBnAqBC@npFD>ACCr=BCA>qDnrqBBCoC?spoAC=oC=?Ds>?CossA>>osrC@'
result2 = list(result3)

res = ''
for j in result3:
	j = j & 0x7f
	j = j - 13
	res = res + chr(j)
print(res)
#e615b75a4d563ac971466e05641d7aed556b62fcb460b6027f126bff411bfe63

한번에 역연산하기는 아직 어려운거같아서 하나씩 연산을 진행하여 코드를 작성해 나갔다

profile
buaii

0개의 댓글

관련 채용 정보