naroSEC
article thumbnail
Frida 실행 시 생성되는 파일 검사를 통한 탐지 방안과 우회 기법

들어가기 앞서 이번 포스팅부터는 모바일 데이터 위·변조 목적 및 분석 도구로 사용되는 후킹 도구인 Frida를 탐지하는 방안과 우회 기법에 대해서 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC/Anditer development by creating an account on GitHub. github.com Frida란? 먼저 프리다(Frida)란, Ole에서 개발한 DB(Dynamic Binary Instrumentation) 프레임워크로 Windows, MacOS, Linux, Android, iOS 등의 다양한 플랫폼 기반의 네이티브(Native) 애플리케이션..

article thumbnail
치트 엔진을 이용한 정적 메모리 값을 변조하는 방법

개요 치트 엔진을 이용한 동적 메모리 값을 변조하는 방법 개요 게임 관련 애플리케이션을 대상으로 코드 분석 및 변조 시 가장 많이 활용되는 도구를 뽑으라고 한다면 치트 엔진(Cheat Engine)이 아닐까 싶다. 치트 엔진은 보통 게임의 메모리 주소를 조작 naro-security.tistory.com 이전 "치트 엔진을 이용한 동적 메모리 값을 변조하는 방법" 포스팅에서는 "어썰트 큐브" 게임을 대상으로 동적 메모리 값을 변조하는 방법을 살펴봤다. 동적 메모리의 경우 프로그램이 실행되는 동안 데이터를 저장하고 처리하기 위해 게임 엔진에 의해 할당되는 메모리로 프로그램이 재실행 될 때 마다 주소가 변경된다. 반면, 정적 메모리는 동적 메모리와 반대로 고정적인 주소를 가지며, 이를 통해 프로그램 내부의 ..

article thumbnail
USB 연결 검사를 통한 동적 디버깅 탐지 방안과 우회 기법

들어가기 앞서 USB 디버깅 옵션 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 개발자 모드 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 동적 디버깅 도구(JEB Decompiler) 탐지 방안과 우회 기법 들어가기 앞서 ro.debuggable 값 검사를 통한 동적 naro-security.tistory.com 이전 "USB 디버깅 옵션 검사를 통한 동적 디버깅 탐지 방안과 우회 기법" 포스팅에 이어서 디바이스의 USB 연결 여부를 검사하여 동적 디버깅을 탐지하는 방안과 또, 이를 공격자의 관점에서 어떻게 우회할 수 있는지 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer..

article thumbnail
USB 디버깅 옵션 검사를 통한 동적 디버깅 탐지 방안과 우회 기법

들어가기 앞서 개발자 모드 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 동적 디버깅 도구(JEB Decompiler) 탐지 방안과 우회 기법 들어가기 앞서 ro.debuggable 값 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 TracerPid 검사를 통한 동적 디버 naro-security.tistory.com 이전 "개발자 모드 검사를 통한 동디버깅 탐지 방안과 우회 기법" 포스팅에 이어서 개발자 모드 옵션 중 하나인 USB 디버깅 허용 여부를 검사하여 동적 디버깅을 탐지하는 방안 및 우회 기법을 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute ..

article thumbnail
개발자 모드 검사를 통한 동적 디버깅 탐지 방안과 우회 기법

들어가기 앞서 동적 디버깅 도구(JEB Decompiler) 탐지 방안과 우회 기법 들어가기 앞서 ro.debuggable 값 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 TracerPid 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 디버깅 개요 및 동적 디버깅 naro-security.tistory.com 이전 "동적 디버깅 도구(JEB Decompiler) 탐지 방안과 우회 기법" 포스팅에 이어서 디바이스에 개발자 모드 옵션 허용 여부를 검사하여 동적 디버깅을 탐지하는 방안과 우회 기법을 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to nar..

article thumbnail
치트 엔진을 이용한 동적 메모리 값을 변조하는 방법

개요 게임 관련 애플리케이션을 대상으로 코드 분석 및 변조 시 가장 많이 활용되는 도구를 뽑으라고 한다면 치트 엔진(Cheat Engine)이 아닐까 싶다. 치트 엔진은 보통 게임의 메모리 주소를 조작하여 게임 데이터를 변경하거나, 게임 내부의 변수나 값을 조작하는 등의 간단한 행위부터 동작 중인 앱을 디버깅하여 맵 포인터 분석, 스크립트 인젝터 등 다양한 행위를 가능케 해주는 애플리케이션이다. 또한, 치트 엔진은 x86 프로세서 아키텍쳐 기반의 운영 체제인 Windows 뿐만 아니라 ARM 프로세서 기반의 안드로이드 애플리케이션 분석 시에도 활용이 가능하다. 해당 포스팅부터 "Assault Cube"라는 FPS 게임을 대상으로 치트 엔진의 사용 방법을 익히고 이후 안드로이드 게임 앱 분석 방법까지 시리..

article thumbnail
동적 디버깅 도구(JEB Decompiler) 탐지 방안과 우회 기법

들어가기 앞서 ro.debuggable 값 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 TracerPid 검사를 통한 동적 디버깅 탐지 방안과 우회 기법 들어가기 앞서 디버깅 개요 및 동적 디버깅 사용을 위한 사전 조건 들어가기 앞서 '안드로이드/루팅 탐지 및 우회' 카테고 naro-security.tistory.com 이전 "ro.debuggable 값 검사를 통한 동적 디버깅 탐지 방안과 우회 기법" 포스팅에 이어서 디버깅 도구인 JEB Decompiler를 탐지하는 방안과 또 이를 우회하는 기법을 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC..

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..

article thumbnail
안드로이드 Assembly-CSharp.dll 덤프 모듈 frida-il2cpp-bridge

개요 Unity 기반의 엔진으로 제작된 안드로이드 게임 앱 분석 시 일반적으로 Assembly-CSharp.dll 파일을 통해 앱에서 사용되는 클래스와 함수 정보를 파악하게 된다. Assembly-CSharp.dll 파일에는 Unity의 게임 오브젝트들을 제어하고 게임의 동작과 기능을 구현하는데 이용되는 C# 스크립트가 포함되어 있으며, 컴파일 방식(Mono 및 IL2CPP)에 따라서 세부 코드를 파악하고 변조까지도 가능해진다. 때문에, 개발사들은 해당 파일을 통해 크래커들이 게임에서 사용되는 주요 클래스와 함수 코드를 분석하지 못하게 은닉 기법을 사용하여 숨긴다. 대표적인 은닉 기법으로는 PE구조와 CLR 메타데이터의 헤더를 손상시키거나 파일을 암호화하는 방법이 있으며, 이 경우 헤더 시그니처 복구 또..

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...