공부/안드로이드 12

Frida-Labs 0x2

2024.05.13 - [공부/안드로이드] - Frida-Labs 0x1  이전과 똑같이 MainActivity로 가면 저 메소드가 있다.a의 값을 4919로 만들면 flag를 얻을 수 있을 것 같다는 느낌이 든다. 하지만 우리는 a를 입력할 수 있는 곳이 어디에도 없는데??!그러니까 frida를 사용해야한다.. 파이썬으로 작성한 스크립트는 앱이 실행된 이후, js 스크립트는 앱이 실행되기 전 후킹이 된다는 차이점이 있다.  Java.perform(function() { let MainActivity = Java.use("com.ad2001.frida0x2.MainActivity"); MainActivity.get_flag(4919);});굉장히 간단한 코드이다,플래그를 얻었다. ※ 나는 아직..

Frida-Labs 0x1

2023.11.24 - [공부/안드로이드] - frida 설치 frida 설치frida란.. frida를 설치해봅시다 pip install frida pip install frida frida-tools frida --version 설치한 frida 버전을 확인한다. getprop ro.product.cpu.abi 에뮬레이터의 비트를 확인한다. 설치한 frida 버전 & 에뮬레이터의peraspera.tistory.comfrida 설치는 위의 글을 참고하면 될 것 같다. https://github.com/DERE-ad2001/Frida-Labs GitHub - DERE-ad2001/Frida-Labs: The repo contains a series of challenges for learning Frid..

안드로이드 생명주기

액티비티는 생명주기를 갖고 있습니다. (액티비티는 단순하게 화면이라고 생각할 수 있습니다. 카카오톡을 실행할 때 맨 처음 뜨는 로고가 박힌 화면, 친구 창 등등이 모두 하나의 액티비티에요) 유튜브를 보다가 전화를 받은 후 다시 유튜브를 볼 때, 영상을 이어서 시청할 수 있습니다. 단순히 화면의 입장에서 생각하면 유튜브 - 전화 - 유튜브 인데, 어떻게 이어서 시청이 가능할까요? 이밖에도, 앱을 사용하지 않을 때 시스템 리소스가 소비되는 것을 막거나, 가로/세로 회전하는 경우 비정상 종료가 되는 것을 막기 위해서 등 안드로이드 생명주기는 개발에서 꽤나 중요한 요소입니다. onCreate() 액티비티를 생성할 때 실행되는 메소드으로, 필수적으로 구현해야 합니다. 액티비티가 생성되면 생성됨 상태이지만, onC..

안드로이드의 저장공간에 대해

안드로이드 취약점 분석을 하며 SharedPreferences에 대해 알게 되었고, 안드로이드는 어떻게 저장 공간이 이루어져 있는 지 궁금해 오늘 공부했다. 내가 이해한 것을 바탕으로 이를 정리해보겠다. 안드로이드는 내부 저장소(Internal Storage)와 외부 저장소(External Storage)를 제공한다. Internal Storage (시스템에 의해서 보호됨) External Storage (공유될 수 있음) Built in non-removable storage (내장 메모리에 박혀있음) SD card 빨간색 → 내장 메모리, 파란색 → 외장 메모리 내부 저장소 다른 앱의 공간에 접근이 불가능한 샌드박스 공간 앱 삭제 시 앱 개별공간에 존재하는 앱 개별 파일들이 모두 제거 (ex) Sha..

frida 설치

frida란.. frida를 설치해봅시다 pip install frida pip install frida frida-tools frida --version 설치한 frida 버전을 확인한다. getprop ro.product.cpu.abi 에뮬레이터의 비트를 확인한다. 설치한 frida 버전 & 에뮬레이터의 비트와 맞는 파일을 다운 받고, 압축 풀기를 진행한다. adb push frida-server-16.1.3-android-x86_64 /data/local/tmp 다운 받은 파일을 옮겨준다. adb shell cd /data/local/tmp ls -al chmod 777 frida-server-16.1.8-android-x86_64 frida-server-16.1.3-android-x86_64 파일..

Magisk 루팅 (삽질2)

2023.10.26 - [공부/안드로이드] - xposed 사용 (삽질1) xposed 사용 (삽질1) xposed를 사용해봅시다.. xposed는 루팅 후 다양한 기능들을 사용할 수 있게 해줍니다. 일단 사용해 본 후 설명을 추가하겠습니다. https://hojat-sajadinia.medium.com/unleashing-the-power-of-avds-rooting-and-installing-e peraspera.tistory.com (윗 글에서 이어지는 포스팅입니다.) (실패한 과정을 포스팅했습니다.) Xposed를 사용하려면 Magisk 루팅이 필요하다고 합니다. 그래서 Magisk 루팅을 계속 시도하고 있는데, 꽤나 복잡하네요 OEM unlocking을 개발자 모드에서 아무리 찾아봐도 안보이는데..

xposed 사용 (삽질1)

xposed를 사용해봅시다.. xposed는 루팅 후 다양한 기능들을 사용할 수 있게 해줍니다. 일단 사용해 본 후 설명을 추가하겠습니다. https://hojat-sajadinia.medium.com/unleashing-the-power-of-avds-rooting-and-installing-exposed-framework-for-enhanced-penetration-555a0ab00b95 Unleashing the Power of AVDs: Rooting and Installing Xposed Framework for Enhanced Penetration… In the realm of penetration testing, having a reliable and versatile testing envi..

웹뷰 만들기

을 AndroidManifest.xml 파일에 추가한다. 인터넷 권한 추가 권한 추가 안하는 경우 네이버를 웹뷰로 띄웠다. 출처 https://web-inf.tistory.com/34 WebView 안드로이드 웹뷰 생성하기 안녕하세요. 오늘은 하이브리드 앱으로 많이 사용하고있는 웹뷰를 제작해보도록 하겠습니다. 웹뷰란? 간단하게 설명을 드리겠습니다. 어플리케이션 화면상에 내가 만든 웹페이지 혹은 내가 띄 web-inf.tistory.com

JNI 이용해 출력하기

2023.09.10 - [공부/안드로이드] - JNI 사용하기 JNI 사용하기 JNI(Java Native Interface)란? (내가 이해한 바에 따르면) 자바를 사용하면 운영체제 상관없는 개발이 가능하다. 하지만, 운영체제의 모든 기능을 JVM이 담지 못하기 때문에 몇몇 기능은 해결이 되지 않 peraspera.tistory.com 윗 글에서 조금 수정해 진행했다. 나는 calculator.cpp 에서 return값으로 'HELLO WORLD'를 주었음에도 왜 TEST가 출력되는 지 궁금했다. → MainActivity.java의 역할을 생각해보면 된다.