본문 바로가기

Security

[Reversing.kr] Easy Keygen

[주의] 해당 글에는 풀이 및 정답이 적혀있습니다.

스스로 해결하고 싶으신 분들은 문제를 해결한 후, 이 페이지를 참고하셨으면 합니다 : )

문제를 보면, 시리얼이 "5B134977135E7D13"일 때, 이름을 찾으라고 한다.

실행은 이름을 입력하고 시리얼을 입력하는 순으로 흘러간다. 

시리얼 생성 루틴

디버깅해보면, edx에는 입력한 이름, ecx에는 10, 20, 30이 반복되며 나타난다. 

반복되며 나타나는 값

그리고 이름과 해당 값을 xor 계산하여 시리얼을 생성한다. 그렇다면, "5B134977135E7D13" 시리얼을 차례로 10, 20, 30을 xor하여 값을 구하면 답을 찾을 수 있을 것이다. (손으로 하나씩 해도 되는데, 코드를 구현해봤다.)

serial = "5B134977135E7D13"
x_value = [16, 32, 48]
result = []

idx = 0
cnt = 0
while idx < 16:
	tmp = serial[idx:idx+2]
	idx+=2

	result.append(int(tmp, 16) ^ x_value[cnt])
	cnt+=1
	if cnt == 3:
		cnt=0

for i in result:
	print(chr(i), end='')

print('')

'Security' 카테고리의 다른 글

[pwnable.kr] simple login  (0) 2021.02.07
[Reversing.kr] Music Player  (0) 2021.01.20
[Reversing.kr] Easy Crack  (0) 2021.01.16
pwnable.kr Toddler's Bottle  (0) 2021.01.07
HITCON Training Lab15  (0) 2021.01.07