naroSEC
article thumbnail
Frida 백트레이스를 활용한 함수 호출 지점 찾기
안드로이드 기타/Frida 2023. 8. 18. 14:00

개요보안이 잘 된 안드로이드 앱은 Java 코드뿐만 아니라 C/C++ 언어로 작성된 네이티브 코드를 활용하여 루팅, 무결성, 디버깅과 같은 보안 위협을 탐지한다. 이러한 네이티브 코드로 작성된 파일은 라이브러리(.so) 형태로 제공되며 또한, ollvm이나 링킹과 같은 라이브러리 보호 매커니즘이 적용된 경우 분석이 어려워진다. 그 일례로 ollvm이 적용된 라이브러리는 코드 내에 존재하는 문자열이 모두 암호화되어 있어 평문 값이 노출되지 않는다. 따라서, 이는 분석 시 검사에 사용되는 문자열을 검색하는 방식으로 탐지 로직을 찾는게 어렵다는 뜻이다. 하지만, 이때 Frida 백트레이스를 활용한다면 어렵지 않게 보안 탐지 로직을 찾을 수 있다. 이번 포스팅에서는 Frida 백트레이스 사용 방법을 기술하고자 ..

article thumbnail
Frida로 네이티브 코드(C/C++) 변수(레지스터) 값 변조하는 방법
안드로이드 기타/Frida 2023. 7. 28. 22:35

개요 네이티브 코드는 안드로이드 애플리케이션에서 C/C++ 언어로 작성된 코드를 말한다. 안드로이드 애플리케이션은 주로 Java와 Kotlin 같은 고수준 프로그래밍 언어로 개발되지만, 일부 기능이나 성능 향상, 하드웨어 접근, 호환성을 이유로 네이티브 코드를 활용한다. 특히 게임분야에서 네이티브 코드가 가장 많이 활용되며, 이는 그래픽 처리, 음성 처리 등과 같은 작업에서 Java 코드 대비 높은 효율을 보이기 때문이다. 또한, C/C++과 같이 저수준 언어로 작성된 코드는 기계어 또는 어셈블리어로 컴파일되기에 가독성이 낮아 코드 분석 및 리버스 엔지니어링에 어려움을 준다. 때문에, 앱에 적용되는 대 다수의 보안 솔루션들은 네이티브 코드를 활용하여 루팅과 같은 모바일 보안 위협을 탐지한다. 그리고 이러..

article thumbnail
Frida 서버 포트 번호를 변경해서 실행하는 방법
안드로이드 기타/Frida 2023. 7. 24. 22:50

개요 모바일 앱을 진단하다 보면 DroidX, AndroGuard 등 다양한 보안 솔루션이 적용된 앱을 보게 되는데 이들 대부분은 Frida를 필수적으로 탐지한다. 솔루션이 Frida를 탐지할 때는 보편적으로 Frida 생성 파일, 포트, 모듈 검사를 통해 탐지하며, 몇몇 솔루션에서는 역후킹 방안을 이용해 Frida를 막기도 한다. 해당 포스팅은 이러한 탐지 방법 중에서도 Frida 서버를 이용하여 포트 탐지를 우회하는 방법을 기술하고자 한다. 방법 1. PC와 모바일 디바이스를 USB로 연결한 상태에서 [그림 1]과 같이 원격 셸에 접근한다. adb shell 2. Frida 서버를 -h 옵션을 인자로 주고 실행하면 Frida 서버에 관한 다양한 옵션을 확인할 수 있으며, 이 중에서 -l 옵션은 Fri..

Frida 메모리(Memory) 모듈 정리
안드로이드 기타/Frida 2023. 7. 12. 21:33

개요 Frida 스크립트 작성 시 C/C++ 로 작성된 네이티브 함수를 후킹할 때 인자 값 변조 및 확인을 위해 자주 사용되는 메모리(Memory) 모듈의 문법에 관해서 정리를 하고자 포스팅 한다. 해당 포스팅은 완결 판이 아니며, 추후 계속 추가될 예정이다. Memory 모듈 사용법 및 설명 Memory 모듈이란? 앱의 메모리에 접근하고 조작하는 기능을 제공하며, 메모리 모듈을 사용하여 특정 주소의 메모리를 읽거나 쓰는 것이 가능하고 메모리 주소에 대한 포인터를 조작, 블록을 할당 및 해제 할 수 있도록 지원되는 모듈이다. 문법 및 사용법 예시 [ Memory.read ] Memory.readInt(address) address로 지정한 메모리 주소에서 4바이트 정수 데이터를 읽어 반환한다. 예: va..

Frida 에러(unexpectedly timed out while waiting for) 해결 방법
안드로이드 기타/Frida 2023. 7. 12. 20:23

개요 모바일 진단 시 대상 앱의 보안 탐지 코드를 우회하기 위해 Frida(이하 프리다)를 자주 애용한다. 그런데 프리다를 사용하다 보면 몇몇 알 수 없는 오류가 발생해서 시간을 소비하는 경우가 종종 있는데 그 중에서도 Spawn 방식으로 프리다를 실행할 때 발생하는 대표적인 오류 2가지에 대해 해결 방법을 기술하고자 한다. 에러 이슈 프리다를 Spawn 방식으로 실행 시 발생하는 대표적인 두 가지 오류는 아래와 같다. unexpectedly timed out while waiting for app to launch unexpectedly timed out while waiting for signal from process with Pid Error: VM::AttachCurrentThread faile..

profile on loading

Loading...