Season 1
-
Download & Install 사진에 FridaLab 공식 홈페이지 링크를 삽입하였으니, 사진 클릭을 하면 공식 사이트로 이동할 수 있다. 해당 공식 사이트에서 Download를 클릭 시 FridaLab.apk 파일을 다운로드 할 수 있다. adb install 명령어를 통하여 FridaLab.apk를 설치하였다. FridaLab을 실행한다면, 별 반응이 없을 것이다. FridaLab의 기능은 화면 속 텍스트로 작성한 1~8번의 기능들이 우회가 되었는지 확인하는 것 뿐이다. CHECK 박스를 클릭한다면, 우회가 되지 않은 기능들이 빨간색 글자로 변경이 된다. Frida를 이용하여 각 기능들을 후킹을 통해 우회한다면, 초록색 글자로 변경이 된다. AndroidManifest & MainActivity ..
FridaLab Write Up - Download & InstallDownload & Install 사진에 FridaLab 공식 홈페이지 링크를 삽입하였으니, 사진 클릭을 하면 공식 사이트로 이동할 수 있다. 해당 공식 사이트에서 Download를 클릭 시 FridaLab.apk 파일을 다운로드 할 수 있다. adb install 명령어를 통하여 FridaLab.apk를 설치하였다. FridaLab을 실행한다면, 별 반응이 없을 것이다. FridaLab의 기능은 화면 속 텍스트로 작성한 1~8번의 기능들이 우회가 되었는지 확인하는 것 뿐이다. CHECK 박스를 클릭한다면, 우회가 되지 않은 기능들이 빨간색 글자로 변경이 된다. Frida를 이용하여 각 기능들을 후킹을 통해 우회한다면, 초록색 글자로 변경이 된다. AndroidManifest & MainActivity ..
2022.12.15 -
Application 주요 구성 요소 Service . . . 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점으로 백그라운드에서 실행되며 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업 수행합니다. Broadcast Receiver 시스템이 정기적으로 사용자 플로우 밖에서 이벤트를 앱에 전달하도록 지원하며, 앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있도록 도와줍니다. Content Providers . . . 파일 시스템, SQLite DB, 엑세스 할 수 있는 모든 영구 저장 위치에 저장 가능한 어플리케이션 데이터의 공유에 대한 읽기, 쓰기 권한 관리 역할 수행한다. Content Providers를 구성하여 다른 어플리케이션들과 안전하게 데이터 공유가 가능하다.
[ Android ] 기초 정리 - Application 주요 구성 요소Application 주요 구성 요소 Service . . . 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점으로 백그라운드에서 실행되며 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업 수행합니다. Broadcast Receiver 시스템이 정기적으로 사용자 플로우 밖에서 이벤트를 앱에 전달하도록 지원하며, 앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있도록 도와줍니다. Content Providers . . . 파일 시스템, SQLite DB, 엑세스 할 수 있는 모든 영구 저장 위치에 저장 가능한 어플리케이션 데이터의 공유에 대한 읽기, 쓰기 권한 관리 역할 수행한다. Content Providers를 구성하여 다른 어플리케이션들과 안전하게 데이터 공유가 가능하다.
2022.12.08 -
Activity Life Cycle Activity는 화면 하나를 뜻하며, 사용자가 어플리케이션을 사용하는 도중 잠깐 다른 어플리케이션으로 이동해서 다시 돌아오는 상황 등과 같은 상태 변화를 추척하기 위해 여러 콜백을 제공한다. 이는 아래와 같은 상황을 예방 할 수 있다. 사용자가 어플리케이션을 사용하는 도중에 전화가 걸려오거나 다른 어플리케이션으로 전환할 때 비정상 종료되는 문제 사용자가 어플리케이션을 사용하지 않는 경우에도 계속 시스템의 자원이 사용되는 문제 사용자가 어플리케이션을 나갔다가 복귀하였을 때, 사용자의 진행 상태가 저장되지 않는 문제 화면이 가로 방향과 세로 방향으로 회전된 경우, 비정상 종료되거나 사용자의 진행 상태가 저장되지 않는 문제 onCreate() Activity가 처음 생성될..
[ Android ] Activity Life CycleActivity Life Cycle Activity는 화면 하나를 뜻하며, 사용자가 어플리케이션을 사용하는 도중 잠깐 다른 어플리케이션으로 이동해서 다시 돌아오는 상황 등과 같은 상태 변화를 추척하기 위해 여러 콜백을 제공한다. 이는 아래와 같은 상황을 예방 할 수 있다. 사용자가 어플리케이션을 사용하는 도중에 전화가 걸려오거나 다른 어플리케이션으로 전환할 때 비정상 종료되는 문제 사용자가 어플리케이션을 사용하지 않는 경우에도 계속 시스템의 자원이 사용되는 문제 사용자가 어플리케이션을 나갔다가 복귀하였을 때, 사용자의 진행 상태가 저장되지 않는 문제 화면이 가로 방향과 세로 방향으로 회전된 경우, 비정상 종료되거나 사용자의 진행 상태가 저장되지 않는 문제 onCreate() Activity가 처음 생성될..
2022.12.08 -
APK 구조 AndroidManifest.xml 어플리케이션의 주요 정보가 저장된 파일이다. - Activity : Activity에 대한 속성 - Service : 백그라운드에서 실행되는 서비스 - Brodcast Receiver : 안드로이드 내부 이벤트 핸들링을 위한 컴포넌트 - Content Provide : 어플리케이션 간의 데이터 공유를 위한 컴포넌트 assets/ 어플리케이션 사용되는 용량이 큰 자원들(비디오, 오디오, 문서 등)이 저장된 디렉터리 res/ 어플리케이션 실행을 위한 용량이 작고, 미리 컴파일되어야 하는 자원이 저장된 디렉터리 주로 이미지, 디자인 관련 설정 파일, 문자열 관련 설정 파일 등과 같이 용량이 작고, 어플리케이션이 동작 시 필요로 하는 파일들이 저장되어 있다. Dr..
[ Android ] 기초 정리 - APK 구조APK 구조 AndroidManifest.xml 어플리케이션의 주요 정보가 저장된 파일이다. - Activity : Activity에 대한 속성 - Service : 백그라운드에서 실행되는 서비스 - Brodcast Receiver : 안드로이드 내부 이벤트 핸들링을 위한 컴포넌트 - Content Provide : 어플리케이션 간의 데이터 공유를 위한 컴포넌트 assets/ 어플리케이션 사용되는 용량이 큰 자원들(비디오, 오디오, 문서 등)이 저장된 디렉터리 res/ 어플리케이션 실행을 위한 용량이 작고, 미리 컴파일되어야 하는 자원이 저장된 디렉터리 주로 이미지, 디자인 관련 설정 파일, 문자열 관련 설정 파일 등과 같이 용량이 작고, 어플리케이션이 동작 시 필요로 하는 파일들이 저장되어 있다. Dr..
2022.12.08 -
Build DEX (Dalvik Executable) Android 어플리케이션은 Dalvik VM에서 더 효과적으로 실행되기 위해 개발자가 JDK로 코드를 컴파일하여 만든 바이트 코드입니다. Dalvik VM에서 DEX 파일로 변환되어 실행됩니다. Smali Dalvik의 바이트 코드를 위한 어셈블리 언어입니다. 기계어 형태로 되어 있으며, 원하는 부분의 코드 패치가 가능합니다. SandBox Android의 모든 앱은 자체 프로세스와 파일 시스템 공간에 SandBox로 되어 있으며, Linux 커널의 프로세스 공간 보호 메커니즘을 이용하여 설치된 각 앱에 고유한 UID를 할당합니다. 기존 데스크톱 운영 체제(Linux, Windows, Mac 등)와 달리 Android는 UID 개념을 사용자 구분을 ..
[ Android ] 기초 정리 - Build & SandBox & 서명Build DEX (Dalvik Executable) Android 어플리케이션은 Dalvik VM에서 더 효과적으로 실행되기 위해 개발자가 JDK로 코드를 컴파일하여 만든 바이트 코드입니다. Dalvik VM에서 DEX 파일로 변환되어 실행됩니다. Smali Dalvik의 바이트 코드를 위한 어셈블리 언어입니다. 기계어 형태로 되어 있으며, 원하는 부분의 코드 패치가 가능합니다. SandBox Android의 모든 앱은 자체 프로세스와 파일 시스템 공간에 SandBox로 되어 있으며, Linux 커널의 프로세스 공간 보호 메커니즘을 이용하여 설치된 각 앱에 고유한 UID를 할당합니다. 기존 데스크톱 운영 체제(Linux, Windows, Mac 등)와 달리 Android는 UID 개념을 사용자 구분을 ..
2022.12.08 -
Booting Process Android 장치 전원 리부팅 작업을 Android booting sequence이라고 합니다. Boot Loader Android 장치의 전원이 들어올 경우 미리 정의된 Boot code를 ROM에서 찾아서 실행합니다. Boot code를 의해 Boot Loader이 RAM에 로드가 됩니다. 이는 운영체제가 실행되기 전에 실행되는 것으로, Boot Loader은 부팅 및 시스템 커널 검색을 단말기에 지시하는 하위코드입니다. Boot Loader은 보통 비휘발성 메모리에 존재하며, 단말기 고유의 경우가 많습니다. 일반적인 위치는 /bootable/bootloader/legacy/usbloader 에 위치합니다. Boot Loader는 Primary Boot Loader와 S..
[ Android ] 기초 정리 - Booting Process & RootingBooting Process Android 장치 전원 리부팅 작업을 Android booting sequence이라고 합니다. Boot Loader Android 장치의 전원이 들어올 경우 미리 정의된 Boot code를 ROM에서 찾아서 실행합니다. Boot code를 의해 Boot Loader이 RAM에 로드가 됩니다. 이는 운영체제가 실행되기 전에 실행되는 것으로, Boot Loader은 부팅 및 시스템 커널 검색을 단말기에 지시하는 하위코드입니다. Boot Loader은 보통 비휘발성 메모리에 존재하며, 단말기 고유의 경우가 많습니다. 일반적인 위치는 /bootable/bootloader/legacy/usbloader 에 위치합니다. Boot Loader는 Primary Boot Loader와 S..
2022.12.06