티스토리 뷰
Reversing.kr의 문제 Music Player입니다.
문제 파일을 다운로드 받아보면..
실행 파일과 텍스트 파일 그리고 msvbvm60.dll 파일이 있습니다.
msvbvm60.dll은 비주얼 베이직 6.0의 라이브러리 파일입니다.
(실행 파일이 비주얼 베이직으로 만들어진 것이라서 혹시라도 사람들이 msvbvm60.dll이 없을까 봐 친절하게 문제와 함께 첨부해주셨네요 ㅎㅎ)
텍스트 파일을 열어보면..
이 MP3 플레이어에는 1분마다 체크를 하는 루틴이 있어서 1분까지밖에 들을 수 없고 1분 이상을 들으면 플래그가 나온다고 하네요.
프로그램을 실행시켜보겠습니다.
노래를 틀면 딱 1분이 될 때 1분 미리듣기만 가능하다는 창이 뜨면서 프로그램이 종료됩니다.
패킹은 되어있지 않으니 바로 올리디버거로 열어서 분석하겠습니다.
1분 미리듣기만 가능하다는 창을 불러오는 곳을 찾기 위해서 메세지 박스를 띄우는 함수들에 BP를 걸어주었습니다.
메세지 박스를 띄우는 부분입니다.
위로 올려보면,
메세지 박스를 띄우는 부분으로 이동하는 조건문이 있습니다.
EAX와 60000을 비교합니다.
밀리세컨드 단위라서 60초가 60000으로 표기되어있습니다.
저곳을 60초 이상으로 수정하고 다시 실행시켜보겠습니다.
이런 에러 창이 뜹니다.
올리디버거에서 Shift + F9을 눌러서 프로그램을 계속 진행해 보아도 노래만 계속 진행되고 에러 창은 그대로네요.
예외가 걸리는 부분에서 Alt + K를 눌러서 콜스택을 보겠습니다.
004046BF 바로 위에서 함수가 호출된 것을 확인할 수 있습니다.
함수 호출 위에 조건 점프문이 있는데 저곳을 JMP로 수정해서 함수를 호출하지 않도록 하겠습니다.
이제 저장하고 프로그램을 실행시켜주겠습니다.
이제 노래도 끝까지 들을 수 있습니다.
그리고 1분이 넘어가면 프로그램 상단에 정답이 나옵니다.
'Reversing > Reversing.kr' 카테고리의 다른 글
[Reversing.kr] ImagePrc 풀이 (3) | 2017.12.18 |
---|---|
[Reversing.kr] Replace 풀이 (3) | 2017.12.18 |
[Reversing.kr] Easy Unpack 풀이 (3) | 2017.12.03 |
[Reversing.kr] Easy Keygen 풀이 (3) | 2017.11.30 |
[Reversing.kr] Easy Crack 풀이 (3) | 2017.11.27 |
- Total
- Today
- Yesterday
- reversing.kr
- Reversing
- Level 02
- xcz.kr
- 유니티
- Write-up
- 안드로이드
- Level 05
- unity2d
- HackingCamp
- Level 04
- 멘토링
- ftz
- 17th HackingCamp CTF
- Programming
- c++
- 안드로이드 멘토링
- Unity
- Basic RCE
- 풀이
- CodeEngn
- Level 01
- Level 03
- Android
- wargame
- pwnable
- Level 06
- hackerschool
- Advance RCE
- C#
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |