티스토리 뷰
Reversing.kr의 문제 Easy Keygen입니다.
파일을 다운로드 받아보면..
'Easy_KeygenMe.zip'라는 이름의 파일입니다.
압축을 풀면..
실행 파일과 텍스트 파일이 하나씩 있는데요.
텍스트 파일을 열어보면..
Serial이 5B134977135E7D13일 때, Name값을 구하라고 하네요.
이제 실행 파일을 열어보겠습니다.
(그냥 실행했을 때는 실패 문자열이 출력되지 않고 올리디버거로 열고 실행시켰을 때만 실패 문자열이 나타나네요)
아무값이나 넣고 엔터를 눌렀더니 실패 문자열이 출력됩니다.
먼저 PEID로 파일의 정보를 보겠습니다.
C++로 짜여진 프로그램이고 패킹은 되어있지 않습니다.
이제 올리디버거로 열어서 분석해보겠습니다.
분석하던 중에 Serial을 생성하는 루틴을 찾았습니다.
이 루틴은 입력받은 문자열들을 가져와서 하나씩 0x10, 0x20, 0x30과 차례대로 xor연산을 해줍니다.
그리고 ESI에 생성한 Serial값을 저장하고 입력받은 Serial값과 비교해서 일치하면 성공 문자열을, 아니라면 실패 문자열을 띄우는 곳으로 점프합니다.
(Name값으로는 abcd를 입력했습니다)
abcd라는 Name값으로 생성된 Serial을 프로그램에 인증해보겠습니다.
정상적으로 성공 문자열이 잘 출력됩니다.
이제 Serial이 5B134977135E7D13일 때의 Name값을 구하기 위해서 Serial을 생성하는 연산을 C 코드로 짜보겠습니다.
5B134977135E7D13를 다시 0x10, 0x20, 0x30과 차례대로 xor 연산을 해주면 Name값이 나올 것입니다.
위 코드를 실행시켜보면..
K3yg3nm3이 출력되었습니다.
이제 프로그램에 Name값으로 K3yg3nm3을 입력하고 Serial값으로 5B134977135E7D13를 입력하겠습니다.
'Reversing > Reversing.kr' 카테고리의 다른 글
[Reversing.kr] ImagePrc 풀이 (3) | 2017.12.18 |
---|---|
[Reversing.kr] Replace 풀이 (3) | 2017.12.18 |
[Reversing.kr] Music Player 풀이 (2) | 2017.12.10 |
[Reversing.kr] Easy Unpack 풀이 (3) | 2017.12.03 |
[Reversing.kr] Easy Crack 풀이 (3) | 2017.11.27 |
- Total
- Today
- Yesterday
- Level 01
- Android
- Level 06
- Advance RCE
- 안드로이드 멘토링
- Programming
- reversing.kr
- 멘토링
- 풀이
- CodeEngn
- Level 03
- 유니티
- pwnable
- xcz.kr
- Level 05
- HackingCamp
- 17th HackingCamp CTF
- wargame
- C#
- Unity
- unity2d
- Write-up
- hackerschool
- Level 04
- Basic RCE
- Reversing
- ftz
- 안드로이드
- c++
- Level 02
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |