[iOS] Frida 문법

1. ObjC

  1. ObjC.available : 현재 프로세스에 Objective-C 런타임이 로드되어 있는지 여부를 지정하는 Boolean이다.  
  2. ObjC.classes : 현재 등록된 각 클래스에 대한 JavaScript 바인딩에 클래스 이름을 매핑하는 객체

2. Interceptor

  1. Interceptor.attach(target. callbacks[, data]) : target의 함수로의 호출을 가로챔, callbacks 인수는 하나 이상을 포함하는 객체
  2. onEnter(args) :인수 하나를 받는 콜백 함수로 args, NativePointer객체 배열로 인수를 읽거나 쓰는데 사용할 수 있다.
  3. onLeave(retval) : 함수 리턴 시 호출되는데 retval을 이용하여 리턴값을 조작할 수 있습니다. (retval은 함수의 리턴값을 나타내며, nativepointer 객체에서 파생), ex) retval.replace을 사용하면 함수의 리턴값을 정수 1337로 변경, retval.replace(ptr("0x1234"))을 사용하면 포인터 값(0x1234)로 변경할 수 있다.
  4. module.findBaseAddress(moduleName,exportName) : 특정 모듈의 BaseAddress를 얻고 싶을떄 사용하는데 get과는 다르게 리턴값이 null일 경우 에러가 발생하지 않는다.
  5. module.getbaseAddress(moduleName,exportName) : 반드시 값이 있어야 하며, 값이 없으면 예외를 발생시켜서 에러처리 할때 사용한다. moduleName : 함수나 변수가 정의된 모듈 이름, exportName : 찾고자 하는 함수 또는 변수 이름

3. 객체  속성

  1. $methods : 객체의 클래스와 부모 클래스가 노출한 모든 기본 이름을 포함하는 배열
  2. $ownMethods : 부모 클래스의 메서드는 포함하지 않고, 객체의 클래스에서 선언된 고유된 기본 메서드 이름만 포함하는 배열

'앱 진단 > ios' 카테고리의 다른 글

[iOS] DVIA-v2(Jailbreak Detection - 2)  (0) 2025.02.19
[iOS] - DVIA-v2 (Jailbreak Detection 1)  (0) 2025.02.18
[iOS] - 어셈블리어 명령어  (0) 2025.02.17
[iOS] 파일 시스템  (0) 2025.02.14
[iOS] 계층 구조  (0) 2025.02.14