티스토리 뷰
CodeEngn Basic RCE의 6번 문제입니다.
Unpack을 하고 Serial을 구하는 문제입니다.
파일을 다운로드 받아보겠습니다.
'06.exe'라는 이름의 파일입니다.
실행시켜보겠습니다.
Serial이 틀렸을시 "Wrong serial!!!"을 띄우네요.
분석하기 전에 먼저 PEID로 파일의 정보를 확인해보겠습니다.
UPX로 패킹되어 있습니다.
올리디버거로 직접 언패킹 해서 저장하겠습니다. ('[CodeEngn] Basic RCE - Level 05 풀이' 참조)
UPX 언패킹을 완료했습니다.
이제 올리디버거로 파일을 분석해보겠습니다.
문자열을 살펴보려 했는데 문자열이 보이지 않습니다.
분명히 아까 실패 문자열을 띄웠었는데 말이죠.
그렇다면 Back to User 모드를 사용하여 실패 문자열을 띄우는 코드를 찾겠습니다.
(Back to User 모드란 해당 프로그램에 특정 이벤트가 발생하기 전에 설정 해두고 call 명령어가 일어난 바로 다음 위치를 잡을 수 있는 기능입니다.)
우선 F9를 눌러서 프로그램을 실행시키고 아무 문자열이나 입력해서 실패 문자열을 띄웁니다.
그리고 F12를 눌러서 프로그램을 정지 시킨 뒤 alt + F9를 눌러주면
Back to User 모드가 됩니다.
이때 아까 나타났던 실패 문자열 창에 있는 확인 버튼을 눌러주면 004010BE로 오게 됩니다.
그리고 스크롤을 살짝만 올려주면 우리가 찾는 코드들이 나옵니다.
문자열 'AD46DFS547'과 비교해서 같으면 성공 문자열을 띄우고 아니면 실패 문자열을 띄우는 코드입니다.
'AD46DFS547'를 프로그램에 인증해보면...
성공 문자열을 띄웁니다.
그리고 이 문제는 이 프로그램의 OEP + Serial를 인증하는 문제였으니
아까 언팩하면서 알아냈던 OEP와 Serial을 코드엔진 사이트에 인증해보면...
'Reversing > CodeEngn' 카테고리의 다른 글
[CodeEngn] Basic RCE - Level 08 풀이 (126) | 2017.11.03 |
---|---|
[CodeEngn] Basic RCE - Level 07 풀이 (121) | 2017.11.03 |
[CodeEngn] Basic RCE - Level 05 풀이 (98) | 2017.10.30 |
[CodeEngn] Basic RCE - Level 04 풀이 (111) | 2017.10.30 |
[CodeEngn] Basic RCE - Level 03 풀이 (110) | 2017.10.19 |
- Total
- Today
- Yesterday
- 안드로이드 멘토링
- C#
- Unity
- 풀이
- Write-up
- Level 06
- Level 05
- Programming
- hackerschool
- Basic RCE
- Android
- 유니티
- Level 02
- Level 04
- ftz
- 17th HackingCamp CTF
- Reversing
- 멘토링
- Level 03
- xcz.kr
- 안드로이드
- reversing.kr
- pwnable
- HackingCamp
- wargame
- unity2d
- Advance RCE
- Level 01
- c++
- CodeEngn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |