반응형 전체 글992 Manifest 매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다. 안드로이드 애플리케이션을 구동하는데 필요한 설정값을 관리해주는 곳이라고 생각하면 편하다. 모든 앱 프로젝트에 manifests 폴더 안에 AndroidManifest.xml 파일이 있어야 한다. 매니페스트 파일 역할 1. 앱의 패키지 이름(식별자, 고유값) 앱을 패키징 할 때 빌드 도구가 이 값을 Gradle 빌드 파일의 애플리케이션 ID로 대체한다. 2. 앱의 구성 요소(activity, service, receiver, provider) 3. 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스 하기 위한 필요한 권한 사용자 데이터, 특정 시스템 기능에 액세스 하기 위한 권한을.. 2019. 9. 24. Layouts 조사 1. LinearLayout - LinearLayout은 단 방향으로 모든 하위 요소를 정렬하는 뷰 그룹이다. - 두 가지 방향이 있다. 1. horizontal(수평) 2. vertical(수직) - LinearLayout의 모든 하위 요소는 순차적으로 스택 되므로, 세로 목록의 경우 너비에 상관없이 한 행당 하나의 하위 요소만 있게되며, 가로 목록의 경우 높이가 한 행 높이다. 주요 속성 android:orientation : 레이아웃 방향을 지정할 수 있다. android:gravity : 객체가 자신의 경계 내에서 X, Y축 모두에 내용을 배치하는 방법을 지정 2. FrameLayout - FrameLayout은 단일 항목을 표시하도록 설계되었다. - 일반적으로 단일 하위 뷰를 유지하는 데 사용해.. 2019. 9. 23. Palette 조사 안드로이드의 화면을 만들기 위한 도구들이다. 1. Text - TextView : 화면에 입력한 문자열을 보여준다. - EditText : 입력 기능이 가능한 텍스트이다. 여러가지 타입이 존제한다. 1) password 2) E-mail 3) Phone 4) Postal Address 5) Multiline Text 6) Time 7) Date 8) Number - AutoCompleteTextView : 사용자 입력을 자동으로 완성해주는 텍스트뷰이다. ex) "o"를 입력하면 "o"로 시작하는 리스트형태로 보여준다. - MultiAutoCompleteTextView : 자동완성텍스트 뷰와 비슷하다. 그러나 자동완성텍스트는 한번만 실행되지만 이것은 계속 사용이 가능하다. 대신 ',' 이후 자동완성 리스트.. 2019. 9. 23. 12단계 golem -> darkknight 이번 문제는 FPO라고 적혀있다. 이것은 Frame Pointer Overwriting이다. 소스코드를 보면 덮을 수 있는 게 고작 1byte이다. 그러면 쉘 코드를 넣고 마지막 1byte를 쉘코드 -8 위치인 곳의 주소 값으로 바꿔 EBP ESP를 조작해서 실행되게 해 보자. 0xbffffab4 주소 값으로 조작하면 딱 쉘 코드로 점프한다. 메모리 주소를 보고 구한 값으로 exploit을 시도해보았다. 그런데 아무것도 안 뜨고 입력해도 반응이 없다. 실패한 것이다. 그래서 메모리 값이 어떻게 변하는지 일부러 다른 값으로 또 실패시켜 덤프 파일을 얻어 분석해보자. 덤프 뜬 것으로 확인해보니 주소 값이 바뀌었다. 이제 0xbffffabc로 하면 성공할 것이다. 성공! 2019. 9. 20. 11단계 skeleton -> golem 이번 문제는 스택 구간을 전무 못쓰게 하고 있다 버퍼, argv, 환경변수, 절대경로, 그냥 싹 다 0으로 초기화시켜버린다. ㅎㅎㅎ LD_PRELOAD를 사용해야 한다. LD_PRELOAD란? = 공유 라이브러리의 경로를 지정해준다. - 유닉스/리눅스 계열에서 사용되는 환경변수이다. - 프로세스가 실행될 때, 이 환경변수에 지정된 공유라이브러리가 먼저 로드된다. - 따라서 다른 라이브러리의 함수와 LD_PRELOAD에 지정된 라이브러리의 함수가 서로 이름이 똑같을 경우 후자가 실행되게 된다. (라이브러리 적재 순서 때문) 일단 소스코드를 공유라이브러리로 컴파일하되 명을 쉘 코드로 짓자. [그림 1-2] 처럼 공유 라이브러리로 컴파일하고 LD_PRELOAD 환경변수에 쉘 코드를 올려버린다. 쉘 코드가 올라.. 2019. 9. 20. 공유 메모리(Shared Memory) 공유 메모리는 프로세스 간에 서로 공유하는 메모리 공간이다. 프로세스는 시작 시 혹은 실행 중에 이러한 데이터를 저장하고 사용하기 위한 메모리 공간을 커널에 요구하여서 할당받아 사용하게 되는데, 이러한 메모리 공간은 기본적으로 메모리를 요청한 프로세스만이 접근 가능하도록 되어있다. 하지만 가끔은 여러 개의 프로세스가 특정 메모리 공간을 동시에 접근해야 할 필요성을 가질 때가 있다. 이러한 작업을 위한 효율적인 방법을 공유 메모리가 제공한다. 공유 메모리는 여러 IPC 중에서 가장 빠른 수행 속도를 보여준다. 이유는 하나의 메모리를 공유해서 접근하게 되므로, 데이터 복사와 같은 불필요한 오버헤드가 발생하지 않기 때문에, 빠른 데이터의 이용이 가능하다. 그러나 하나의 프로세스가 메모리에 접근 중에 있을 때,.. 2019. 9. 19. 이전 1 ··· 159 160 161 162 163 164 165 166 다음 반응형