[HackCTF] Keygen 풀이 (200p)
Wargame/HackCTF

[HackCTF] Keygen 풀이 (200p)

문제 종류 - Reversing
사용한 툴 - Python 3.x, IDA

nc ctf.j0n9hyun.xyz 9004

 

풀이

ELF 파일이 주어진다. IDA에 넣어보자.

main 함수 부분이다. check_key(&s) 값이 참이면 flag를 얻을 수 있는 거 같다.

check_key 함수를 봐보도록 하자.

encoding(a1) 값과 OO]oUU2U<sU2UsUsK이 같아야 하는 듯하다.

이번엔 encoding 함수를 봐보도록 하자.

이 부분이 keygen인데, 어떠한 문자열을 넣고 저 루틴을 모두 돌고나서에 결과가 OO]oUU2U<sU2UsUsK 여야 한다.

간단하게 파이썬을 이용해 어떠한 문자열을 추측해보자.

solve = []
answer = 'OO]oUU2U<sU2UsUsK'
v2 = 72

for i in range(0,len(answer)):
	for q in range(32,127):
		if ((q + 12) * v2 + 17) % 70 + 48 == ord(answer[i]):
			solve.append(chr(q))
			v2 = ((q + 12) * v2 + 17) % 70 + 48
			break

print(''.join(solve))

코드를 돌리면, 문자열 하나가 나온다.

단, 개행을 조심하자.

'Wargame > HackCTF' 카테고리의 다른 글

[HackCTF] Basic_BOF #1 풀이 (100p)  (0) 2020.07.14
[HackCTF] static 풀이 (250p)  (0) 2020.07.13
[HackCTF] Strncmp 풀이 (150p)  (0) 2020.07.12
[HackCTF] Handray 풀이 (100p)  (0) 2020.07.12
[HackCTF] Reversing Me 풀이 (100p)  (0) 2020.07.12