hwan2story
article thumbnail
안드로이드 부팅시 작동 순서
이론/[Android 이론] 2023. 3. 17. 02:28

안드로이드 디바이스가 부팅될 때 다음과 같은 순서로 작동 된다 . 1. 전원이 켜지면, 디바이스는 부트로더(bootloader)를 실행합니다. 디바이스가 전원이 켜지면, 우선적으로 부트로더가 실행됩니다. 부트로더는 디바이스의 하드웨어를 초기화하고, 부팅 가능한 운영 체제 이미지를 찾아서 실행시킵니다. 부트로더는 ROM에 저장된 펌웨어(firmware)로 구성되며, 이를 이용하여 하드웨어를 초기화하고, 운영 체제를 로드하는 역할을 수행합니다. 2. 부트로더가 실행되면, 운영 체제 커널(kernel)이 로드됩니다. 커널은 디바이스의 하드웨어를 제어하고, 운영 체제의 기본 기능을 제공합니다. 부트로더가 실행되면, 이어서 운영 체제 커널(kernel)이 로드됩니다. 커널은 디바이스의 하드웨어를 제어하고, 운영 ..

Frida 문법
이론/[Android 이론] 2023. 3. 17. 01:04

1. Java.perform 현재 스레드가 가상머신에 연결되었는지 확인하고 function을 호출한다. Java.perform(function(){ }); 2. Java.use(ClassName) - 메소드 후킹 시 사용한다. - Method가 static으로 설정이 되어 있을 경우 프로그램 실행 시 메모리가 올라오기 때문에 instance가 필요 없다 . 이럴 경우에는 java.use를 이용 var myClass = Java.use(com.mypackage.name.class) //앱에서 사용하는 클래스와 연동되는 myclass를 정의한다. var myClassInstance = myclass.$new(); //myClass를 통해 객체 인스턴스 생성 및 정의를 한다. var result = myCla..

article thumbnail
JNI, NDK
이론/[Android 이론] 2023. 3. 12. 20:34

JNI(Java Native Interface) JNI(Java Native Interface)는 자바 프로그램에서 C/C++ 언어로 작성된 라이브러리나 응용 프로그램을 사용할 수 있도록 하는 프로그래밍 인터페이스입니다. 호환성 문제를 해결하기 위해 JNI는 자바와 C/C++ 사이의 인터페이스를 제공합니다. --> 자바로 개발한 소프트웨어는 유연한 플랫폼 활용도를 유지하면서도 자바만으로는 구현하기 어려운 것들을 구현할 수 있습니다. NDK(Native Development Kit) NDK(Native Development Kit)는 안드로이드 앱 개발을 위한 도구로, C/C++ 라이브러리를 안드로이드 앱에 포함시키고 사용할 수 있도록 지원하는 도구입니다. 안드로이드 앱은 기본적으로 자바나 코틀린 등의 J..

article thumbnail
JAVA, Kotlin 특징 및 차이점
이론/[Android 이론] 2023. 3. 12. 20:25

자바와 코틀린은 모두 프로그래밍 언어이며, 서로 비슷한 측면도 있지만 목적과 특징에서 차이가 있습니다. 자바(JAVA) 자바는 초기에 웹 개발을 위해 개발된 언어로, 이후 안드로이드 애플리케이션 개발에도 많이 사용됩니다. 자바의 주요 목적은 "Write once, run anywhere"라는 슬로건을 갖고 있습니다. 즉, 한 번 작성한 코드를 여러 운영체제에서 실행할 수 있도록 만들기 위한 목적을 가지고 있습니다. 자바(JAVA) 특징 - 객체 지향 언어 자바는 객체 지향 언어로, 클래스와 객체를 중심으로 프로그래밍을 수행합니다. 객체 지향 프로그래밍은 코드의 재사용성과 유지보수성을 높여줍니다. - 플랫폼 독립성 자바는 JVM(Java Virtual Machine)을 사용하여 운영체제에 상관없이 실행 가..

article thumbnail
디컴파일(Decompile)과 APK 디컴파일
이론/[Android 이론] 2023. 3. 12. 20:13

디컴파일(Decompile) - 컴퓨터 프로그램을 이루는 소스 코드나 실행 파일 등을 원래의 형태로 분해하여 해석할 수 있는 형태로 변환하는 것을 말합니다. - 디컴파일을 수행하면, 소스 코드나 리소스 파일 등이 추출되어 이를 분석하거나 수정할 수 있습니다. APK 디컴파일 안드로이드 애플리케이션을 디컴파일하여 APK 파일에서 추출된 소스 코드와 리소스 파일 등을 살펴보는 것입니다. 이를 통해, 애플리케이션의 내부 작동 방식을 이해하고, 커스터마이징할 수 있습니다. 예를 들어, 애플리케이션에서 사용되는 문자열을 다른 언어로 번역하거나, 애플리케이션의 아이콘 등의 리소스를 변경할 수 있습니다. APK 디컴파일의 원리 1. APK 파일 압축 해제 APK 파일은 일반적으로 ZIP 파일 형태로 압축되어 있습니다..

article thumbnail
apktool이란 ?
이론/[Android 이론] 2023. 3. 12. 20:03

apktool 안드로이드 애플리케이션을 디컴파일(decompile)하여 소스 코드와 리소스 파일을 추출하는 오픈 소스 도구입니다. 안드로이드 애플리케이션은 APK(Android Package) 파일 형태로 배포되며, 이 파일은 일반적으로 애플리케이션의 소스 코드, 리소스 파일, 메타 데이터 등을 포함합니다. apktool은 이 APK 파일을 디컴파일하여 해당 애플리케이션의 소스 코드와 리소스 파일을 추출할 수 있습니다. 이를 통해, 개발자는 다른 애플리케이션의 소스 코드나 리소스를 분석하거나 수정하여 커스터마이징할 수 있습니다. 또한, apktool은 애플리케이션의 리소스 파일을 수정하여 다른 언어로 번역된 앱을 만들거나, 앱 아이콘 등의 이미지를 변경할 수도 있습니다.

article thumbnail
안드로이드 4대 구성요소
이론/[Android 이론] 2023. 3. 12. 19:46

1. 액티비티(Activity): 사용자 인터페이스를 담당하는 구성요소로서, 앱 화면을 담당하며, 버튼, 텍스트박스, 이미지뷰 등의 위젯을 포함할 수 있습니다. 2. 서비스(Service): 백그라운드에서 실행되며, 앱이 종료되어도 계속 실행되며 백그라운드 작업이나 다른 앱과의 통신 등을 수행할 수 있습니다. 3. 방송 수신자(Broadcast Receiver): 안드로이드 시스템에서 발생하는 이벤트를 수신하여 해당 이벤트를 처리하는 역할을 합니다. 4. 콘텐트 제공자(Content Provider): 앱에서 사용하는 데이터를 관리하고 다른 앱에게 데이터를 제공하는 역할을 합니다. 예를 들어, 연락처나 사진첩과 같은 앱의 데이터를 다른 앱에서 사용하고자 할 때 콘텐트 제공자를 통해 액세스할 수 있습니다...

article thumbnail
안드로이드란 ?
이론/[Android 이론] 2023. 3. 12. 19:41

안드로이드 모바일 OS (Operating System) 종류 중 하나이자, 다양한 서비스를 제공하는 플랫폼이다 안드로이드는 구글에서 만든 스마트폰용 운영체제입니다. 운영체제와 미들웨어, 사용자 인터페이스, 애플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공하며 다양한 애플리케이션을 만들어 설치하면 실행될 수 있도록 구성된 애플리케이션 플랫폼이라고도 볼 수 있습니다. 많은 사람들이 iOS(애플 운영체제)에 견주어 스마트폰과 태블릿으로 안드로이드 운영체제를 사용하면서, 안드로이드는 세계 모바일 시장에서 가장 성공한 OS라는 평가를 받고 있습니다. 안드로이드는 리눅스(Linux)를 기반으로 제작되었고 언어는 자바를 사용합니다. 안드로이드 동작 방식 및 구조 안드로이드는 리눅스 커널 위에서 동작하며,..

profile on loading

Loading...

검색 태그