Reversing.kr - Easy Keygen

2021. 6. 24. 16:48WarGame/Reversing.kr

Easy Keygen 문제입니다.

문제 이름처럼 Keygen을 하는 문제 같습니다.

문제를 실행시켜보면

위와 같이 이름하고, 시리얼 번호를 받습니다.

그리고 함께 들어 있는 Readme.txt 를 확인해보면

시리얼이 5B134977135E7D13일때의 key값을 찾아보라고 합니다.

IDA에서 똑같이 string 부분을 확인해보고,

이를 따라 들어가면

메인함수를 확인할 수 있습니다.

아래 메인함수를 분석해보면

sprintf부분에서 ^(xor)연산이 있는것을 봐서 해당 부분에서 연산이 일어나는 것을 확인할 수 있습니다.

v6, v7, v8 이 각각 v6(0x10), v7(0x20), v8(0x30) 을 가지고 있습니다.

또한 [29번줄] scanf에서 이름을 입력 받고, 이를 9변수에 저장한 후

[35번줄] 에서 순차대로 v6,v7,v8 과 xord연산을 진행하는 것을 확인할 수 있습니다.

따라서 아래처럼 python코드를 작성할 수 있고,

serial = [0x5B, 0x13, 0x49, 0x77, 0x13, 0x5E, 0x7D, 0x13]
key = [0x10, 0x20, 0x30, 0x10, 0x20, 0x30, 0x10, 0x20, 0x30]

flag = ""
for i in range(0, len(serial)) :
    flag += str(chr(serial[i] ^ key[i]))

print(flag)

 

실행하면 key값을 획득할 수 있습니다.

FLAG : K3yg3nm3

'WarGame > Reversing.kr' 카테고리의 다른 글

Reversing.kr - Easy Crack  (0) 2021.05.16