iOS-Anwendung wird bei der Ausführung in einem Gerät an viele Laufzeitbibliotheken angehängt. Wie können wir unsere iOS App vor anderen Debuggern schützen, die beim Bewerbungsprozess angegriffen werden? Wie mit GDB können wir in den Anwendungsprozess hacken und Laufzeit manipulieren. Gibt es eine Möglichkeit, mit der Einstellung oder dem Code aufzuhören? Oder gibt es eine Möglichkeit zu überprüfen, ob andere Laufzeitbibliotheken an den Prozess angeschlossen werden? Können wir die App in solchen Szenarien durchaus nutzen?iOS-App vor Laufzeit-Hooking schützen
1
A
Antwort
0
Wir können das Änderungsdatum der Datei Info.plist und des Anwendungsnamens überprüfen und es mit dem Änderungsdatum des Pakets vergleichen. Wenn ein Treffer nicht gefunden wurde, können wir daraus schließen, dass die Binärdatei der App geändert wurde.
//Check date of modifications in files (if different - app cracked)
NSString* path = [NSString stringWithFormat:@"%@/Info.plist", bundlePath];
NSString* path2 = [NSString stringWithFormat:@"%@/AppName", bundlePath];
NSDate* infoModifiedDate = [[manager attributesOfFileSystemForPath:path error:nil] fileModificationDate];
NSDate* infoModifiedDate2 = [[manager attributesOfFileSystemForPath:path2 error:nil] fileModificationDate];
NSDate* pkgInfoModifiedDate = [[manager attributesOfFileSystemForPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"PkgInfo"] error:nil] fileModificationDate];
if([infoModifiedDate timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {
return YES;
}
if([infoModifiedDate2 timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {
return YES;
}
+0
Wenn die App-Binärdatei geändert wurde, ist dieser Code möglicherweise nicht mehr vorhanden. – Siguza
Verwandte Themen
- 1. Vor Mehrfachanfragen schützen - WebAPI
- 2. Benutzer vor unbefugtem Zugriff schützen
- 3. So schützen Sie vor Überflutung
- 4. Formular vor dem Einfrieren schützen
- 5. Wann sollte ich vor Null schützen?
- 6. Schützen Sie Bilder vor öffentlichem Laravel 5
- 7. Wie sollte ich vor harten Linkangriffen schützen?
- 8. Schützen Sie Dateien vor SVN commit
- 9. Schützen von Datenbankzeilen vor manuellen Änderungen
- 10. Android AAR-Datei vor Reflexion schützen
- 11. Verschlüsselung, um Dateien vor Änderungen zu schützen
- 12. Wie PHP-Anwendung vor CRLF-Angriff schützen?
- 13. Schützen Sie externe Datendatei vor unbefugten Änderungen
- 14. Schützen einer Webanwendung vor Zugriff in Azure
- 15. Raspberry vor dem Blanking schützen (Konsole)
- 16. Schützen Sie iPhone App vor Hackern
- 17. Chrome Extension - CSS vor dem Überschreiben schützen
- 18. Können Sie Verbindungsserver vor Sicherheitsrisiken schützen?
- 19. So schützen Sie SQLite-Datenbank vor Korruption
- 20. scala/akka: Schützen von Daten vor Rennbedingungen
- 21. Schützen Sie Server vor Stresstest oder vor V-Usern
- 22. Flash-Video vom Download schützen/rechts schützen
- 23. Wie kann ich vor direktem Zugriff auf Bilder schützen?
- 24. Wie kann ich .NET Web Services vor XXE-Exploits schützen?
- 25. So schützen Sie ein IOT-Gerät vor Klonen
- 26. Muss ich meine Android-App vor dem Kopieren schützen?
- 27. So schützen oder sichern Sie Java-Code vor dem Dekompilieren
- 28. Schützen Sie ein Blatt vor dem Öffnen in einer Arbeitsmappe
- 29. Wie kann ich mich vor einer Zip-Bombe schützen?
- 30. Gibt es eine Möglichkeit, sich vor Mercurial-Identitätsdiebstahl zu schützen?
Die Antwort ist eine tiefe Nr. Selbst wenn Sie das irgendwie schaffen könnten, genügt es, den relevanten Teil der Binärdatei auf der Festplatte zu entfernen oder auszutauschen, um eventuelle Gegenmaßnahmen zu entfernen. Sie müssen ein gewisses Maß an Vertrauen in das Betriebssystem auf iOS haben, das ist die gesamte Basis des Ökosystems "Walled Garden". Wenn ein böswilliger Benutzer Root-Zugriff auf das Gerät hat, sind alle Wetten deaktiviert - Sie haben keine Kontrolle mehr. –
Vielen Dank für Ihre Antwort @ RichardJ.RossIII. Gibt es eine Möglichkeit, die Binärdatei zumindest davor zu schützen, von einer anderen Partei resigniert zu werden? –
@DebasishChowdhury Ihr Programm ist ein Array von Bytes. Sie können ein Byte-Array nicht davor schützen, geändert zu werden. – Siguza