[모바일] frida ? 알아볼게요
frida❓
Frida는 안드로이드, iOS, QNX 등 모바일 플랫폼에서 사용할 수 있는 파이썬 라이브러리이다.
Frida는 JavaScript를 사용하여 모바일 앱의 메모리, 코드, 시스템 호출 등을 제어할 수 있으며 이를 통해 앱의 동작을 추적하고, 버그를 찾고, 기능을 추가하거나 수정할 수 있다.
Frida의 핵심은 C로 작성되었으며 QuickJS를 대상 프로세스에 주입하고. 여기서 JS는 메모리에 대한 전체 액세스, 후킹 기능 및 프로세스 내부의 기본 기능 호출까지 실행하면서 실행된다. 앱과 대상 프로세스 내에서 실행되는 JS 간의 통신에 사용되는 양방향 통신 채널이 있는데 Python과 JS를 사용하면 위험 없는 API로 빠르게 진행할 수 있다.
Frida는 JS에서 오류를 쉽게 포착하고 충돌 대신 예외를 제공하는 데 도움을 줄 수 있다.
C에서 Frida를 직접 사용할 수 있으며 이 C 코어 위에 Node.js , Python , Swift , .NET , Qml , Go 등과 같은 여러 언어 바인딩이 있기에 다른 언어에 대한 추가 바인딩을 구축하는 것은 매우 쉽다.
frida 사용
Frida를 사용하려면 다음과 같은 단계를 거쳐야 한다.
- Frida를 설치
- Frida 서버를 대상 기기에 설치
- Frida를 사용하여 대상 앱을 분석
frida 기능
Frida를 사용하면 다음과 같은 작업을 수행할 수 있다.
- 앱의 동작을 추적 Frida를 사용하여 앱의 메모리, 코드, 시스템 호출 등을 분석할 수 있고 이를 통해 앱이 어떻게 동작하는지 이해하고, 버그를 찾을 수 있다.
- 앱의 기능을 조작 Frida를 사용하여 앱의 기능을 추가하거나 수정할 수 있고 예를 들어, 앱의 로그를 기록하거나, 앱의 데이터를 수정할 수 있다.
- 앱의 버그를 찾는다. Frida를 사용하여 앱의 메모리, 코드, 시스템 호출 등을 분석하여 버그를 찾을 수 있다.
- 앱의 기능을 추가한다. Frida를 사용하여 앱에 새로운 기능을 추가할 수 있습니다. 예를 들어, 앱에 로그를 기록하거나, 앱의 데이터를 수정할 수 있다.
- 앱의 보안을 강화한다. Frida를 사용하여 앱의 취약점을 찾고, 이를 보완할 수 있다
- 메모리 액세스: Frida는 대상 앱의 메모리에 액세스할 수 있으며 이를 통해 앱의 데이터를 수정하거나, 앱의 동작을 조작할 수 있다.
- 코드 수정: Frida는 대상 앱의 코드를 수정할 수 있으며 이를 통해 앱의 버그를 수정하거나, 앱의 기능을 추가할 수 있다.
- 시스템 호출: Frida는 대상 앱에서 시스템 호출을 수행할 수 있으며이를 통해 앱의 하드웨어와 소프트웨어를 제어할 수 있다.
frida javascript
frida 는 javascript 뿐 아니라 c와 같은 다른 언어로 시스템을 추적 및 조작할 수 있지만 javascript를 사용하는 이유는 다음과 같다.
- JavaScript는 다양한 플랫폼에서 사용할 수 있는 언어이다. Frida는 안드로이드뿐만 아니라 Windows, macOS, Linux, iOS, QNX 등 다양한 플랫폼에서 사용할 수 있으며 Frida는 JavaScript를 사용하여 모든 플랫폼에서 동일한 코드를 사용할 수 있다.
- JavaScript는 배우기 쉽고 사용하기 쉽다. JavaScript는 프로그래밍 경험이 없는 사람도 쉽게 배울 수 있는 언어이기 때문에 Frida는 JavaScript를 사용하여 누구나 쉽게 후킹을 할 수 있다.