앱을 사용하면서 메모리에 다양한 데이터가 적재된다. 이 중에는 계정 정보, 개인 정보, 금융 정보 등과 같이 매우 중요한 데이터가 평문으로 저장되어 있는 경우가 있다. 이러한 정보는 외부로 유출될 경우 심각한 문제를 일으킬 수 있기 때문에, 앱의 보안을 검증하기 위해 메모리 덤프 분석이 필요하다. ( 탈옥 필수 ) 메모리 덤프란? 메모리 덤프는 특정 시점에서 컴퓨터 메모리의 내용을 추출하는 과정을 말한다. 이를 통해 앱이 실행되면서 메모리에 저장된 정보를 분석할 수 있으며, 보안 취약점이나 민감한 정보의 노출 여부를 확인할 수 있다. 메모리 덤프를 위한 준비 필수 조건: 대상 기기는 탈옥 상태여야 하며, 분석하고자 하는 앱이 실행 중이어야 한다. 필요 도구: Python 3 이상의 환경 Frida: 프리..
frida server {"type":"error","description":"Error: invalid address","stack": "Error: invalid address\n at Object.value [as patchCode] (frida/runtime/core.js:207:1)\n 해당 오류를 검색창에 입력하면 글이 거의 나오지 않는다. 나와도 중국사이트에서 selinux를 끄라고 나오는데 꺼도 꺼지지 않고 해결이 되지 않는다. 그래서 해결한 방법을 공유하고자 글을 써본다. 일단 보통 1. data/local/tmp 이 위치에 frida 서버가 저장되어있을 텐데 모두 지우고 최신 버전으로 설치한다. 로컬에서도 마찬가지로 최신버전으로 버전을 맞추고 파일 경로를 2. 파일 위치를 /system..
frida❓ Frida는 안드로이드, iOS, QNX 등 모바일 플랫폼에서 사용할 수 있는 파이썬 라이브러리이다. Frida는 JavaScript를 사용하여 모바일 앱의 메모리, 코드, 시스템 호출 등을 제어할 수 있으며 이를 통해 앱의 동작을 추적하고, 버그를 찾고, 기능을 추가하거나 수정할 수 있다. Frida의 핵심은 C로 작성되었으며 QuickJS를 대상 프로세스에 주입하고. 여기서 JS는 메모리에 대한 전체 액세스, 후킹 기능 및 프로세스 내부의 기본 기능 호출까지 실행하면서 실행된다. 앱과 대상 프로세스 내에서 실행되는 JS 간의 통신에 사용되는 양방향 통신 채널이 있는데 Python과 JS를 사용하면 위험 없는 API로 빠르게 진행할 수 있다. Frida는 JS에서 오류를 쉽게 포착하고 충돌..
메모리 덤프❓ 메모리 덤프(Memory Dump)는 컴퓨터 시스템의 현재 메모리 상태를 파일로 저장하는 프로세스나 결과물을 가리키는 용어이다. 디버깅(Debugging): 프로그램이 충돌하거나 예상치 못한 오류가 발생할 때, 메모리 덤프를 생성하여 오류 발생 시점의 메모리 상태를 분석할 수 있다. 이를 통해 오류 원인을 식별하고 수정할 수 있다. 보안 분석(Security Analysis): 해킹 공격이나 악성 코드 분석을 위해 시스템의 메모리 덤프를 생성한다. 이를 통해 공격자의 활동을 추적하거나 악성 코드의 작동 방식을 이해할 수 있다. 성능 분석(Performance Analysis): 프로그램이나 시스템의 성능 문제를 해결하기 위해 메모리 덤프를 생성하여 메모리 누수나 자원 소비에 대한 정보를 얻..
ios의 앱은 안드로이드와 다르게 추출해서 디컴파일 하는게 아니라 암호화가 되어있어 복호화를 해야하는데 여러 가지 방법 중에서 frida를 통한 복호화 방법을 알아본다. 사전준비 로컬 pip install frida, pip install frida-tools 모바일 기기 이전에 설치한 cydia 를 통해서 OpenSSH(ssh를 설치해야 아이폰 쉘에 접근 가능하다.) frida ( frida server (로컬에서 직접 설치해주는 방법도 있다)) 를 설치한다. 아래링크에서 ipa를 추출하기위한 파이썬 도구를 다운받아준다. https://github.com/AloneMonkey/frida-ios-dump GitHub - AloneMonkey/frida-ios-dump: pull decrypted ipa ..