guarded_open_np
함수가 libsqlite3.dylib에서 데이터베이스 파일을 여는 데 사용됨을 발견했습니다. 나는 sqlite3 오픈 소스를 살펴 봤는데, 그런 건 없었다. 그래서 확실히 애플은 유닉스의 open
대신에 guarded_open_np
을 사용하도록 수정했다.guarded_open_np의 매개 변수
저는 guarded_open_np
이 비공개 API이며, 헤더와 문서를 찾지 못했습니다. guarded_open_np
에 차단 (Cydia의 MSFunctionHook)을하고 싶습니다. 그래서 함수 이름뿐만 아니라 매개 변수도 알아야합니다.
이는 guarded_open_np
라고하는 방법입니다
sub_79c1c:
push {r7, lr}
mov r7, sp
sub sp, #0x4
mov r3, r1
movw r1, #0xc57e
movt r1, #0x0
str r2, [sp, #0x4 + var_0]
add r1, pc
movs r2, #0xf
blx imp___picsymbolstub4__guarded_open_np
add sp, #0x4
pop {r7, pc}
그러나, 걸릴 수 PARAMS 무엇인지 아직 명확하지 않다. 모든 매개 변수가있는 guarded_open_np
을 언급하는 공식 사이트가있는 경우 많은 도움이됩니다.
가장 좋은 추측은 UNIX의 open (3)처럼 보입니다 : https://gist.github.com/CodaFi/7c73abd9dfb602dcc26e – CodaFi
@Krypton이 디버거에 연결하여 레지스터의 내용을 확인할 수 있습니까? r0 ~ r3 (그리고 그들이 메모리를 가리키고 있다면, 메모리 내용) blx 명령문 바로 전에? 호출 규칙은 일반적으로 첫 번째 인수에 r0을 사용하고 두 번째 인수에는 r1을 사용합니다. – Ncat