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.
- 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.
- In den Optionen muss die Option leaderboard score submission auf auto gestellt sein. Dann werden jedes Mal die erreichten Punkte zu limasky.com uebertragen.

- Es wird das Programm tcpdump benoetigt.
- Bevor das Spiel beginnen kann, gibt man folgendes im Terminal ein:
su (Eingabe des Root-Passwortes alpine) tcpdump -w ifdump.en0 -i en0
- Der tcpdump-Befehl speichert in die Datei ifdump.en0 alle Netzwerkpakete, die ueber WLAN verschickt und empfangen werden.
- 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.
- 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.
- 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.
- 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.
Man müsste also am besten den RAM manipulieren, gibt es für die bash ein CheatEngine-ähnliches Programm?
Den RAM? Man muesste “einfach nur” den Assemblercode durchgehen, bis man die Funktion stoesst, die den Hash generiert. Aber das keonnte eine Weile dauern ;)
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.
Das auf jeden Fall. Also solche Variablen muessen dann ohnehin mit dem Original uebereinstimmen.
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.
@Anonymouse
Öhm. Die Klammern wurden weggemacht.
Z.4: (key)DoodleJumpHash(/key)
Z.5: (string)YYYYY(/string)
MfG
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
Das die URL so zusammengeknuepft wird, ist mir schon klar. Nur den richtigen shash fuer die in dazugehoerigen Punkte benoetigt man.
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
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
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.
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
Könnte man nicht mit dem Hex-Editor die Sprungfeder modifizieren und vllt auf Ca. 2 mio punkte pro Sprung drauf bekommt?
Also ich bezweifle, dass man mit einem Hex-Editor irgendwas erreichen kann. Die Punkte werden wohl kaum als String drinnen stehen.
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
ups .. sorry my i did a mistake: the word is gombaliste. So md5 gombaliste1000000 is 0cc64645f89d5044c4974ad85cbf5e78
that’s all
Thx a lot. This is very cool!
Man kann ja einfach jetpackhack benutzen ;)
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
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.
@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 ? ? ?
@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 ;)
Steht alles in dem Artikel, wie ich die 666666 Punkte reingebracht habe.