RAM einer App auslesen

  • Antworten:14
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 27

13.05.2017, 00:57:43 via Website

Ahoi :)
Ich würde gerne wissen, ob ich mit meiner App irgendwie den RAM (Werte von Variablen und Co) einer anderen App auslesen kann und das ohne ROOT, wenn möglich (die App von der ich lesen möchte ist in ActionScript geschrieben).

Vielen Dank vorweg :D

Antworten
  • Forum-Beiträge: 8.173

13.05.2017, 01:15:05 via Website

Natürlich nicht... (silly)

if all else fails, read the instructions.

Antworten
  • Forum-Beiträge: 27

13.05.2017, 12:49:57 via Website

Mein Plan ist wie folgt:
Ich habe ein simples RPG Spiel (Inflation RPG) worin man Items sammeln kann. Da ich den Source von dem Spiel habe, weiß ich in welcher Variable diese gespeichert sind.
Nun möchte ich eine App schreiben, die sich die Liste dieser Items holt und die Namen davon in eine Liste in der App einträgt. Mein Gedanke war, dass meine App, wenn das Spiel läuft, aus dem RAM sich den Inhalt der Variable holt und fertig aber wird wohl ohne ROOT nicht gehen. Daher würde ich gern wissen, wie ich das mit ROOT anstellen kann :)

Antworten
  • Forum-Beiträge: 812

13.05.2017, 13:14:40 via Website

Wenn Du ohnehin die Source hast, wäre es da nicht am einfachsten, die App selber gleich in der beabsichtigten Weise zu modifizieren?
Also die Funktion Deiner geplanten App in das Spiel hineinzuverlagern?
Oder soll Deine App nicht nur für Dich selber sein?

— geändert am 13.05.2017, 13:26:23

Antworten
  • Forum-Beiträge: 27

13.05.2017, 13:28:00 via Website

Hat ein Kumpel auch schon vorgeschlagen aber erstens müsste ich das Spiel bei jedem Update neu modifizieren und zweitens möchte ich meine App ja evtl später im Playstore anbieten :/ Eine modifizierte APK kommt für mich also aktuell zumindest noch nicht in Frage.
Außerdem kann ich kein ActionScript haha :D

Antworten
  • Forum-Beiträge: 812

13.05.2017, 14:25:34 via Website

Was Du mit dem Quellcode machen darfst, sagen die Lizenzbestimmungen des Programmierers. Steht der Quellcode unter der GPL, schliesst das die Verwendung in eigenen Programmen nicht zwingend aus. Zumindest müsste der eigene Quellcode dann auch frei zugänglich, also quelloffen sein.
Ich bin kein Java-Programmierer, glaube aber trotzdem nicht, dass Dein Vorhaben so einfach umzusetzen ist.
Ein Variablenname kann sich auch bei Upgrades ändern. Zudem wird er beim Übersetzen in eine relative Speicheradresse umgesetzt. Enthält die ausgelieferte App keine Symbolinformation mehr, nutzt Dir der Variablenname nichts.
Zudem werden die Apps in Sandboxes, also gekapselten Bereichen ausgeführt, die ja gerade verhindern sollen, dass sich Apps gegenseitig beeinflussen, also auch auf ihre Daten zugreifen. Wie gesagt, ich kenne mich nicht wirklich mit App-Programmierung aus, aber ich vermute ohne Unterstützung der Fremdapp, die die gewünschte Information in eine Datei schreiben könnte, wird das nicht gehen.

Antworten
  • Forum-Beiträge: 374

13.05.2017, 14:45:38 via Website

Ich habe den Eindruck, dass hier an das peek vom 64er gedacht wird. So etwas geht schon lange nicht mehr, ASLR ist schon seit einer kleinen Ewigkeit im Kernel implementiert. Entweder man benutzt gdb oder klöppelt selbst den ptrace in das Programm.

Antworten
  • Forum-Beiträge: 34

13.05.2017, 17:50:27 via Website

Haakon T.

Entweder man benutzt gdb oder klöppelt selbst den ptrace in das Programm.

Interessante Aussage. Ich bin, weiss Gott, kein Anfänger was Programmierung angeht. Doch so sehr ich mich auch bemühe kann icht nicht verstehen, was der Inhalt dieses Satzes bedeuten soll. :)

@ Dominic
Ich gehe davon aus, dass dein Game SQLite für das Speichern seiner Daten nutzt. Wenn du den Quellcode hast, solltest du das auch dann sehen können, wenn du von ActionScript nicht so viel Ahnung hast. Ich habe auch eine App, deren (SQLite-)Daten ich mit einem DatenSniper auslesen wollte, jedoch ohne Erfolg. Allerdings bin ich im Gegensatz zu dir froh darüber, dass meine Daten nicht einfach mal schnell ausgelesen werden können. ;)
Dir wird also nichts anderes bleiben, als das Attribut der Datei (wenn es keine SQLite-Datenbank ist) nach jedem Update von MODE_PRIVATE wieder auf MODE_WORLD_READABLE zu setzen, um freien Lese-Zugriff auf die Datei zu bekommen.

Antworten
  • Forum-Beiträge: 27

22.05.2017, 11:50:16 via Website

Hallo und danke für die Antwort^^ Es ist ja nicht mein Spiel. Daher weiß ich nicht, wie die Daten genau gespeichert werden aber das lässt sich sicher herausfinden.


Edit by Mod Klaus: Unnötiges Vollzitat entfernt

— geändert am 22.05.2017, 14:42:57 durch Moderator

Antworten
  • Forum-Beiträge: 224

22.05.2017, 22:59:06 via Website

Das klingt jetzt aber grenzwertig, du willst den RAM eines Spieles auslesen um dir dadurch Vorteile zu verschaffen?


Edit by Mod Klaus: Unnötiges Vollzitat entfernt

— geändert am 23.05.2017, 06:38:47 durch Moderator

Antworten
Klaus
  • Blogger
  • Forum-Beiträge: 19.167

23.05.2017, 06:39:39 via Website

Hallo zusammen. :)

Bitte unterlasst doch die Vollzitiate, wenn ihr direkt auf ein Posting antwortet, dass macht es nicht wirklich übersichtlicher und man muss (vor allem in der App) ständig scrollen. Danke (smug)

| LG Klaus |
| Google Nexus 6P - Dirty Unicorns | Google Nexus 6 - Dirty Unicorns |
| Das AndroidPITiden-Buch | Die Androiden-Toolbox | AndroidPIT-Regeln |

swa00

Antworten
  • Forum-Beiträge: 27

02.06.2017, 18:31:07 via Website

Ich möchte mit meiner App einfach eine schnelle Übersicht meiner gesammelten Items haben ohne blödes scrollen, etc. Das Spiel ist nicht online also erlang ich keinen Vorteil gegenüber anderen Mitspielern (da es ja keine gibt).

Antworten

Empfohlene Artikel