Web,Mobile/Tool

AOS frida 패치 - Anti Frida 우회

LimeLee 2025. 5. 12. 18:37

모바일 앱 진단을 하기 위해선 보안 솔루션 우회가 필요한 경우도 있다.

규모가 크거나 난독화가 되어 있는 앱들은 정적 분석만으로 보기 힘들어서 동적 분석도 겸한다. 이 때 자주 사용하는 게 frida

frida로 메모리 덤프도 뜨고 로직도 우회하고 별 걸 다하니까 요즘에는 Anti Frida가 적용된 앱들이 많아졌다.

 

결국 이것도 우회를 할 수 있다면 할 수 있는데 문제는 날이 갈수록 탐지 로직들이 괴랄해진다.

에러 메세지도 안 띄워주고 칼같이 죽여버리는가하면 동적으로 클래스를 호출하기도 하고 .so파일이 앱 실행할 때 생성되고 지워져 라이브러리 분석을 하기 어렵게 하기도 한다.

 

frida 탐지의 기본적인 탐지 원리

https://hackcatml.tistory.com/96

 

Frida Detection Bypass(Android)

최근 들어 프리다를 탐지하여 앱을 종료시키는 솔루션들이 꽤 많습니다. 이렇게 되면, 진단하는 입장에서는 애를 먹을 수 밖에 없습니다. 그래서, AOS에서 몇몇 기본적인 프리다 탐지원리 및 우

hackcatml.tistory.com

 

frida를 앱에 attach 하게 되면 앱에 여러 흔적이 남는데 /proc/<pid>/ 하위의 파일들을 fopen 함수나 java.io.File 클래스로 읽어오거나 혹은 그 외의 방법을 이용해서 그 흔적들을 확인한다는 것. 

탐지 로직이 괴랄해서 무슨 Native API를 후킹해야하는지 몇 개의 탐지로직을 제껴야하는지 도저히 파악이 안되니 그냥 frida라는 문자열이 찍히지 않으면 되겠구나 싶었다.

 

https://github.com/AsenOsen/frida-stealth

 

GitHub - AsenOsen/frida-stealth: Stealth patch for Frida, stealth knowledge collection

Stealth patch for Frida, stealth knowledge collection - AsenOsen/frida-stealth

github.com

 

https://github.com/JsHookApp/Frida-Patchs

 

GitHub - JsHookApp/Frida-Patchs: Simple frida anti-detection patch

Simple frida anti-detection patch. Contribute to JsHookApp/Frida-Patchs development by creating an account on GitHub.

github.com

 

위의 두 레포를 참고했다. 위 레포에서 추가로 더 수정을 해서 빌드를 한다.

frida-core와 gum에서 frida, gmain 등 탐지 문자열을 다 변경했다.

빌드를 하면 몇가지 파일이 생성되는데 frida-server는 실행은 되지만 심볼 명 등이 변경되서 그런지 python-frida에서 앱에 attach를 못한다. 
python-frida도 패치된 frida-core로 빌드해주면 되는데 그냥 대안으로 frida-inject 를 이용했다. spawn 기능은 없지만 Termux 등을 통해 단말기 내부에서 attach가 가능하니 USB 디버깅 탐지도 그냥 옵션을 끄는 것으로 우회 가능하다.

 

frida가 안 죽으니 마음껏 후킹 할 수 있다.