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로 끝나는데,..
먼저 액티비티의 시작부터 종료까지의 과정을 살펴봅시다. 액티비티는 이런 순서로 동작합니다. 그렇다면 액티비티를 사용할때 사용하는 메소드들을 알아봅시다. 하지만 우리는 이런 메소드들을 만든 적이 없을것입니다. 왜냐하면 Android.appcombat.v7.Activity가 위 메소드들을 기본적으로 포함하고 있어서 안드로이 개발 시 필요한 것만 오버라이딩 하여 사용할 수 있게 해주기 때문입니다. Intent란?인텐트란 안드로이드 시스템에서 커뮤니케이션을 담당하는 역할로, 컴포넌트간(Activity, ContentProvider, BroadcastReceiver, Service)의 호출과 메시지 전달에 이용됩니다. EX) 액티비티에서 다른 액티비티로 이동하기 그렇다면 Intent에서 Activity를 어떻게 ..
먼저 안드로이드 구조에 대해 봅시다. 안드로이드의 구조는 위 그림과 같은 요소들로 구성되며 위에서부터 차례대로 애플리케이션, 에플리케이션 프레임워크, 라이브러리, 안드로이드 런타임, 리눅스 커널의 총 5개의 계층으로 분류되어 있습니다. 그렇다면 과연 안드로이드로 어떻게 프로그래밍을 할까요? 안드로이드 애플리케이션에서 레이아웃 같은 리소스를 만드는 데는 XML을, 안드로이드 애플리케이션에서 동적으로 돌아가는 부분을 정의할때는 Java code를 사용합니다. 요즘에는 Kotlin으로 대체되기도 합니다. Activity? Activity란 안드로이드에서 화면을 나타내는 단위이고 Activity 간의 이동을 위해서는 intent라는 것을 사용합니다. 이제 기본 레이아웃에 대해서 알아봅시다. 1. LinearLa..
안드로이드? 현재 우리 주변에서는 안드로이드를 사용한 디바이스들을 많이 볼수있습니다. 대표적인 예로는 삼성과 LG의 스마트폰들입니다. 대부분의 사람들이 안드로이드가 정확하게 무엇인지 모르고 사용하고 있을것입니다. 그렇다면 정확한 '안드로이드'란 무엇일까요? 01 안드로이드란? 안드로이드란 리눅스란 운영체제를 기반으로 만들어진 모바일 디바이스 플랫폼입니다. 안드로이드는 개발자들이 대표적으로는 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하고, 안드로이드 소프트웨어 개발 키트(SDK)를 통해 응용프로그램을 개발하는 데 필요한 도구들과 API를 제공합니다. 안드로이드사를 인수한 구글은 안드로이드의 모든 오픈소스를 무료로 배포하고 있어서 기업이나 사용자는 각자 안드로이드 프로그램을 독자적으로 개발을 해..
- Total
- Today
- Yesterday
- C#
- Unity
- Reversing
- hackerschool
- c++
- Level 06
- CodeEngn
- ftz
- Level 02
- Level 01
- 17th HackingCamp CTF
- 안드로이드 멘토링
- Level 03
- 유니티
- 멘토링
- pwnable
- Programming
- Basic RCE
- 안드로이드
- reversing.kr
- 풀이
- unity2d
- xcz.kr
- Write-up
- Level 05
- Advance RCE
- Android
- wargame
- Level 04
- HackingCamp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |