iPhone Doodle Jump Hack

Doodle Jump ist ein Spiel fuers iPhone. Ich wollte den HighScore von Doodle Jump hacken.

Ich hab’s leider nicht ganz geschafft. Warscheinlich waren auch schon 1000 andere Leute vor mir genau an dieser Stelle.

  1. Man benoetigt dazu – wer haette es gedacht -  ein iPhone, auf dem Doodle Jump installiert ist. Ausserdem muss das iPhone gecrackt werden, damit die App Terminal installiert werden kann. Am besten ueber Cydia.
  2. In den Optionen muss die Option leaderboard score submission auf auto gestellt sein. Dann werden jedes Mal die erreichten Punkte zu limasky.com uebertragen.
  3. Es wird das Programm tcpdump benoetigt.
  4. Bevor das Spiel beginnen kann, gibt man folgendes im Terminal ein:
    su
    (Eingabe des Root-Passwortes alpine)
    tcpdump -w ifdump.en0 -i en0
  5. Der tcpdump-Befehl speichert in die Datei ifdump.en0 alle Netzwerkpakete, die ueber WLAN verschickt und empfangen werden.
  6. Wenn man so weit ist, kann man anfangen Doodle Jump zu spielen. Dazu einfach tcpdump weiter rennen lassen, also einfach den Terminal schliessen. Ein Spiel reicht aus.
  7. Nachdem man abgestuertzt ist, werden die Punkte zum Limasky-Server geschickt. Jede Punkte-Anzahl wird nur einmal zum Server geschickt. Das heisst, wenn schon einmal z. B. 1708 verschickt wurde, wird bei einem 2. Versuch mit 1708 Punkten nicht noch einmal dieser Wert uebertragen.
  8. Nun beendet man im Terminal den tcpdump (4) mit dem Ctrl+C Befehl. Dieser wird am iPhone ueber die Tasten 123 –> #+= –> Punkt in der 2. Zeile –> c.
  9. Danach uebertraegt man die Datei /private/var/root/ifdump.en0 mittels WinSCP oder SCP vom iPhone und ladet sie mit Wireshark.

So schaut dann ein Paket aus, das der Sniffer abgefangen hat:

GET /limasky/webservices/doodle_jump/gethighscores.cfm?s=1708&sn=TheFox&
shash=2088cffb1b83d986ee2a9609e69c75f5&uid=9fc51f9e64626801981ab594c0974
77885c128f8&m=1&lng=de&gl2=0 HTTP/1.1
User-Agent: DoodleJump/1.13.2 CFNetwork/342.1 Darwin/9.4.1
Accept: */*
Accept-Language: de-de
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: www.limasky.com

Jetzt sind wir an dem Punkt, wo es fuer normal sterbliche Menschen nicht mehr so einfach weiter geht. Das Problem ist jetzt folgendes: Die Variable shash, die vermutlich ein MD5-Hash ist, wird warscheinlich aus dem Score (s=) und anderen Werten erzeugt. Wenn dieser Hash falsch ist, nimmt der Server die Punkte nicht an. Dazu muesste man Doodle Jump cracken. Also mit einem Disassembler den Quellcode rekonstruieren. Das, beim iPhone SDK mitgelieferte Tool, otool spuckt leider nur Assambler-Code aus. Ausserdem gibt es noch otx und class-dump. Wenn man darauf naeher eingeht, koennte man Doodle Jump irgendwie cracken und sich den richtigen Hash zusammen bauen. Man braucht nicht unbedingt die hier aufgefuehrten Schritte durchfuehren, wenn man gleich Doodle Jump crackt. Somit koennte man sich an erster Stelle der Highscores platzieren ohne ein einziges Mal Doodle Jump gespielt zu haben.

Es war jedoch einen Versuch wert und ein erster Anhaltspunkt um ein Spiel zu hacken.

Aehnliche Artikel

Dieser Beitrag wurde unter Security abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

23 Antworten auf iPhone Doodle Jump Hack

  1. Man müsste also am besten den RAM manipulieren, gibt es für die bash ein CheatEngine-ähnliches Programm?

  2. TheFox sagt:

    Den RAM? Man muesste “einfach nur” den Assemblercode durchgehen, bis man die Funktion stoesst, die den Hash generiert. Aber das keonnte eine Weile dauern ;)

  3. Anonymouse sagt:

    Hey,
    auch ich habe mich hiermit beschaeftigt.
    Sehr auffaellig ist uebrigens auch, dass Doodlejump einen eigenen Useragent setzt.
    Ich denke, dass der Server auch diesen ueberprueft.
    Ich werde gleich nochmal ein paar Sachen ausprobieren.
    Bis dahin,
    Anonymouse.

  4. TheFox sagt:

    Das auf jeden Fall. Also solche Variablen muessen dann ohnehin mit dem Original uebereinstimmen.

  5. Anonymouse sagt:

    Hey,
    folgendes -für den SecureHash benötigte- Key/Value-Pair habe ich in der /Library/Preferences/com.yourcompany.DoodleJump.plist gefunden:
    DoodleJumpHash
    YYYYY
    Ich denke, dieser Wert spielt die Grundlage für die Verschlüsselung des Wertes.
    Desweiteren wird eine Abfrage mit der UserID an den Server gesendet(getControlData.cmf). Was das Return (“|controlstart|25`0`0|controlend|”) zu bedeuten hat, weiß ich jedoch nicht. Nun müsste man noch einen Algorithmus schreiben, welcher es ermöglicht die Punktzahl etc. mit dem DoodleJumpHash verknüpft.
    Dafür müsste man nun aber wirklich Disassamblern.
    Ich würde sagen es fehlen uns noch gefühlte 30% Prozent zum ercheaten des Highscores, da wir nun eine Basis gefunden haben.
    Dennoch wird es durchaus schwieriger sein, den sHash zu ermittlen.
    MfG und viel Erfolg :-)
    P.S. Die UID hat (höchstwahrscheinlich) KEINEN Einfluss auf den DoodleJumpHash.

  6. Anonymouse sagt:

    @Anonymouse
    Öhm. Die Klammern wurden weggemacht.
    Z.4: (key)DoodleJumpHash(/key)
    Z.5: (string)YYYYY(/string)
    MfG

  7. Cl€!N sagt:

    i wü ja nigs sagen owa wenn ma des zusammenknüpft kummt es ausi
    http://www.limasky.com/limasky/webservices/doodle_jump/gethighscores.cfm?s=1708&sn=TheFox&shash=2088cffb1b83d986ee2a9609e69c75f5&uid=9fc51f9e64626801981ab594c097477885c128f8&m=1&lng=de&gl2=0

    da san glaub i die ganzen recorde gspeichert nur mehr serveer hacken und ma hats schu :D ich habs noch nciht probiert, aber ich hoffe ich konnte euch helfen

  8. TheFox sagt:

    Das die URL so zusammengeknuepft wird, ist mir schon klar. Nur den richtigen shash fuer die in dazugehoerigen Punkte benoetigt man.

  9. Cl€!N sagt:

    ja das ist klar aja ich hab eine frage hab alle gemacht und auch mit wireshack, aber mein problem ist das ich das von limasky nicht fien hier eine kleienr screeni http://photos-e.ak.fbcdn.net/hphotos-ak-snc3/hs491.snc3/26830_107415012618437_100000498163744_184957_2956643_n.jpg

  10. Cl€!N sagt:

    bin hier auf etwas neues geschtosen
    http://www.chip.de/downloads/Hex-Editor-MX_30351843.html

    öffnet mit dem die dateidoodlejump (die befindet sich im doodlejump.app ordner also nicht di richtige ipa)

    so jezz noch ein bisschen bearbeiten…..

    und man hat es vl

  11. TheFox sagt:

    Nein man braucht keinen Hex-Editor dafuer, sondern einen Decompiler. Ausserdem muss man Assembler-Kenntnisse haben, damit man herausfinden kann, wie der Hash zusammengestellt wird. Das ist viel komplizierter, als du es dir vorstellst.

  12. Cl€!N sagt:

    doch es ist moglich, den bei denn bei der binary file ist gespeichert, bei zeile 27534 wilange man z.b.: den sprngschu hat, also kann man dan auf undendlich stellen, dann ist es ja acuh irgendwie ein hack oda?
    aja jemand hat dafür extra einen springschu hack erstellet, bei funkt er jedoc nciht aber vl bei euch hier der link:

    http://www.ipodtouchfans.com/forums/showthread.php?t=275928

    dort sind auch noch ein paar andere doodle jump hacks… bei mir geht jedoch keiner

  13. anonym sagt:

    Könnte man nicht mit dem Hex-Editor die Sprungfeder modifizieren und vllt auf Ca. 2 mio punkte pro Sprung drauf bekommt?

  14. TheFox sagt:

    Also ich bezweifle, dass man mit einem Hex-Editor irgendwas erreichen kann. Die Punkte werden wohl kaum als String drinnen stehen.

  15. Hi guys, i disassbeled the executable and found how the score hash if generated. It’s a MD5 sum of gombalite + score. So if you want the shash of 1000000 points you have to get the md5 of gombalite1000000 which is 0cc64645f89d5044c4974ad85cbf5e78
    Cheerz

  16. ups .. sorry my i did a mistake: the word is gombaliste. So md5 gombaliste1000000 is 0cc64645f89d5044c4974ad85cbf5e78
    that’s all

  17. TheFox sagt:

    Thx a lot. This is very cool!

  18. Anonymi sagt:

    Man kann ja einfach jetpackhack benutzen ;)

  19. Mandarine sagt:

    der md5-hash ist 0cc64645f89d5044c4974ad85cbf5e78 des hab ich vom besten doodle jump hacker der welt, niemand sonst schafft es die leaderboards unerkannt zu hacken, seine scores werden nicht entfernt (ich nenne keine Namen^^) der code ist für 1 million, um das zu wissen mus man schonmal eine million ohne terminal geschafft haben. von diesem standpunkt aus ist es möglich den MD5-HASH von 1.000.000 bis zu 9.999.999 zu berechnen, ab 10.000.000 ändert dieser sich allerdings so drastisch, dass er nichtmehr berechenbar ist, sobald das erste mal platz 1 all time 10.000.000 oder mehr sind, sind sie echt, erst dann wird es möglich sein, auch 10.000.000 zu hacken

    liebe grüße Mandarine

  20. TheFox sagt:

    Wieso sollen der Hash fuer ueber 9999999 nicht berechnenbar sein? Die Punkte ueber 10000000 werden mit “gombaliste” trotzdem angenommen. Das die Scores wieder geloescht werden haengt aber nicht damit zusammen, dass der MD5-Hash falsch ist, sondern weil die UID nicht stimmt und vermutlich ein paar andere Parameter auch nicht. Man muesste also noch rausfinden wie die UID berechnet wird.

  21. Mandarine sagt:

    @TheFox
    also des is sau kompliziert aber die UID wurde bereits von einem der besten online hacker der Welt berechnet ;) er ist der einzige dessen scores trotz hack nicht deleated wurden^^ Naja ich hab ca 20 online hacks aber wird alles wieder removed und mein iPod ist geblocklisted worden :O wie hast du damals die 666.666 reingebracht ? ? ?

  22. Mandarine sagt:

    @TheFox
    bist du auf ICQ, skype, facebook oder lokalisten TheFox??? weil twitter bin ich nicht^^ und ich würd gern mal mit dir n paar hacks austauschen ;)

  23. TheFox sagt:

    Steht alles in dem Artikel, wie ich die 666666 Punkte reingebracht habe.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">