Wie kann ich mein Handy mit Java rooten?

K

kneitzel

Also du hast erst einmal nicht genau spezifiziert, was Du wo und wie machen willst.

Wenn es um Desktops geht, dann ist das große Problem, dass Dein Code erst einmal in einer Java VM läuft. Somit kannst Du mit sehr großer Wahrscheinlichkeit eben kein Exploit in einem Betriebssystem direkt ansteuern. Das macht eine Java Umgebung etwas sicherer. (Das ist aber nur ein minimaler Vorteil. Denn es geht ja nur um den Erstzugang zu einem System, alles andere kommt dann im Anschluss und das natürlich mit native Dingen ....)

Auf Android kann es etwas anders aussehen, denn da hast Du dies nicht mehr so mit VM. Eine Lücke in Android kann durchaus auch aus dem Java Code angesprochen werden.
 
K

kneitzel

Ach ja - wegen der Überschrift: Wenn es ums rooten von Geräten geht, dann hilft Google weiter. Generell sollte man sich überlegen, was man überhaupt will: Root Zugriff ist ja selten das, was man wirklich braucht. In erster Linie wollen die meisten doch das System neu flashen, d.h. der Part muss entsperrt werden. Bei Android Geräten wird man wohl fast immer auf xda Developers im Forum landen. Da findet man dann neben Anleitungen zu diversen Geräten auch die Links zu den Images und so ...
 
K

kneitzel

Schau Dir die ganze API von Java im Detail an und versuch einfach alles, was Du irgendwie mit der API machen könntest. Versuch die verrücktesten Dinge, an die die Entwickler bei Google nicht gedacht haben. Schau Dir das Verhalten an, analysiere es im Detail.
Im Idealfall machst Du alles in einem Emulator, auf den Du dann mit Debuggern schaust, damit Du wirklich jeden kleinsten Pups von Android mitbekommst. Sehr hilfreich ist dann, dass große Teile Open Source sind.... (Ein valider Ansatz ist also auch, da anzusetzen. Findest Du Implementationen, bei denen Checks nicht ausreichend durchgeführt wurden?)
Dann bekommst Du evtl. gewisse Fehlverhalten mit. Und aus den Fehlverhalten und Deinem gewonnenen ganz tiefen Verständnis der Abläufe nutzt Du dann Kombinationen. Und so, aus einer Reihe ganz vieler kleiner, jeweils für sich uninteressante Dinge, schaffst Du dann, dass etwas passiert, dass dich weiter bringt.

Um dahin zu kommen: Erarbeite Dir einfach erst einmal die Anfänge. Lern einfache Android Applikationen zu schreiben und erarbeite Dir im Detail, was für Komponenten es alle gibt und wie das normale Zusammenspiel ist. Teste das in der Tiefe aus.
Dann schaust Du als nächstes in den Open Source Teil von Android. Dann bist Du hier DER Android Experte ... was sag ich: Weltweit! Mit dem Fachwissen wirst Du dann bestimmt auch weltweit als Experte anerkannt...

Sorry, aber Deine Erwartungshaltung war doch nicht wirklich, dass Du ein kleines Hello World Java/Android Appchen schreiben könntest und schon wäre Dein Bootloader entsperrt. Und dann mit zwei einfachen Zeilen Code mehr hast Du alle Treiber incl. Details extrahiert und du kannst ein triviales "echo ich bin cool" auf der Kommandozeile durchführen und schon hast Du ein aktuelles Android Image für Dein Gerät, das Du aufspielen kannst....
Und viele Leute, die sich seit Jahren mit sowas beschäftigen, können sowas nicht hin kriegen :)
 
Hallo kneitzel,

Schau Dir die ganze API von Java im Detail an und versuch einfach alles, was Du irgendwie mit der API machen könntest. Versuch die verrücktesten Dinge, an die die Entwickler bei Google nicht gedacht haben. Schau Dir das Verhalten an, analysiere es im Detail.
Im Idealfall machst Du alles in einem Emulator, auf den Du dann mit Debuggern schaust, damit Du wirklich jeden kleinsten Pups von Android mitbekommst. Sehr hilfreich ist dann, dass große Teile Open Source sind.... (Ein valider Ansatz ist also auch, da anzusetzen. Findest Du Implementationen, bei denen Checks nicht ausreichend durchgeführt wurden?)
Dann bekommst Du evtl. gewisse Fehlverhalten mit. Und aus den Fehlverhalten und Deinem gewonnenen ganz tiefen Verständnis der Abläufe nutzt Du dann Kombinationen. Und so, aus einer Reihe ganz vieler kleiner, jeweils für sich uninteressante Dinge, schaffst Du dann, dass etwas passiert, dass dich weiter bringt.

Um dahin zu kommen: Erarbeite Dir einfach erst einmal die Anfänge. Lern einfache Android Applikationen zu schreiben und erarbeite Dir im Detail, was für Komponenten es alle gibt und wie das normale Zusammenspiel ist. Teste das in der Tiefe aus.
Dann schaust Du als nächstes in den Open Source Teil von Android. Dann bist Du hier DER Android Experte ... was sag ich: Weltweit! Mit dem Fachwissen wirst Du dann bestimmt auch weltweit als Experte anerkannt...
Hast du das wirklich ernst gemeint oder wolltest du dich über mich lustig machen?


Danke (falls dies im Ernst geschrieben wurde) und Grüße
 
K

kneitzel

Also der erste Teil ist ernst gemeint. So ist die Herangehensweise tatsächlich. Es geht halt darum, unerwünschtes Verhalten (Bugs) zu finden und dann auszunutzen.

Der letzte Teil bezüglich Deiner Erwartungshaltung ist nicht mehr ganz so sachlich / ernst. Wenn es mit Java einfach möglich wäre, ein System zu rooten oder so, dann würde es da ja entsprechende Lösungen geben...

Evtl. ansonsten einfach einmal nach Penetration Test oder so googlen. Da wirst Du dann bestimmt auch fündig und wirst einiges mehr finden. Aber wenn es Dir nur um Dein Smartphone geht: Such bei Google / xda und wenn es da nichts gibt, dann vergiss es einfach... Und bei zukünftigen Anschaffungen evtl. da vorab schauen, so Du die Möglichkeit haben willst.
 
Hallo kneitzel,

So ist die Herangehensweise tatsächlich. Es geht halt darum, unerwünschtes Verhalten (Bugs) zu finden und dann auszunutzen.
Aber selbst wenn ich mich intensiv zwei Jahre damit beschäftige, ist das keine Garantie, dass ich ein Eskalations-Exploit für Root-Rechte finden werde. Ist das nicht so?

Aber wenn es Dir nur um Dein Smartphone geht: Such bei Google / xda und wenn es da nichts gibt, dann vergiss es einfach...
Ist es dann unmöglich so ein Exploit zu finden? Wie haben es dann One Click Root geschafft?


Danke und Grüße
 
Aber selbst wenn ich mich intensiv zwei Jahre damit beschäftige, ist das keine Garantie, dass ich ein Eskalations-Exploit für Root-Rechte finden werde. Ist das nicht so?
Auch 20 Jahre intensives Java-Studium sind keine Garantie, vor allem gibt es keine Garantie, weil es uU einfach gar keine nutzbare Lücke gibt :)


Ist es dann unmöglich so ein Exploit zu finden? Wie haben es dann One Click Root geschafft?
Unmöglich nicht, sieht man ja daran, dass es welche gibt. Braucht viel Glück viel Arbeit und viel Können, wie im magischen Dreieck...
 
Es ist nicht unmöglich, da es offensichtlich ja schon welche gefunden wurden und man Lücken nie gänzlich ausschließen kann.


Realistische Wahrscheinlichkeit für jemanden wie mich (und kneitzel und dich): 0%.
 
wie hoch die Wahrscheinlichkeit ist, dass eine Sicherheitslücke zu finden ist.
Selbst, wenn Du eine Lücke findest, müsstest Du sie ja auch noch ausnutzen. Was an Aufwand alleine hinter einem Buffer Overflow steckt, kannst Du Dir mal unter https://insecure.org/stf/smashstack.html ansehen.

Solltest Du das selbst ausprobieren wollen: unter einem halbwegs aktuellen System mit halbwegs aktuellem Compiler funktionieren die Beispiele nicht ohne zusätzliche Compiler-Flags und ggf. Einstellung bestimmter Kernel-Optionen.
 
Und für wen besteht die höchste Wahrscheinlichkeit (und wie hoch), realistisch gesehen?
Für jemanden, der sich drauf spezialisiert hat.

Wahrscheinlichkeit kannst du dir selbst ausrechnen aus: wie viele Jahre gibts Android, wie viele solcher kritischen Sicherheitslücken sind veröffentlicht, wie viele Leute beschäftigen sich damit.
 
Also Du kannst mit Eintrittswahrscheinlichkeit * Schweregrad * Schadenshöhe quasi den aus Deiner gefundenen Lücke resultierenden Profit berechnen.

Und naja, wenn man sich nicht darauf spezialisiert hat, so ist es eben sehr unwahrscheinlich eine Lücke zu finden.
 
K

kneitzel

Wenn wir uns drauf spezialisieren können, wieso soll die Wahrscheinlichkeit für uns auf 0% stehen?
Meine Frage wäre hier: Woher will er wissen, dass einer von uns nicht bei der NSA ist oder bei einer Hackergruppe oder so?
Vielleicht bin ich der meistgesuchte Hacker des FBI und lebe seit einigen Jahren von dem Geld den ich mit einem iPhone Hack verdiene (das leider jetzt versiegen wird, weil Google meinen Hack leider gefunden hat ...) ...

Aber zu Deiner Frage: Du hast die Komplexität noch nicht durchschaut. Das ist nichts, auf das man sich mal eben so spezialisiert. Und es wurde doch etwas angedeutet: Es gibt durchaus einige Experten - aber wie viele Dinge kommen wirklich zustande? Was kommt denn so durch die Maillisten (Es gibt einige Security Listen) und was kommt an die Öffentlichkeit? Also selbst bei den Experten ist es so, dass jedes Jahr nur wenige irgend etwas finden.
(Zur Ehr-Rettung: Die haben auch andere Aufgaben. Da kommen extrem viele Optimierungen und so ... )

Also Du kannst natürlich Malen lernen. Evtl. wirst Du gut. Aber ein Rembrand wirst Du wohl nicht werden (Chance 0%).
Du kannst Musik machen. Evtl. wirst Du gut. Aber ein Mozart wirst du nur mit 0% Chance .....
Du kannst Lotto spielen. Aber Deine Chance auf den Jackpot ist 0% (ganz kleiner Rundungsfehler!)
 
Passende Stellenanzeigen aus deiner Region:

Oben