티스토리 뷰
CodeEngn Advance RCE의 01번 문제입니다.
프로그램이 몇 밀리세컨드 후에 종료되는지를 묻고 있습니다.
문제 파일을 실행시켜보니 이런 화면이 나타납니다.
PEID로 보겠습니다.
UPX로 패킹 되어있네요.
언패킹 한 후 올리디버거로 열어서 분석하겠습니다.
모든 timeGetTime 함수에 BP를 걸었습니다.
윈도우가 시작되고 난 뒤 지난 시간을 DWORD형 데이터로 얻는 timeGetTime 함수는 윈도우가 시작되고 난 뒤의 시간을 리턴합니다.
리턴값은 보통 EAX에 저장됩니다.
EAX와 비교하는 부분을 찾아야겠네요.
EAX와 비교하는 구문을 찾았습니다.
DWORD PTR DS : [EBX+0x4]에 있는 값인 337B와 EAX를 비교해서 같으면 프로그램이 종료됩니다.
337B를 10진수로 변환하고 md5 암호화를 해준 뒤, 인증해보면..
Success!!
문제가 너무 익숙해서 이상했는데, Basic RCE의 19번 문제와 답만 다를 뿐 아예 같은 문제였네요.. ㅋㅋ
http://turtledove.tistory.com/29
'Reversing > CodeEngn' 카테고리의 다른 글
[CodeEngn] Advance RCE - Level 03 풀이 (0) | 2018.04.04 |
---|---|
[CodeEngn] Advance RCE - Level 02 풀이 (0) | 2018.04.03 |
[CodeEngn] Basic RCE - Level 20 풀이 (40) | 2017.11.26 |
[CodeEngn] Basic RCE - Level 19 풀이 (39) | 2017.11.26 |
[CodeEngn] Basic RCE - Level 18 풀이 (87) | 2017.11.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C#
- wargame
- c++
- Unity
- Write-up
- Android
- Reversing
- 멘토링
- Programming
- Level 04
- 풀이
- 유니티
- xcz.kr
- HackingCamp
- pwnable
- ftz
- Level 02
- CodeEngn
- Level 03
- Advance RCE
- Level 05
- 안드로이드 멘토링
- 안드로이드
- hackerschool
- Level 06
- Basic RCE
- reversing.kr
- unity2d
- 17th HackingCamp CTF
- Level 01
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함