# 개요
모바일 앱은 루팅 탐지 우회 + 프리다 탐지 우회 + SSL 피닝 우회. 이 3가지 세트 준비가 끝나야 분석을 할 수 있다.
프리다랑 로그캣 이용해서 어디서 루팅 탐지가 되는지 로직 찾고.. 또 찾고.. 또 찾은 뒤엔 프리다 탐지 로직 찾고... 다른 솔루션에서 탐지하면 이것도 찾고.. 시간 소모가 커서 방법을 찾다가 StrongR-Frida 프로젝트를 발견했다.
# 각 탐지 우회 세트
루팅 탐지: KernelSU + susfs 모듈 세트 (차후 포스트 예정)
프리다: StringR-Frida
SSL 피닝 우회: 사용 중인 HTTP 라이브러리 확인해서(예: OKhttp3) 프리다 스크립트 적용. 또는 직접 분석해야 하는 경우도 있음.
# 프로젝트 소개 (undectected-frida는 strongR-frida 개선 버전이므로, 이를 사용하는 것을 추천함)
https://github.com/zer0def/undetected-frida
GitHub - zer0def/undetected-frida: Non-authoritatively making Frida less (not un-!)detectable by applying some symptomatic patch
Non-authoritatively making Frida less (not un-!)detectable by applying some symptomatic patches. Melded with CrackerCat/strongR-frida-android, hzzheyang/strongR-frida-android and Ylarod/Florida. No...
github.com
https://github.com/hzzheyang/strongR-frida-android
GitHub - hzzheyang/strongR-frida-android: An anti detection version frida-server for android.
An anti detection version frida-server for android. - hzzheyang/strongR-frida-android
github.com
해당 프로젝트는 프리다 사용 시 탐지할 수 있는 키워드를 난수로 변경 또는 base64 인코딩한 뒤 빌드한다.
예를 들어, 프리다 서버 실행 시 현재 디렉토리에 re.frida.server 라는 디렉토리를 만드는데, 이 이름을 null로 줘서 탐지 로직에 걸리지 않게 한다.

빌드 방법은 워크플로우가 있어서 github action으로 해도 되지만, release에 이미 있으니 이를 사용하겠다.

릴리즈 버전은 16.1.11을 사용한다. (16.6부터 17버전까지는 에러 발생하던데.. 이유는 모른다. 아마 프리다 업데이트 과정에서 달라진게 있는데, 패치할 때 문제 발생한 거 같다.)

magisk용과 zygisk 용을 이용해서 프리다 사용이 가능하지만, 아직까진 일반 서버로만 돌려도 문제가 없기에 일반 서버로 돌리겠다. (빨간 박스 내 android-(아키텍처 타입) 이 있다. 갤럭시는 웬만하면 arm64니 이를 사용하고, 나머진 구글링하길 바란다.)
* 17.6.2 버전으로 되어 있지만, 무시하고 16.1.11 버전 다운

release를 보면 anti-anti-frida.py 파일이 있다. 코드를 보면 lief 라이브러리를 이용해 바이너리 파일을 연 다음 frida 관련 키워드를 랜덤하게 바꾼다. (워크플로우에 하도록 포함이 되어 있는데, 적용 안되어 있더라. 하길 바란다.)
* 17.6.2 버전으로 되어 있지만, 무시하고 16.1.11 버전 다운바람.


adb push로 tmp 디렉토리에 프리다 서버 바이너리 파일을 넣은 뒤, 실행 권한을 주자. 그리고 프리다 서버를 실행시키는데, 포트 번호를 1234로 변경하여 실행한다.

프리다 실행 쪽에 조금 문제가 있는데, -l 0.0.0.0 1234가 아니라 0.0.0.0:1234 이다.

adb forward를 통해서 내쪽의 27042 포트와 스마트폰 내 1234 포트를 포워딩한다. 이를 하는 이유은 조금 복잡하긴 하다.
이유.
1. 프리다 탐지에서 27042(프리다 기본 포트)를 탐지한다. 따라서 프리다 서버 실행 시 포트 번호를 1234로 바꿨다.
2. 프리다 클라이언트를 이용해 USB에 연결된 디바이스로 통신할 때(-U 옵션) 기본 값으로 27042 포트로 통신한다.
3. 이를 바꾸는 건 불가능하다. 따라서 내쪽에 27042 포트를 오픈한 다음 스마트폰 내 1234 포트와 연결해 포워딩한다.

정상적으로 동작한다.

하나 깜빡한게 있는데, frida라는 파일명도 탐지할 수 있으니, 이 파일명도 랜덤하게 바꿔주자.

드림핵에서 제공한 앱으로 프리다 탐지 여부를 확인하면 어떠한 것도 탐지되지 않은걸 확인할 수 있다.


# 후기
패치된 서버 이용한다고 모두 다 우회 가능한건 아니다. 그럼에도 불구하고 70~80% 앱 우회가 가능하다면 충분히 사용할만한 가치가 있다고 본다.
# 프리다 탐지 로직 참고자료
ANDITER를 활용한 안드로이드 위협 탐지 및 우회 방안 : PART 3 (프리다, 피닝)
01. 프리다(Frida) 개요 및 우회방안 1) 프리다의 개요 ‘ANDITER를 활용한 안드로이드 위협 탐지 및 우회 방안 : PART 2’에서 동적 분석에 사용되는 디버그와 애플리케이션 분석 환경인 에뮬레이터의
www.igloo.co.kr
https://dreamhack.io/lecture/paths/mobile-hacking-android
프리다(Frida)를 활용한 안드로이드 앱 모의해킹 입문 | 학습 | Dreamhack
Frida로 Android 앱을 분석하며 탐지 우회, TLS Pinning 우회 등 실전 모바일 해킹 역량을 키워보세요.
dreamhack.io
'기타' 카테고리의 다른 글
| PentAGI 프로젝트 사용 후기 - 1 (0) | 2026.05.19 |
|---|---|
| 논문 사이트 모음(정보보안) (0) | 2026.02.12 |
| 에베레스트 베이스 캠프 솔로 트래킹 후기 (0) | 2025.12.31 |
| 코레일 자동 예매 스크립트 (0) | 2025.12.24 |
| OWASP 서울 커뮤니티 세미나 요약(2025.4.30) (0) | 2025.05.01 |