File Signature를 통해, 또는 문제를 통해 ELF 파일임을 알 수 있다.
IDA로 분석해보자.
main 함수의 루틴은 다음과 같다.
sub_8048434에는 입력받는 루틴, sub_8048451에는 키 생성 루틴, sub_80484F7에는 성공 메시지 출력 루틴이 존재한다.
키를 생성하는 sub_8048451 함수의 전체적인 모습은 이러하다.
분기문을 모두 통과해 가장 오른쪽으로 가야 성공한다.
분석 결과를 보자면, 비교 루틴은 다음과 같이 존재한다.
byte 배열을 순서대로 정리한 후, 아래처럼 코딩해 보자.
1 2 3 4 5 6 7 8 | result = "" result += chr(0x78 ^ 0x34) result += "1" result += chr(0x7c ^ 0x32) result += chr(0x88 ^ 0xdd) result += "X" print "Key: " + result | cs |
간단하게 Key를 뽑아낼 수 있다.
'[Wargame Write-up] > Reversing.kr' 카테고리의 다른 글
[Reversing.kr] Music Player (0) | 2017.10.20 |
---|---|
[Reversing.kr] Easy Unpack (0) | 2017.04.04 |
[Reversing.kr] Easy Keygen (0) | 2016.12.21 |
[Reversing.kr] Easy Crack (0) | 2016.09.15 |