728x90
반응형
목차
1. 프리다(Frida)란?
2. 프리다의 주요 기능
3. 프리다 환경 구축
  - 녹스(Nox) 앱플레이어 설치

-
프리다(Frida) 주요 기능 이해
프리다 환경 구축
프리다 기능 살펴보기
프리다 기본 문법
프리다 CLI 활용
자바스크립트 파일 사용
파이썬 바인딩 이해
프리다 챌린지로 연습해보기
프리다 실무 활용

1. 프리다(Frida)란?

  • Ole가 개발한 DBI* 프레임워크
  • 프로세스를 모니터/디버깅하는 데 사용할 수 있는 툴킷
  • 다양한 플랫폼에서 프로세스에 대한 인젝션이 가능, 확장성이 큼
  • 자바스크립트를 Native App에 삽입 가능

* DBI: Dynamic Binary Instrumentation, 앱이 실행 중인 상태에서 코드 명령어를 삽입해 동적으로 바이너리 프로세스를 추적·분석·디버깅하는 도구


2. 프리다의 주요 기능

  • 프리다를 기반으로 사용하는 도구: AppMon*, Needle**
  • 함수 후킹(특정 함수에 연결하여 반환 값 변경 및 함수 재작성 가능)
  • 실행 중인 애플리케이션의 디버깅 수행 가능(실행 중인 함수를 추적하여 함수 재작성 가능 - 로그 출력, 내부 로직 변경 등)
  • 힙 메모리 내 객체 인스턴스 검색 및 사용 가능(프리다 기본 문법인 java.choose라는 함수를 사용하여 손쉽게 힙을 스캔)
  • 실시간 트래픽 스니핑 또는 암호 해독(암호화되기 전의 값을 변조)
  • 탈옥 또는 루팅되지 않은 단말기에서도 사용 가능(제한적이므로 추천하지 않음)

* AppMon: 앱의 시스템 API 호출을 모니터링하고 변경하는 자동화된 프레임워크(macOS, iOS, Android OS) - system 및 API 호출을 모니터링할 수 있음

* Needle: iOS 보안 테스팅 프레임워크(안드로이드의 드로저와 유사)


3. 프리다 환경 구축

필요 도구: 녹스 앱플레이어(Nox), 아나콘다(파이썬), 프리다, 프리다 서버(Android)

녹스(Nox) 앱플레이어 설치

무료 안드로이드 에뮬레이터, 실제 디바이스와 유사한 환경에서 진단이 가능하며, 멀티 앱 플레이어 기능으로 다수 앱 동시 진단 가능

안드로이드 애플리케이션 취약점 분석 및 악성코드 분석에 주로 사용됨

우측 상단의 시스템 설정

성능 > 해상도 설정: (기본) 1600x900 설정되어 있음, (변경) 960x540

성능 > 그래픽 모드: (기본) 호환+모드, (변경) 기본모드(DirectX)

일반 > 시작항목: ROOT켜기 체크 (안드로이드 실제 단말기에서 루팅한 것과 동일한 환경을 만들어주는 것)

인터페이스 > 선택적으로 설정

모든 설치가 완료되면 Nox ADB를 환경변수 설정함

ADB(Android Debug Bridge): 안드로이드를 위한 디버깅 툴, 안드로이드 애뮬레이터와 통신 가능

설정 위치: C:\Program Files (x86)\Nox\bin\nox_adb.exe

 

윈도우 '시스템 환경 변수 편집' 내 시스템 속성 - 고급 - 환경 변수 > 시스템 변수(Path) 설정 클릭 후 편집

 > 새로 만들기(N) 후 위의 설정 위치(bin 까지) 추가 후 설정

명령 프롬프트(cmd)에서 nox_adb 입력 시 해당 정보 출력되는 정보 확인(환경변수 설정이 잘 이루어짐)

연결된 nox_adb 쉘 접속

-s <specific device> - directs command to the device or emulator with the given serial number or qualifier. Overrides ANDROID_SERIAL environment variable.
nox_adb -s 127.0.0.1:62001 shell

 

728x90
728x90

+ Recent posts