1. 문제확인더보기이 전의 Jailbreak Detection 1번 문제를 해결하고 2번 문제를 풀어보겠다.2번 문제는 1번 문제에서 푼 후킹코드로 해결된다. 아마 내 추측으로는 같은 문제지만 다른 방식으로 해결해 보라는 것 같다. 2. 문제 풀이더보기그래서 다른 방법이 뭐 있을까 검색하다가 보니 다른 사람들은 메서드를 탐색해서 후킹 하는 방식으로 해결하던 것을 확인하고 시도해 보기로 했다.if(ObjC.available){ for(var classlist in ObjC.classes) console.log(classlist)}해당 코드를 작성하여 frida로 실행해 본 결과 무수히 많은 클래스들이 발견되었다. 그러므로 뒤에 frida -U -l exam2.js DVIA-v2 | find "Jail"위..
1. 문제확인 및 풀이Jailbreak Detection 이라는 문제를 풀어보기 위해 접근접근 후 1번 문제인 Jailbreak Test1을 눌러보니 "Device is Jailbroken"이라는 명령어와 함께 탈옥 탐지가 된 것을 확인할 수 있다.해당 내용을 찾기 위해 search - for strings 에서 device is jailbroken을 검색하여 접근해당 부분(함수 및 데이터 영역의 참조원)을 클릭하여 접근 후 windows - function graph 를 사용 해당 부분을 확인하면 tbz(특정 비트가 0이면 분기) 연산을 이용한다. 위를 봤을 때는 w0의 레지스터 값을 확인하는것 같다. 그래서 frida를 이용해서 확인해보기로 하였음if(ObjC.available){ var realba..
어셈블리어 연산자1.데이터 처리add : 값을 더한다 . ex) ADD R1, R2, R3 (R1=R2+R3)sub : 두 값을 뺀다. ex) SUB R1, R2, R3 (R1=R2-R3)orr : 비트 단위 OR 연산. ex) ORR R1, R2, R3 (R1=R2 OR R3)lsl : 첫 번째 값의 비트를 왼쪽으로 이동 ex) LSL R1, R2, #2 (R1=R2 lsr : 첫 번째 값의 비트를 오른쪽으로 이동 ex) LSR R1, R2, #2 (R1=R2>>2)2. 메모리 연산ldr : 메모리에서 값을 읽어 레지스터에 저장 ex) LDR R1, [R2] (R1 = R2에 저장된 메모리 값)str : 레지스터 값을 메모리에 저장 ex) STR R1, [R2] (R2에 R1의 값 저장)ldp : 두 ..
1. ObjCObjC.available : 현재 프로세스에 Objective-C 런타임이 로드되어 있는지 여부를 지정하는 Boolean이다. ObjC.classes : 현재 등록된 각 클래스에 대한 JavaScript 바인딩에 클래스 이름을 매핑하는 객체2. InterceptorInterceptor.attach(target. callbacks[, data]) : target의 함수로의 호출을 가로챔, callbacks 인수는 하나 이상을 포함하는 객체onEnter(args) :인수 하나를 받는 콜백 함수로 args, NativePointer객체 배열로 인수를 읽거나 쓰는데 사용할 수 있다.onLeave(retval) : 함수 리턴 시 호출되는데 retval을 이용하여 리턴값을 조작할 수 있습니다. (r..
1. 파일시스템이란파일, 디렉토리를 운영체제에서 관리하는것. 즉, 파일 및 파일의 메타데이터, 디렉토리 정보를 관리하고 보호하는 것 2. iOS 파일시스템 구조1️⃣ iOS는 파일시스템 구조는 SandBox 구조를 띈다.- SandBox란?더보기보호된 영역 내에서 프로그램을 동작시키는 것, 외부 요인에 의해 악영향이 미치는 것을 방지하는 보안 모델이다. 이 모델은 외부로부터 받은 프로그램을 보호된 영역, 즉 '상자' 안에 가두고 나서 동작시킨다. 2️⃣SandBox 구조1) App 폴더 : 애플리케이션의 홈 디렉토리 2) Bundle Container : 앱의 번들을 보유하는 곳, - Myapp.app : 앱 실행을 위한 파일이 존재 (아이콘, 이미티, 텍스트 내용이 있음)더보기Bundle이란?앱의 번..
1. iOS 란APPLE의 자사에서 자사의 스마트폰을 위해 개발한 모바일 운영체제이다. ios는 macOS를 기반으로 하며 유닉스 계열의 운영체제이다.1) KERNELiOS는 XNU 커널을 사용한다. XNU 커널은 macOS와 iOS 모두 사용되는 하이브리드 커널이며 하드웨어와 상호 작용, 프로세스 관리, 메모리 관리 등의 기능을 제공한다. 2. iOS 계층구조1) Application iOS의 가장 바깥의 계층, Apple App들이 여기에 속한다. 2) Cocoa TouchUIkit : 사용자 인터페이스 구성과 터치와 같은 기능들을 제공한다.Mapkit : 지도와 위치 기반 서비스를 위한 프레임워크MessageUI : 이미지/메시지 전송개발할 때 많이 접하게 되는 계층이다. 3) MediaCore ..