Wie kann ich die API-Aufrufe einer Anwendung auf einem iOS-Gerät mit Jailbreak überwachen?

Lesezeit: 3 Minuten

Benutzer-Avatar
Mick

Ich führe eine Überprüfung einer iOS-Anwendung durch, für die ich nicht über den Quellcode verfüge. Um mehr Kontrolle über die Umgebung zu erlangen, führe ich die Anwendung auf einem iPad mit Jailbreak aus.

Ich möchte in der Lage sein, die API-Aufrufe zu überwachen, die die Anwendung macht … idealerweise möchte ich etwas wie MS Windows-basiertes Rohitab finden API-Monitorsondern für iOS.

Ich habe etwas recherchiert und ein Projekt von KennyTM namens “Subjektiv-C” Das scheint, dass es tun kann, was ich brauche. Ich habe tatsächlich ein Cycript-Skript zusammen mit dem verwendet libsubjc.dylib, verfügbar auf der Google-Code-Site.

Ich konnte jedoch nicht herausfinden, wie ich es richtig dazu bringen kann, Anrufe für eine App zu protokollieren. Hier ist die Link zum Cycript-Skript, geschrieben vom Autor von Subjektiv-C (libsubjc). Ich habe das Skript unten auch eingefügt.

/*

libsubjc.cy ... Use libsubjc in cycript.
Copyright (C) 2009  KennyTM~ <[email protected]>

[...GPL3...]
*/

dlopen("libsubjc.dylib", 10);
if (!dlfun) {
    function dlfun(fn, encoding, altname) { var f = new Functor(dlsym(RTLD_DEFAULT, fn), encoding); if (f) this[altname || fn] = f; return f; }
}

dlfun("SubjC_start", "v");
dlfun("SubjC_end", "v");

dlfun("SubjC_set_file", "v^{sFILE=}");
dlfun("SubjC_set_maximum_depth", "vI");
dlfun("SubjC_set_print_arguments", "vB");
dlfun("SubjC_set_print_return_value", "vB");
dlfun("SubjC_set_print_timestamp", "vB");

SubjC_Deny = 0, SubjC_Allow = 1;

dlfun("SubjC_clear_filters", "v");
dlfun("SubjC_filter_method", "vi#:");
dlfun("SubjC_filter_class", "vi#");
dlfun("SubjC_filter_selector", "vi:");
dlfun("SubjC_default_filter_type", "vi");
dlfun("SubjC_filter_class_prefixes", "viI^*");
dlfun("SubjC_filter_class_prefix", "vi*");

dlfun("fopen", "^{sFILE=}**");
dlfun("fclose", "i^{sFILE=}");

Ich konnte das Skript libsubjc cycript laden und die Funktion SubjC_start aufrufen. Wie gebe ich jedoch ein Eingabedateihandle für die Zeile an, die mit beginnt dlfun(“SubjC_set_file”, “v^{sFILE=}”);

Hat jemand das Cycript-Skript “libsubjc.cy” mit der Subjective-C-Bibliothek (libsubjc.dylib) erfolgreich verwendet, um die API-Aufrufe einer App zu überwachen?

AKTUALISIEREN

Dies generiert zumindest die Ausgabedatei, aber ich sehe keine Informationen in der Ausgabedatei (/tmp/test.txt).

cycript -p SpringBoard libsubjc.cy; cycript -p SpringBoard
f = fopen("/tmp/test.txt", "w");

SubjC_set_file(f);
SubjC_set_maximum_depth(15);
SubjC_set_print_arguments(YES);
SubjC_set_print_return_value(YES);
SubjC_set_print_timestamp(YES);
SubjC_default_filter_type(SubjC_Deny);
SubjC_start();
//do stuff
SubjC_end();

Oder, wenn jemand eine andere Möglichkeit kennt, API-Aufrufe (ohne Quellcode) auf einem Gerät mit Jailbreak zu überwachen, lassen Sie es mich bitte wissen!

  • verwandt: Protokollieren von objc_msgSend auf iOS

    Benutzer529758

    15. Oktober 2012 um 20:59 Uhr

  • Der Autor des Tools, @KennyTM, befindet sich im Stapelüberlauf. Vielleicht wandert er an diesem Posten vorbei und hat ein paar Ideen?

    – Nate

    2. November 2012 um 8:14 Uhr

  • stackoverflow.com/questions/9108920/…

    – TZubiri

    15. Februar um 2:58 Uhr

  • Ein Simulator könnte besser geeignet sein als ein Gerät mit Jailbreak.

    – TZubiri

    15. Februar um 2:59 Uhr

Mir ist kein direktes Äquivalent zu API Monitor bekannt. Jedoch, Frida ist ein beliebtes Tool für die mobile App-Instrumentierung mit a Tutorial zur iOS-Nutzung. Nach der Installation können Sie API-Aufrufe mit einem Befehl wie verfolgen frida-trace -U -i "CCCryptorCreate*" Twitter um Anrufe von der Twitter-App zu Funktionen zu verfolgen, die mit beginnen CCCryptorCreate.

  • Ich habe diese Frage vor 10 Jahren gestellt 🙂 Aber ich denke, dass Frida heute die richtige Antwort ist.

    – Mick

    10. August um 23:18 Uhr

  • @Mick Hey, das ist erst 9 Jahre und 10 Monate her.

    – leo60228

    11. August um 1:32

Benutzer-Avatar
Mudkip-Hacker

Richten Sie einen Proxy-Server auf Ihrem Computer ein, um alle API-Aufrufe umzuleiten und zu verfolgen. Dies ist eine gängige Methode, um in den iOS-Webverkehr einzusteigen, und Sie benötigen kein Gerät mit Jailbreak.

  • Bitte vermeiden Sie es, Fragen (Klarstellung oder rhetorische) in den Antworten zu stellen. Erwägen Sie eine bedingte Antwort wie „Wenn Ihr Problem … ist, dann ist die Lösung …“.

    – Yunnosch

    11. August 2020 um 7:02 Uhr

  • Dies ist keine Web-API. Ich beziehe mich auf native Syscalls.

    – Mick

    12. August 2020 um 17:19 Uhr

1227760cookie-checkWie kann ich die API-Aufrufe einer Anwendung auf einem iOS-Gerät mit Jailbreak überwachen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy