CodeEngn Advance RCE의 01번 문제입니다. 프로그램이 몇 밀리세컨드 후에 종료되는지를 묻고 있습니다. 문제 파일을 실행시켜보니 이런 화면이 나타납니다. PEID로 보겠습니다. UPX로 패킹 되어있네요. 언패킹 한 후 올리디버거로 열어서 분석하겠습니다. 모든 timeGetTime 함수에 BP를 걸었습니다. 윈도우가 시작되고 난 뒤 지난 시간을 DWORD형 데이터로 얻는 timeGetTime 함수는 윈도우가 시작되고 난 뒤의 시간을 리턴합니다. 리턴값은 보통 EAX에 저장됩니다. EAX와 비교하는 부분을 찾아야겠네요. EAX와 비교하는 구문을 찾았습니다. DWORD PTR DS : [EBX+0x4]에 있는 값인 337B와 EAX를 비교해서 같으면 프로그램이 종료됩니다. 337B를 10진수로 ..
CodeEngn Basic RCE의 1번 문제입니다. HDD를 CD-Rom으로 인식시켜주는 GetDriveTypeA의 리턴값을 구해야 하는 문제군요. 파일을 다운로드 받아보겠습니다. 'Reverse_L01'이라는 이름의 파일입니다. 실행시켜 보겠습니다. "너의 HD를 나의 CD-ROM으로 생각하게 만들어라"라는 문자열이 나오네요. OK를 눌러보면, “어쨌든… 이것은 CD-ROM이 아니다!”라고 뜨네요. 파일을 올리디버거로 열어보겠습니다. 먼저 MessageBoxA 함수부터 살펴보겠습니다. MessageBoxA 함수란 이름 그대로 메시지 박스를 띄워주는 함수입니다. 내용을 보면 아까 파일을 실행했을 때 나왔던 문자열들이 보이네요. 그런데 아까 확인하지 못한 문자열이 하나 있네요. 바로 “OK, I real..
- Total
- Today
- Yesterday
- unity2d
- hackerschool
- 안드로이드 멘토링
- Basic RCE
- HackingCamp
- 안드로이드
- Reversing
- Level 04
- Level 06
- 유니티
- Programming
- pwnable
- Level 02
- c++
- C#
- CodeEngn
- Android
- 풀이
- Level 05
- xcz.kr
- wargame
- Write-up
- Unity
- ftz
- Level 03
- 17th HackingCamp CTF
- Level 01
- reversing.kr
- 멘토링
- Advance RCE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |