Ho trovato che la funzione guarded_open_np
è utilizzata da libsqlite3.dylib per aprire il file di database. Ho dato un'occhiata all'open source di sqlite3, non c'era nulla di simile. Quindi sicuramente Apple lo ha modificato per usare guarded_open_np
invece di open
di Unix.Parametri di guarded_open_np
So che guarded_open_np
è un'API privata e non ho trovato né l'intestazione né la documentazione su di esso. Voglio intercettare (Cydia's MSFunctionHook) su guarded_open_np
, quindi ho bisogno di sapere anche quali sono i parametri, non solo il nome della funzione.
I reverse-engineering libsqlite3.dylib usando IDA Pro, ecco come si chiama 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}
Tuttavia, non è ancora chiaro che cosa params potrebbe richiedere. Apprezzo molto se c'è qualche sito ufficiale che menziona guarded_open_np
con tutti i suoi parametri.
La mia ipotesi migliore è che sembra aperta di UNIX (3): https://gist.github.com/CodaFi/7c73abd9dfb602dcc26e – CodaFi
@Krypton Vuoi essere in grado di agganciare questo in un debugger e verificare ciò che il contenuto dei registri r0 ~ r3 (e se puntano alla memoria, il contenuto della memoria) subito prima dell'istruzione blx? Le convenzioni di chiamata di solito usano r0 per il primo argomento, r1 per il secondo ecc. – Ncat