Reversing.kr의 문제 ImagePrc입니다. 문제 파일을 실행시켜보겠습니다. 그림을 그리는 창이 나와서 아무 그림이나 그리고 체크를 눌렀더니 실패 문자열이 출력되네요. 패킹은 되어있지 않으니 바로 올리디버거로 분석하겠습니다. 위 화면의 코드들을 살펴보면 높이가 150, 너비가 200인 bmp 리소스를 받아오는 것을 볼 수 있습니다. 문자열들을 살펴보던 중에 아까 봤던 실패 문자열을 발견해서 그곳에 BP를 걸고 실행시켜보았습니다. 실패 문자열이 출력되는 곳 바로 위에 조건 점프문을 보니 특정 루틴을 0x15F90번 반복하면서 비교하는 것을 볼 수 있습니다. 아마 문제 파일 안에 있는 그림과 사용자가 만든 그림을 비교하는 것 같습니다. 이제 PE view로 문제 파일의 PE 구조를 확인하여 파일 안..
Reversing.kr의 문제 Replace입니다. 문제 파일을 실행시켜보겠습니다. 숫자만 입력받을 수 있습니다. 아무 숫자나 입력해보니 문제가 발생해서 프로그램 작동이 중지됩니다. 패킹은 되어있지 않으니 바로 올리디버거로 분석하겠습니다. 올리디버거로 실행시킨 후 아무 숫자나 넣고 체크 한 후 0040466F 주소를 보면 EAX에 0x90(NOP)을 저장하는데 이 부분에서 문제가 발생합니다. 왜냐하면 현재 EAX에 저장돼있는 주소인 60160A20은 접근할 수 없는 주소이기 때문입니다. 접근을 할 수 없는 곳에 0x90이란 값을 넣으려고 하니 오류가 발생하는 것입니다. 이제 프로그램에서 숫자를 입력받고 처리하는 부분을 보겠습니다. 숫자를 입력받는 함수인 GetDlgItemInt에 BP를 걸어주고 실행시켜..
Reversing.kr의 문제 Music Player입니다. 문제 파일을 다운로드 받아보면.. 실행 파일과 텍스트 파일 그리고 msvbvm60.dll 파일이 있습니다. msvbvm60.dll은 비주얼 베이직 6.0의 라이브러리 파일입니다. (실행 파일이 비주얼 베이직으로 만들어진 것이라서 혹시라도 사람들이 msvbvm60.dll이 없을까 봐 친절하게 문제와 함께 첨부해주셨네요 ㅎㅎ) 텍스트 파일을 열어보면.. 이 MP3 플레이어에는 1분마다 체크를 하는 루틴이 있어서 1분까지밖에 들을 수 없고 1분 이상을 들으면 플래그가 나온다고 하네요. 프로그램을 실행시켜보겠습니다. 노래를 틀면 딱 1분이 될 때 1분 미리듣기만 가능하다는 창이 뜨면서 프로그램이 종료됩니다. 패킹은 되어있지 않으니 바로 올리디버거로 열..
- Total
- Today
- Yesterday
- 유니티
- Programming
- C#
- wargame
- hackerschool
- Basic RCE
- Write-up
- 안드로이드
- 안드로이드 멘토링
- 풀이
- ftz
- CodeEngn
- Level 04
- Level 05
- Unity
- HackingCamp
- c++
- 멘토링
- Android
- Level 01
- pwnable
- Reversing
- 17th HackingCamp CTF
- Advance RCE
- unity2d
- xcz.kr
- Level 03
- Level 02
- reversing.kr
- Level 06
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |