개요 JEB 디컴파일러에서 프리다 후킹스크립트를 생성하는 스크립트를 설치하고 사용한다. 다운로드 및 설치 깃허브 페이지: https://github.com/Hamz-a/jeb4frida GitHub - Hamz-a/jeb4frida: Generate Frida hooks directly from JEB! Generate Frida hooks directly from JEB! Contribute to Hamz-a/jeb4frida development by creating an account on GitHub. github.com 압축파일로 받으면 폴더에 'Jeb4frida.py' 파일이 스크립트 파일이다. 해당 파일을 JEB가 설치된 경로의 '/scripts' 에 복사한다. 사용 JEB를 재시작 한 후 ..
기존 설치 방법 1. Cydia 소스 등록 https://build.frida.re/ 2. 트윅 검색 및 설치 frida 문제 Cydia에서 Frida 설치 시 deb 패키지 오류로 설치가 되지 않는 문제 발생 dpkg-deb --control subprocess returned error exit status 2 Sub-process /usr/libexec/cydia/cydo returned an error code (1) https://github.com/frida/frida/issues/2355 해결 1(권장) ## 23.01.10 수정: 기존 15버전으로 설치를 안내했지만, 16.0.1 버전 직접 설치 시 사용 가능함을 확인하여 포스트를 수정하였다. frida github에서 16.0.1버전 다운..
[분석환경] Windows 10 x64 실습 바이너리 : x86 [분석도구] Frida 15.1 Frida-Trace 어떤 API 호출을 하는지 확실하게 보고 싶을 때 Frida-Trace의 도움을 받을 수 있다. frida-trace -i “*send” [실행경로] 프로그램이 동작하면서 일치하는 이름의 함수가 호출될 때 로그로 남겨주고 일치하는 함수가 존재하여 후킹되었을 경우 frida를 실행한 경로 내에 handler 폴더 내에 후킹을 위한 스크립트를 자동으로 생성해준다. Hooking Frida로 함수의 인수 값을 출력하려면 frida Interceptor API를 사용한다. Interceptor는 onEnter와 onLeave로 정의한다. onEnter는 후킹 대상이 되는 함수의 실행 직전에 실행..
[분석환경] Ubuntu 18.04 LTS [분석도구] FRIDA 15 Frida는 바이너리 내 어떤 함수가 호출되는지 보여주고, 조작이 가능하도록 한다. 동적 바이너리 조사(DBI, Dynamic Binary Instrumentation)를 가능하게 해주는 프레임워크이다. 다양한 운영체제를 지원하고 있으며 파이썬 기반의 프레임워크로 다양한 API를 지원한다. Frida Tutorial Frida를 사용하여 호출된 함수를 검사하고, 인수를 수정하고, 대상 프로세스 내의 함수에 대한 사용자 지정 호출을 수행하는 방법을 보여준다 https://frida.re/docs/quickstart/ Quick-start guide Inject JavaScript to explore native apps on Windo..
[분석환경] Ubuntu 18.04 [분석도구] Frida Frida는 바이너리 내 어떤 함수가 호출되는지 보여주고, 조작이 가능하도록 한다. 동적 바이너리 조사(DBI, Dynamic Binary Instrumentation)를 가능하게 해주는 프레임워크이다. 다양한 운영체제를 지원하고 있으며 파이썬 기반의 프레임워크로 다양한 API를 지원한다. Frida Tutorial Frida를 사용하여 호출된 함수를 검사하고, 인수를 수정하고, 대상 프로세스 내의 함수에 대한 사용자 지정 호출을 수행하는 방법을 보여준다 https://frida.re/docs/quickstart/ Quick-start guide Inject JavaScript to explore native apps on Windows, mac..
[실습환경] Ubuntu 18.04 LTS [도구] Frida Frida는 바이너리 내 어떤 함수가 호출되는지 보여주고, 조작이 가능하도록 한다. 동적 바이너리 조사(DBI, Dynamic Binary Instrumentation)를 가능하게 해주는 프레임워크이다. 다양한 운영체제를 지원하고 있으며 파이썬 기반의 프레임워크로 다양한 API를 지원한다. Frida Tutorial Frida를 사용하여 호출된 함수를 검사하고, 인수를 수정하고, 대상 프로세스 내의 함수에 대한 사용자 지정 호출을 수행하는 방법을 보여준다 https://frida.re/docs/quickstart/ Quick-start guide Inject JavaScript to explore native apps on Windows, m..
Frida를 이용한 루팅 탐지 우회 기법 1. 루팅 관련 바이너리 존재 여부 확인 var RootPackages = ["com.noshufou.android.su", "com.noshufou.android.su.elite", "eu.chainfire.supersu", "com.koushikdutta.superuser", "com.thirdparty.superuser", "com.yellowes.su", "com.koushikdutta.rommanager", "com.koushikdutta.rommanager.license", "com.dimonvideo.luckypatcher", "com.chelpus.lackypatch", "com.ramdroid.appquarantine", "com.ramdroid...
Preview 안드로이드 환경에서 Frida와 adb로 상용 앱을 분석할 때 앱 내에서 어떤 동작을 하는지 파악하기가 쉽지 않다. 에러가 발생해서 발생하는 크래시 로그(Crash Log)가 아닌 개발자가 의도한 정상 동작은 어떻게 분석할까? 앱로그, 로그캣에서도 그에 대해 구체적으로 방법을 제시해 주지는 않는다. 그렇다고 실행 시점마다 스크린 샷을 저장해서 일일이 분석할 수도 없다. 이 포스트에서는 앱 내 기능 동작에 대해 분석하는 방법을 제시한다. 안드로이드 권한에 대한 정책은 다음과 같다. 안드로이드 5.1 이하(SDK 22이하) - 앱을 설치할 때 권한 부여 안드로이드 6.0 이상(SDK 23이상) - 앱이 실행되는 도중 권한 요청 및 거부하더라도 제한된 기능으로 동작 가능 [분석환경] OSX Bi..
Native Function 루팅 탐지 기법 우회를 위해 libc 모듈에서 실행되는 메소드를 후킹한다. 앱 리소스 보안을 위해 보안 솔루션을 적용한 경우 java레벨의 난독화와 최소화(mininalize)를 통해 어떤 메소드가 실행되는지 정적 분석을 통해 알 수 없다. 그렇기 때문에 시스템에 더 가까운 Native 함수를 후킹하여 루팅 패키지 검사, 시스템 권한 필요 명령어("su") 실행 등을 후킹한다. 앞선 포스트를 통해 조사한 루팅 탐지 기법은 다음과 같다. Interceptor.attach() Frida 스크립트에서 타켓 바이너리의 특정 함수가 호출되는 시점과 실행 후 반환되는 시점에 후킹을 하려면 Intercetpor.attach()을 통해서 흐름을 보거나 변경할 수 있다. 선언되어 있는 함수에..
루팅(Rooting)? 루팅은 쉽게 말해 시스템 최고 권한(root)을 얻는 것이다. 안드로이드에서는 안정적인 기기의 동작을 보장하기 위해 루트 권한은 일반적인 사용자가 접근하지 못하도록 되어 있다. 시스템 내부 저장소 접근, 권한 변경 등 많은 작업을 수행할 수 있기 때문이다. 하지만 Frida를 이용한 후킹을 위해서는 루팅된 시스템이 필요하며, 이 때 루팅 탐지 기법이 적용된 애플리케이션은 동작이 어려울 수 있다. 슈퍼유저는 특권제어를 할 수 있는데, 앱에 설치된 모든 권한과 시스템 백업, 다른 버전 안드로이드 설치, ROM 컨트롤 등을 할 수 있다. 시스템 안전을 보장할 수 없다. 개인정보인 연락처, 이메일 등에 접근할 수 있고 자격증명 및 비밀번호에도 접근이 가능하다. 루팅 탐지 앱 분석 루팅 탐..