반응형

최근 Frida를 이용한 안드로이드 앱 후킹에 대해 공부를 하게되었다.

NOX를 사용하여 안드로이드 에뮬레이터 환경을 구성하여 앱을 후킹하였다.

과정 중심적으로 포스팅을 진행해보겠다.


상대방의 허락을 받지않고 앱을 후킹하는 행위는 범죄입니다. 해당 포스팅은 공부 목적으로 안전한 환경에서 진행하였으며 본 실습을 따라하여 일어나는 행동에 책임을 지지않습니다.


1. 환경 구성

0. 환경 : Windows 10, Frida, NOX 6.3, Cmder, Python3.5(혹은 3.7)


1. Cmder 설치 : https://cmder.net/

  • 파이썬 3.5버전이 Frida 호환성 가장 좋음(python -V)


2. NOX 설치 : https://kr.bignox.com/



3. Frida-server 다운 : https://github.com/frida/frida/releases

  • frida-server로 시작하며 armhf, x86등 버전 잘확인하고 받을것
  • NOX론 기본상태면 [frida-server-12.7.5-android-x86.xz] 다운하면 됨


4. NOX 루팅환경 세팅

  • 시스템 설정 - 기본 설정 - ROOT 켜기



5. 개발자 모드 활성화

  • 모바일 기기 - 설정 - 태블릿(핸드폰) 정보 - 빌드번호 7번정도 탭



6. USB 디버깅 활성화

  • 설정 - 개발자 옵션(추가됨) - 디버깅탭 - USB 디버깅 ON



7. Cmder에서 Frida 설치

  • pip install frida-tools



8. 가상장치 연결

  • adb connect 127.0.0.1:62001
  • adb devices로 연결 확인 가능



9. Firda-server 다운로드 및 이름 변경

  • frida-server-12.7.4-android-x86.xz 압축풀고 이름 frida-server로 변경(편리 목적)



10. Frida-server 모바일기기에 넣기

  • Cmder에서 adb push [frida-server파일경로]\frida-server /data/local/tmp
  • 연결된 장치의 tmp폴더에 서버파일을 넣어줌


11. Frida-server 실행

  • 이어서 adb shell로 모바일기기로 접속
  • cd /data/local/tmp 이동
  • chmod 755 frida-server로 실행권한 부여
  • ./frida-server & 로 서버 백그라운드 실행
  • ps | grep server로 구동 확인 (./frida-server 존재하면 OK)



12.연결된 장치의 프로세스 목록 확인 (오류시 파이썬버전 확인 - 3.6은 안되었음)

  • Ctrl+C 통해 shell 빠져나오고 frida-ps -U



13. NOX에서 앱실행해보고 frida-ps로 PID 확인



2. 실습

1. 앱 정적 후킹 가능

  • frida -U [PID]
  • frida -U -f [File Name] -l java_hook.js --no-pause
  • frida-trace 등
  • 다양한 방법, 명령어로 후킹 가능 > 분석먼저하기



2. 분석

  • 테스트할 apk 다운
  • dex2jar로 jar로 변환
  • jdx와 같은 툴로 동적분석
  • 후킹시도할 클래스, 함수 확인



3. 파이썬으로 frida를 import해 코딩

코드는 자바스크립트로 작성되게 된다. 큰 기본 형태는 위와 같고 코드에 대해 간단히 설명하도록 하겠다.

(1) frida와 sys 모듈을 불러온다.

(2) process = frida.get_usb_device().attach("attach할 PID 명") 로 원하는 앱에 붙어 프로세스를 지정한다.

(3) script = process.create_script(test)로 프로세스에 test 스크립트를 생성한다.

(4) script.load()로 스크립트를 동작한다.

(5) 스크립트는 Java.perform() 인자로 넘겨준다.

(6) Java.use("후킹할 Class의 Method")

(7) 후킹할 함수.implementation 해주고 안에 함수 몸체를 작성해준다.

 

 

4. python [파일명].py로 API 후킹 가능


*포스팅을 계속해서 보완해 나갈 예정이다.

반응형

+ Recent posts