Android

Mobile

Android 기기에 Frida 설치하는 방법

안드로이드 기기에서 frida를 실행하기위해서는 2가지 조건을 만족해야한다. ○ host PC에 frida 설치○ 안드로이드 기기 내에 frida-server 설치 Install○ host PC - frida 설치frida 설치pip install frida frida-toolshost PC에서 frida 설치방법은 매우 간단하다. pip를 이용해 frida python 라이브러리를 설치해주면 끝이다. frida 버전 확인$ pip show fridaName: fridaVersion: 16.0.2Summary: Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchersHome-page: https:/..

Mobile

[OWASP-MSTG] UnCrackable-Level3

문제분석UnCrackable-Level2에 이어 Level3를 풀어보자. UnCrackable-Level3.apk를 다운받고 [Android Studio Emulator]를 이용해서 App을 분석했다. 탐지 우회frida로 앱을 실행하면 프로세스가 강제종료되는 것을 확인할 수 있다. 프로세스가 종료되는 이유를 파악하기위해 apk를 디컴파일하고 코드를 확인했다. MainActivity의 oncreate()에서 처음에 verifyLibs()를 실행하는 것을 파악할 수 있었고 이 함수 내부에서 프로세스 종료와 관련된 로직이 있을 것이라고 생각했다.  ○ verifyLibs()private void verifyLibs() { this.crc = new HashMap(); this.crc..

Mobile

Install Super-Analyzer

About Super-AnalyzerSuper-Aalyzer is a tool that automatically diagnoses and analyzes Android vulnerabilities for apk. https://github.com/SUPERAndroidAnalyzer/super GitHub - SUPERAndroidAnalyzer/super: Secure, Unified, Powerful and Extensible Rust Android AnalyzerSecure, Unified, Powerful and Extensible Rust Android Analyzer - GitHub - SUPERAndroidAnalyzer/super: Secure, Unified, Powerful and Ex..

Mobile

[OWASP-MSTG] UnCrackable-Level2

UnCrackable-Level1에 이어 Level2를 풀어보자. UnCrackable-Level2.apk를 다운받고 [NOX 플레이어]로 App을 실행했다. 문제풀이 App을 실행하면 디버깅을 탐지하는 것을 확인할 수 있다. 어떤 방식으로 디버깅을 탐지하는지 확인하기 위해서 코드를 JEB로 분석했다. ○ MainActivity - onCreate()if((b.a()) || (b.b()) || (b.c())) { this.a("Root detected!");}if(a.a(this.getApplicationContext())) { this.a("App is debuggable!");} onCreate()의 if를 보면 b.a()와 a.a()를 실행하고 결과에 따라 루팅과 디버깅을 탐지하는 것을 ..

Mobile

[OWASP-MSTG] UnCrackable-Level1

문제풀이 App을 실행하면, "Root detected!"라고 뜨는 것을 확인할 수 있다. [OK] 버튼을 누르면 App이 종료된다. 실제 APK 리버싱을 해보면 루팅폰에서 App에 접근하는 것을 [그림 1]과 같이 감지해서 사전차단하는 경우를 많이 볼 수 있다. 이런 유형을 우회하는 방법에 대해 공부하는 의도인 것 같다. APK 코드를 파악하기 위해서 JEB라는 디컴파일 툴을 이용해서 코드를 분석했다.(JEB가 없는 독자는 JADX를 사용하면된다.) ○ MainActivity → onCreate()@Override // android.app.Activityprotected void onCreate(Bundle arg2) { if((c.a()) || (c.b()) || (c.c())) { ..

keyme
'Android' 태그의 글 목록