CodeEngn Basic RCE의 6번 문제입니다. Unpack을 하고 Serial을 구하는 문제입니다. 파일을 다운로드 받아보겠습니다. '06.exe'라는 이름의 파일입니다. 실행시켜보겠습니다. Serial이 틀렸을시 "Wrong serial!!!"을 띄우네요. 분석하기 전에 먼저 PEID로 파일의 정보를 확인해보겠습니다. UPX로 패킹되어 있습니다. 올리디버거로 직접 언패킹 해서 저장하겠습니다. ('[CodeEngn] Basic RCE - Level 05 풀이' 참조) UPX 언패킹을 완료했습니다. 이제 올리디버거로 파일을 분석해보겠습니다. 문자열을 살펴보려 했는데 문자열이 보이지 않습니다. 분명히 아까 실패 문자열을 띄웠었는데 말이죠. 그렇다면 Back to User 모드를 사용하여 실패 문자열을..
CodeEngn Basic RCE의 5번 문제입니다. 해당 프로그램의 등록키를 구하는 문제입니다. 파일을 다운로드 받아보겠습니다. '05.exe'라는 이름의 파일입니다. 실행시켜보겠습니다. 그럼 먼저 PEID로 05.exe의 정보를 보겠습니다. UPX로 패킹이 되어있군요. 분석하기 전에 먼저 언패킹을 해야 합니다. UPX 파일을 언패킹 하려면 툴을 써도 되지만 이번에는 올리디버거에서 직접 언패킹을 해보도록 하겠습니다. UPX 패킹은 코드 맨밑에 OEP로 가는 점프문이 있습니다. 이 점프문을 타고 들어가면 패킹 되기전의 코드가 나오고 이 코드를 저장해주시면 됩니다. 이것이 패킹되기 전의 코드입니다. Rebulild Import를 체크 해제하시고 OllyDump 플러그인으로 저장시켜줍니다. Rebulild를..
CodeEngn Basic RCE의 4번 문제입니다. 디버거를 탐지하는 함수의 이름을 묻는 문제입니다. 파일을 다운로드 받아보겠습니다. '04.exe'라는 이름의 실행파일입니다. 실행시켜보겠습니다. 계속해서 '정상'이라는 문자열을 출력하고 있습니다. 그럼 이제 올리디버거로 열어 보겠습니다. 디버거로 열었더니 계속해서 '디버깅 당함'이라는 문자열을 출력합니다. 문제에 나와 있는 대로 해당 프로그램에 디버거를 감지하는 함수가 있어서 디버거로 열었을 때만 다른 문자열이 나오는 것 같습니다. 함수 목록을 확인해보겠습니다. 'IsDebuggerPresent'라는 함수가 보입니다. 검색해보니 IsDebuggerPresent란 PEB 구조체의 디버깅 상태 값을 확인하여 디버깅을 당하고 있다면 1을, 아닐 경우 0을 ..
CodeEngn Basic RCE의 3번 문제입니다. 비주얼 베이직에서의 스트링 비교함수 이름을 묻는 문제이군요. 간단한 구글링으로도 찾을 수 있습니다. 일단 파일을 다운로드 받아보겠습니다. '03.exe'라는 이름의 파일입니다. 실행시켜보겠습니다. 만약 이런 에러가 뜬다면 컴퓨터에 'MSVBVM50.DLL'이 없어서 그러니 아래 링크에서 다운로드 받아주시면 됩니다. https://support.microsoft.com/ko-kr/help/180071/file-msvbvm50-exe-installs-visual-basic-5-0-run-time-files (MSVBVM50.DLL은 Visual Basic 5.0으로 만든 응용 프로그램을 실행 하는데 필요한 파일입니다.) 'MSVBVM50.DLL'을 다운로..
CodeEngn Basic RCE의 2번 문제입니다. 손상된 파일의 패스워드를 찾아내는 문제이군요. 파일을 다운로드 받아보겠습니다. '02.exe'라는 이름의 파일입니다. 실행시켜보겠습니다. 역시 손상된 파일답게 실행할 수가 없네요. 문제에서 파일을 분석하라 했으니 헥스 에디터로 분석해보겠습니다. 헥스 에디터로 열어본 모습입니다. 내용을 살펴보면 우리가 알고 있는 함수들이 보이네요. 그 바로 밑엔 이런 문자열들이 있습니다. 대충 감이 오지 않나요? ㅎㅎ 감으로 생각한 문자열을 코드엔진 사이트에 인증 해보면..
CodeEngn Basic RCE의 1번 문제입니다. HDD를 CD-Rom으로 인식시켜주는 GetDriveTypeA의 리턴값을 구해야 하는 문제군요. 파일을 다운로드 받아보겠습니다. 'Reverse_L01'이라는 이름의 파일입니다. 실행시켜 보겠습니다. "너의 HD를 나의 CD-ROM으로 생각하게 만들어라"라는 문자열이 나오네요. OK를 눌러보면, “어쨌든… 이것은 CD-ROM이 아니다!”라고 뜨네요. 파일을 올리디버거로 열어보겠습니다. 먼저 MessageBoxA 함수부터 살펴보겠습니다. MessageBoxA 함수란 이름 그대로 메시지 박스를 띄워주는 함수입니다. 내용을 보면 아까 파일을 실행했을 때 나왔던 문자열들이 보이네요. 그런데 아까 확인하지 못한 문자열이 하나 있네요. 바로 “OK, I real..
xcz.kr의 3번 문제 'I don't speak English.'입니다. 딱 봐도 평범한 언어가 아니라 암호라는 느낌이 강하게 오는군요. 일단 문장의 제일 앞에 있는 'Serz EKW'이란 문자를 구글에 검색해 보겠습니다. 관련 검색어로 'vigenere decrypt'이란것이 나오네요. vigenere 암호라... 그렇다면 한번 vigenere 암호 디코드 사이트에서 문제에 있는 문장들을 넣고 돌려보도록 하겠습니다. 돌려보았더니 싸이의 강남스타일에 대한 기사로 보이는 글이 되었네요. 해독된 글을 읽다 보면 키값이 나오는데 그 키값을 게싱하다 보면 완벽한 키값이 나옵니다.
xcz.kr의 2번 문제 'Listen Carefully!'입니다. 잘 들어보라네요! 일단 파일을 다운 받아보겠습니다. morse.wav라는 파일이군요. morse...모스라.. 모스부호가 생각나지 않나요? ㅎㅎ 재생 시켜 보면 뚜-뚜뚜-- 하는 소리밖에 안 들립니다. 그렇다면 일단 골든 웨이브라는 음원 파일 분석 툴로 morse.wav 파일을 분석해보겠습니다. 골든 웨이브로 열었을 때의 모습입니다. 그런데 다른 음원 파일들과는 다르게 음파가 일정하게 잘 끊어져있습니다. 마치 모스 부호처럼 말이죠...ㅎㅎ 이것이 모스 부호 표입니다. morse.wav 파일 음파의 굵은 부분은 막대로, 얇은 부분은 점으로 보고 해석을 하면 바로 이런 결과가 나옵니다.
xcz.kr의 1번 문제 'End Of Image'입니다. 'Why So Serious?'라고 쓰여있는 사진이 보입니다. 이 사진을 다운받으면 'whysoserious.png'라는 png 파일이 다운됩니다. 한번 HxD를 사용하여 분석해봅시다. PNG 파일에는 형식이 있는데요. 파일 헤더가 89 50 4E 47 0D 0A 1A 0A로 시작해서 49 45 4E 44 AE 42 60 82로 끝난다는 것입니다. 'whysoserious.png'파일 역시 PNG 파일이기 때문에 파일 헤더가 89 50 4E 47 0D 0A 1A 0A로 시작하는군요. 그렇다면 이제 끝부분을 살펴봅시다. ??? 끝부분을 살펴보면 49 45 4E 44 AE 42 60 로 끝나지 않는 것을 볼 수 있습니다. 대신 FF D9로 끝나는데,..
- Total
- Today
- Yesterday
- 17th HackingCamp CTF
- 안드로이드
- Programming
- pwnable
- 멘토링
- Level 06
- 풀이
- hackerschool
- Level 04
- reversing.kr
- Level 01
- HackingCamp
- Advance RCE
- Reversing
- Level 05
- unity2d
- C#
- Level 02
- xcz.kr
- 안드로이드 멘토링
- Android
- Write-up
- c++
- CodeEngn
- Unity
- 유니티
- Level 03
- wargame
- Basic RCE
- ftz
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |