모바일 애플리케이션을 분석하려면 가장 먼저 USB Debugging 설정을 활성화해야 한다.
이유는 여러 가지가 있겠지만, 가장 핵심적인 이유는 Frida와 같은 필수 도구를 사용하기 위함이다.
Frida는 앱의 내부 동작을 분석하고 디컴파일된 코드에 접근할 수 있도록 해주는 강력한 도구인데
문제는 간혹 애플리케이션이 USB Debugging 감지 로직을 통해 이를 탐지하고
앱 실행을 중단하는 경우가 존재한다.
다행히도 대부분의 USB Debugging 감지 로직은 Frida를 이용해 우회할 수 있다.
Java 또는 Native 레벨에서 동작하는 탐지 코드를 찾아내고,
그 메소드나 함수에 후킹(hooking)을 걸어 감지 로직을 우회할 수 있다.
하지만 여기서 다음과 같은 문제가 발생할 수 있다.
앱의 Java 코드나 Native 코드가 암호화되어 있다면???
코드가 암호화된 상태에서는 감지 로직이 어디에 숨겨져 있는지 찾아내기가 매우 어렵다.
암호화된 상태의 코드를 분석하려면,
실행 중인 앱에서 복호화된 상태의 원본 파일(예: Dex 파일이나 .so 파일)을
덤프(dump) 해야 한다.
이를 통해 암호화된 코드를 확인할 수 있으며 높은 확률로 탐지 로직도 찾을수 있다.
그런데 여기서 또 하나의 문제가 발생한다.
USB Debugging 탐지 로직이 앱을 종료시켜 버리면??
Frida를 이용해 복호화된 파일을 덤프할 기회조차 주어지지 않는다.
아래의 그림을 보자.
아래의 사진처럼 Frida로 Dex 혹은 so 파일을 덤프를 하려고 USB Debugging을 설정해주고
연결하면 아래의 사진처럼 USB Debugging 탐지 로직에 탐지되어 앱이 종료된다.
이런 상황을 대비하고자.
기존에는 Frida를 이용해 USB Debugging 감지를 우회하는 방법이 일반적이었지만,
이번엔 Frida로 USB Debugging을 우회하지 않고도 문제를 해결할 수 있는 새로운 환경을 구성해 보았다.
아래의 그림이 Frida를 이용하지 않고 USB Debugging을 우회하지 않고
USB Debugging을 탐지 로직을 우회한 모습이다.
이 방법을 통해, USB Debugging 감지 로직에 걸리지 않으면서도
Frida로 원본 Dex 파일 및 so 파일을 성공적으로 덤프할 수 있었다.
'개인 프로젝트' 카테고리의 다른 글
19. 업비트(UPbit) 실시간 시세 알아오기(제한X) (0) | 2025.02.26 |
---|---|
17. 화면 캡처 방지 우회(금융권, 웹툰) (0) | 2025.01.01 |
16. 모바일 솔루션 우회 (NSHC-libdxbase.so) (0) | 2024.12.26 |
15. 모바일 솔루션 우회 (LIVE스코어 - AppSealing) (0) | 2024.12.18 |
14. 모바일 솔루션 우회 (토스) (0) | 2024.12.11 |