티스토리 뷰
Reversing.kr의 문제 ImagePrc입니다.
문제 파일을 실행시켜보겠습니다.
그림을 그리는 창이 나와서 아무 그림이나 그리고 체크를 눌렀더니 실패 문자열이 출력되네요.
패킹은 되어있지 않으니 바로 올리디버거로 분석하겠습니다.
위 화면의 코드들을 살펴보면 높이가 150, 너비가 200인 bmp 리소스를 받아오는 것을 볼 수 있습니다.
문자열들을 살펴보던 중에 아까 봤던 실패 문자열을 발견해서 그곳에 BP를 걸고 실행시켜보았습니다.
실패 문자열이 출력되는 곳 바로 위에 조건 점프문을 보니 특정 루틴을 0x15F90번 반복하면서 비교하는 것을 볼 수 있습니다.
아마 문제 파일 안에 있는 그림과 사용자가 만든 그림을 비교하는 것 같습니다.
이제 PE view로 문제 파일의 PE 구조를 확인하여 파일 안에 있는 그림을 찾겠습니다.
리소스 섹션에서 비트맵 형식의 리소스를 찾았습니다.
하지만 파일 시그니처가 없어서 온전한 파일이라고 볼 수가 없습니다.
그러니 아까 알아냈던 파일 안에 있는 그림의 너비와 높이를 이용해서 bmp 이미지 헤더를 만들어주겠습니다.
올바른 파일 헤더를 만들어주었습니다.
이제 아까 찾았던 비트맵 형식의 리소스를 그대로 밑에 불여넣기하겠습니다.
이제 이대로 저장해주면 정답이 쓰여 있는 bmp 파일이 생성됩니다.
'Reversing > Reversing.kr' 카테고리의 다른 글
[Reversing.kr] Flash Encrypt 풀이 (0) | 2017.12.25 |
---|---|
[Reversing.kr] Easy ELF 풀이 (1) | 2017.12.20 |
[Reversing.kr] Replace 풀이 (3) | 2017.12.18 |
[Reversing.kr] Music Player 풀이 (2) | 2017.12.10 |
[Reversing.kr] Easy Unpack 풀이 (3) | 2017.12.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C#
- Level 02
- pwnable
- Advance RCE
- ftz
- 멘토링
- Level 01
- 안드로이드 멘토링
- Programming
- Level 03
- xcz.kr
- 17th HackingCamp CTF
- HackingCamp
- 풀이
- Write-up
- Level 06
- Android
- CodeEngn
- Level 05
- Reversing
- Unity
- Basic RCE
- Level 04
- reversing.kr
- unity2d
- hackerschool
- 안드로이드
- wargame
- 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 |
글 보관함