Ich habe mich immer gefragt, wie Sie eine undokumentierte / private API finden.
Beispiel: Apple undokumentierte / private API, Play Station , Windows Phone 7 , Win32-Kernel , Windows-API , versteckter Rückruf usw.
Mit welchen Tools informieren sich Hacker über private und nicht dokumentierte Funktionen?
Wo kann ich über die Erfahrungen der Menschen mit privaten APIs und Reverse Engineering-Techniken lesen, die die Geheimnisse enthüllen, die normalerweise in der API-Dokumentation erklärt werden?
danke,
A.
Normale Tools, mit denen Sie Software entwickeln :)
Normalerweise sind undokumentierte API-Funktionen genau das, undokumentiert und nicht wirklich sorgfältig verborgene Geheimnisse.
Das Entwerfen einer zukunftssicheren API ist schwierig - Sie können problemlos Inhalte zur API hinzufügen, aber es ist wirklich schwierig, etwas zu entfernen (ohne einige Clients zu beschädigen). Sie werden also sehr vorsichtig, wenn Sie etwas zur API hinzufügen. Aus diesem Grund gibt es in der API möglicherweise einige zusätzliche Funktionen (zum Testen, in der Entwicklung, für einen schnellen Hack?), Die nicht dokumentiert sind und keine Garantie dafür haben, dass sie funktionieren oder in der nächsten Version vorhanden sind.
Diese undokumentierten Funktionen lassen sich leicht finden, wenn Sie wissen, wie Compiler, Linker, Bibliotheken und Debugger funktionieren (Systemprogrammierung). Die Kenntnis der Assemblersprache der Zielarchitektur schadet nicht. Wenn Ihre IDE / Ihr Compiler funktionierende ausführbare Dateien erstellen kann, können Sie dies auch "manuell" tun. Wenn Sie diesen Pfad offen halten, werden Sie möglicherweise einige versteckte Funktionen entdecken :)
Beispiel in einer Unix-Umgebung: Ein Szenario, in dem wir nur Dokumentation für die printf- Funktion haben und wissen möchten, ob es andere printf- ähnliche Funktionen gibt. Der Gedankengang könnte ungefähr so aussehen:
1. Überprüfen Sie die Header-Dateien
2. Überprüfen Sie die Bibliothek
3. Zerlegen Sie die Bibliotheksfunktion
Oder etwas ähnliches...
quelle
Haftungsausschluss: Ich mag die Antwort von ChrisF. Ich denke, es werden einige Ansätze ausgelassen. Wenn es in den Kommentaren zur Antwort steht, wie sie behandelt werden, werde ich meine Antwort löschen.
Es könnte irgendwie unter Dekompilierung fallen:
Das Auffinden anderer undokumentierter APIs kann auch durch Debuggen eines vom Hersteller bereitgestellten Tools erfolgen, das genau das tut, was Sie möchten, und durch Verfolgen von Fernaufrufen. Auf diese Weise können Sie eine Vorstellung davon bekommen, welche Art von Daten wohin gesendet wird.
Andere "benutzerdefinierte" Tools können dann geschrieben werden, um mit diesen undokumentierten APIs unter Verwendung von Python und CTYPES oder Ruby mit einer ähnlichen Version zu spielen, bis Sie genau herausfinden, was sie tun oder was sie für Abstürze tun. Dieses Thema wird von Aaron Portnoy in minimaler Tiefe behandelt in: http://pentest.cryptocity.net/reverse-engineering/ und einigen seiner anderen Vorträge auf Konferenzen (ich erinnere mich, dass er bei einem Vortrag in Brasilien direkt darüber spricht ). Es hängt mit RE zusammen, aber ich denke nicht, dass es genau nur allgemeine RE ist. Hinweis: Die Videos auf pentest.cryptocity.net sind nicht NUR dieses Thema. Sie decken andere Bereiche eingehender ab, dies wird nur angesprochen. Ich denke, weil es oft etwas ist, das Tester als "die genauen Schritte würden unsere Geheimnisse preisgeben" schützen.
Vielen Dank für das Lesen von Feedback geschätzt.
Bearbeiten: Ein Tool, das sich auf der Windows-Seite als nützlich erweisen kann, wird hier nur minimal behandelt: http://breakingcode.wordpress.com/2010/08/24/winappdbg-1-4-is-out/
Call Hijacking für dickes Java Clients, die benutzerdefinierte Netzwerkdienste fuzzeln, werden hier behandelt:
http://www.securitytube.net/JavaSnoop-How-to-hack-anything-written-in-Java-video.aspx
Letzteres ist nur minimal relevant, könnte sich jedoch als relevant erweisen, wohin der Fragesteller letztendlich geht. Verwenden von APIs, die Sie nicht besitzen ... was auch immer.
quelle
Hacken klingt ziemlich romantisch, Industriespionage, Lecks, Bestechung, Diebstahl und einfaches Glück nicht. Ich würde sie aber nicht zählen.
quelle