모의해킹/Android
-
여러 회사들의 모바일 앱을 분석해보다 보니 느낀거지만, 요즘은 금융권에 해당하지 않더라도 앱에 모바일 앱 보호 솔루션을 씌워놓은 회사들이 점점 늘어나고 있는 듯 하다. 그리고 대부분의 모바일 앱 보호 솔루션들이 C/C++ 로 컴파일된 라이브러리 파일(.so) 단에서 동작하는 경우가 많기 때문에 JEB, Jadx 등으로 Java 메소드만 분석하려고 하다가는 답도 찾지 못하고 솔루션한테 얻어맞기만 하다가 프로젝트가 끝날 수 있다. 대부분의 솔루션들은 open, fopen, access 등 의 내장된 C/C++ 표준 라이브러리 함수를 이용해 루팅/탈옥 여부를 탐지하곤 하는데 해당 함수들은 대개 안드로이드의 경우 libc.so 에, iOS 의 경우는 libSystem.B.dylib 에 내장되어 있다. 표준 C ..
Frida 표준 C 라이브러리 함수 후킹여러 회사들의 모바일 앱을 분석해보다 보니 느낀거지만, 요즘은 금융권에 해당하지 않더라도 앱에 모바일 앱 보호 솔루션을 씌워놓은 회사들이 점점 늘어나고 있는 듯 하다. 그리고 대부분의 모바일 앱 보호 솔루션들이 C/C++ 로 컴파일된 라이브러리 파일(.so) 단에서 동작하는 경우가 많기 때문에 JEB, Jadx 등으로 Java 메소드만 분석하려고 하다가는 답도 찾지 못하고 솔루션한테 얻어맞기만 하다가 프로젝트가 끝날 수 있다. 대부분의 솔루션들은 open, fopen, access 등 의 내장된 C/C++ 표준 라이브러리 함수를 이용해 루팅/탈옥 여부를 탐지하곤 하는데 해당 함수들은 대개 안드로이드의 경우 libc.so 에, iOS 의 경우는 libSystem.B.dylib 에 내장되어 있다. 표준 C ..
2023.11.26 -
일반적으로 APK 파일 내부에 lib 폴더를 보면 호환성을 위해 ABI 별로 동적 라이브러리 파일이 각각 생성되어 있는 것을 볼 수 있다. 하지만 이 뚱뚱한 라이브러리들을 본인이 쓰지도 않을 버전까지 모두 포함하여 다운로드 하는 것은 Cost 낭비라고 볼 수 있다. 그리고 실제로 APK 파일들의 용량도 점점 증가하고 있다고 한다. 그래서 구글에서는 Android App Bundle 과 Dynamic Delivery 라는 기능을 추가했는데 이를 통해 비용문제를 해결하고 있다. 기존(그림 왼쪽) APK에서는 모든 언어셋 및 화면 크기, 하드웨어 아키텍처에 해당하는 리소스들을 하나의 APK 에 포함시켰던 반면에, Dynamic Delivery(그림 오른쪽) 은 Play Store에 접속한 단말기에 해당하는 리..
분할 APK(Split APKs) 병합일반적으로 APK 파일 내부에 lib 폴더를 보면 호환성을 위해 ABI 별로 동적 라이브러리 파일이 각각 생성되어 있는 것을 볼 수 있다. 하지만 이 뚱뚱한 라이브러리들을 본인이 쓰지도 않을 버전까지 모두 포함하여 다운로드 하는 것은 Cost 낭비라고 볼 수 있다. 그리고 실제로 APK 파일들의 용량도 점점 증가하고 있다고 한다. 그래서 구글에서는 Android App Bundle 과 Dynamic Delivery 라는 기능을 추가했는데 이를 통해 비용문제를 해결하고 있다. 기존(그림 왼쪽) APK에서는 모든 언어셋 및 화면 크기, 하드웨어 아키텍처에 해당하는 리소스들을 하나의 APK 에 포함시켰던 반면에, Dynamic Delivery(그림 오른쪽) 은 Play Store에 접속한 단말기에 해당하는 리..
2023.03.12 -
Android 단말기의 HTTPS 패킷을 확인하기 위해서는 단말기에 Burp 인증서를 넣고 진행해야 하는데 넣을 일이 자주 있는건 아니지만서도 절차가 너무 귀찮다. Android 7 이상부터는 특히... 매번 핵캐트믈(hackcatml)님의 블로그를 참고해서 따라하는 편인데, 해당 절차들을 배치파일로 스크립트화 해봤다. 우선 위의 압축파일을 다운받아 해제하고, adb가 Android 단말기와 연결된 상태에서 cert.bat 을 실행하면 된다. 유효기간이 730일인 인증서를 생성하여 Android 단말기의 시스템 인증서 경로인 /system/etc/security/cacerts/ 에 자동으로 삽입하는 스크립트이다. 'ca.der'과 'server.key.pkc8.der' 은 Burp Suite에 수동으로 ..
Android 7 Burp 인증서 자동 삽입 스크립트Android 단말기의 HTTPS 패킷을 확인하기 위해서는 단말기에 Burp 인증서를 넣고 진행해야 하는데 넣을 일이 자주 있는건 아니지만서도 절차가 너무 귀찮다. Android 7 이상부터는 특히... 매번 핵캐트믈(hackcatml)님의 블로그를 참고해서 따라하는 편인데, 해당 절차들을 배치파일로 스크립트화 해봤다. 우선 위의 압축파일을 다운받아 해제하고, adb가 Android 단말기와 연결된 상태에서 cert.bat 을 실행하면 된다. 유효기간이 730일인 인증서를 생성하여 Android 단말기의 시스템 인증서 경로인 /system/etc/security/cacerts/ 에 자동으로 삽입하는 스크립트이다. 'ca.der'과 'server.key.pkc8.der' 은 Burp Suite에 수동으로 ..
2023.02.17 -
Jadx 1.4.1 이후 버전 부터 기본으로 지원하는 'Copy as Frida snippet' 기능을 JEB에서도 플러그인의 힘을 빌려 비슷하게나마 사용 가능하다. JEB 플러그인은 iddoeldor의 frida-snippets 레포를 통해 다운로드 가능한데, 플러그인 동작 시 익셉션이 발생한다. GitHub - iddoeldor/frida-snippets: Hand-crafted Frida examples Hand-crafted Frida examples. Contribute to iddoeldor/frida-snippets development by creating an account on GitHub. github.com 코드를 확인해보니 Linux/UNIX 환경에 맞추어 개발했는지 xclip 명..
JEB Frida Code GeneratorJadx 1.4.1 이후 버전 부터 기본으로 지원하는 'Copy as Frida snippet' 기능을 JEB에서도 플러그인의 힘을 빌려 비슷하게나마 사용 가능하다. JEB 플러그인은 iddoeldor의 frida-snippets 레포를 통해 다운로드 가능한데, 플러그인 동작 시 익셉션이 발생한다. GitHub - iddoeldor/frida-snippets: Hand-crafted Frida examples Hand-crafted Frida examples. Contribute to iddoeldor/frida-snippets development by creating an account on GitHub. github.com 코드를 확인해보니 Linux/UNIX 환경에 맞추어 개발했는지 xclip 명..
2023.02.09