Ich möchte Methode aus allen .smalli-Datei extrahiert.
Gibt es ein Format, um Methoden (API-Funktionen) in .smalli-Datei zu deklarieren, so kann ich es leicht mit Python-Skript extrahieren. Ich bin auf der Suche nach Konzept, so dass ich identifizieren kann, wie 1. Benutzerdefinieren Funktion 2. API-Funktion 3. API-Aufrufsequenz sind definiert und deklariert. Ich möchte nur API-Funktionen und API-Aufrufsequenz mit Python zu drucken.Wie kann ich Methoden identifizieren, die in der .smali-Datei deklariert sind?
Antwort
Die Frage fragt nach Parsing Smali-Dateien, aber das ist wahrscheinlich nicht das, was Sie eigentlich wollen. Angenommen, Ihr Ziel besteht darin, Android-Anwendungen zu analysieren, müssen Sie die Dateien dex analysieren. Glücklicherweise gibt es ein in Python geschriebenes Tool namens Enjarify, das einen Dex-Parser enthält. Es ist nicht dazu gedacht, als eine Bibliothek verwendet zu werden, daher wird es ein wenig Arbeit in Anspruch nehmen, es zu integrieren, aber Sie sollten es ziemlich leicht herausfinden können. Sie können beginnen, indem Sie auf parsedex.py schauen.
Angenommen, Sie möchten wirklich Smali-Dateien aus irgendeinem Grund analysieren, Dinge sind viel schwieriger, als Smali ist ein Dateiformat durch das Smali-Tool, das in Java geschrieben definiert ist. Sie könnten jedoch Jython verwenden, um es von Python aus aufzurufen.
Danke, ich möchte Funktionen und API-Aufruf-Sequenz aus .smalli Datei extrahieren und ich möchte Feature-Vektor für meine Forschungsarbeit erstellen. Ich habe baksmali Werkzeug verwendet, um calssses.de in .smalli Dateien umzuwandeln. für Beispiel Landroid/App/Activity ->
Folgende ist Syntax, die verwendet wird .Smali Funktion zu identifizieren aufruft
- invoke-super vx, vy,: ruft die Methode in übergeordneten Klassen-Objekt vx, vorbei im Parameter (s) vy.
- invoke-direct vx, vy: ruft eine Methode in Objekt vx mit den Parametern vy, ... ohne die Auflösung der virtuellen Methode auf.
- invoke-virtual vx, vy: ruft die virtuelle Methode in Objekt vx auf und übergibt die Parameter vy.
folgenden Links bieten gute Quelle mit .smalli Datei zu starten https://apkudo.com/?p=775
- 1. Python: Sind Wörterbücher in Methoden global deklariert?
- 2. Wie kann ich auf IBOutlets zugreifen, die in der Superklasse deklariert sind?
- 3. Wie kann ich Schichten identifizieren, die Polygone
- 4. Warum können Methoden in Go nur für Typen deklariert werden, die in demselben Paket definiert sind?
- 5. Wie kann ich die Zeilen identifizieren, die an einem Oracle Deadlock beteiligt sind?
- 6. Wie kann ich Untergruppen identifizieren, die in einer Gruppe ähnlicher Gruppen vorhanden sind?
- 7. Wie kann ich auf Variablen zugreifen, die in einer Funktion deklariert sind?
- 8. Sind die Methoden sicher?
- 9. Sind die Variablen innerhalb von main in Java statisch deklariert?
- 10. Wie kann ich ionischen Templates mitteilen, dass die Methoden der Komponenten optional sind?
- 11. Wo deklariert man Objekte und Methoden in der GUI-Programmierung?
- 12. Firebase: Wie kann ich registrierte Kontakte identifizieren?
- 13. Ich kann die Daten nicht identifizieren
- 14. Kann ich berechnete Formelspalten in Leistungsabfragequellentabellen identifizieren
- 15. Wie Methoden und Eigenschaften eines Objekts in JavaScript zu identifizieren
- 16. Von der Liste der Zeichenfolgen, identifizieren, die menschliche Namen sind und die nicht sind
- 17. Klassenvariablen, die nicht innerhalb der Hauptfunktion deklariert sind C++
- 18. Zeichen zu identifizieren, die entkommen sind
- 19. So identifizieren Sie anonyme Methoden in System.Reflection
- 20. Wie kann ich mehrere USB-Soundkarten identifizieren
- 21. Wie kann ich die Vordergrund-App im Betriebssystem identifizieren?
- 22. Warum werden von meiner Schnittstelle eingegebene Objekte keine Methoden ausführen, die nicht in der Schnittstelle deklariert sind?
- 23. Eclipse-Importabhängigkeiten, die in einem Maven Profil deklariert sind
- 24. ASP.NET-Anforderungen in der Warteschlange, kann ich identifizieren, was diese Anforderungen sind?
- 25. Wie kann ich eine Person anhand der Form identifizieren?
- 26. Wie kann ich Methoden methodisch in neue Methoden ersetzen?
- 27. Wie kann ich benutzerdefinierte Fehler identifizieren
- 28. Sind alle Instanzvariablen außerhalb von Funktionen deklariert?
- 29. Wie kann ich redundanten Code in Perl identifizieren und entfernen?
- 30. Ich kann die Webseite in BeautifulSoup nicht nach URL identifizieren
Haben Sie smali oder dex bedeuten? Enjarify analysiert Dex-Dateien und ist in Python geschrieben. – Antimony
ich meine smali. Ich möchte API-Funktionen aus .smali-Datei extrahieren, aber ich bin nicht in der Lage zu verstehen, welche API-Funktionen sind. Gibt es eine spezielle Möglichkeit, API-Funktionen zu definieren, so dass ich sie aus .smalli-Datei identifizieren kann. Ich möchte API-Aufrufsequenz auch extrahieren, also gibt es irgendwelche Weisen, mit denen ich API Anrufreihenfolge identifizieren und es extrahieren kann. –