RSDF – Reverse Engineering

Posted by eddy14 - 10/01/08 at 06:01 pm

Es war wieder mal einer dieser langweiligen Tage. Ich hatte nichts zu tun so suchte ich mir ein paar Filme aus der Gulli:Börse.
Als wäre ich nicht schon genug genervt, sprangen mir hier und da nur CCF und RSDF Dateien vors Gesicht. Ich hatte es satt mir immer Threads auszusuchen wo die Links im Klartext da lagen (um dann mit etwas Glück zu hoffen, dass die Links nicht schon verpetzt sind).
Auf der Suche nach CCF oder RSDF für Linux stieß ich nur auf Hilfeschreie von armen Linux Nutzern. Ihnen musste jemand helfen!
Kurze Zeit später fand ich heraus, dass der hervorragende jDownloader das RSDF Format unterstützte. Also ging ich (schon wieder, nach meinem letzten Problem) zurück in den IRC Channel des jDownloader Teams (irc.freenode.org #jDownloader).
Nach einer kleinen Probe ob ich nichts böses mit dem RSDF Format hätte (Bin ich ne Petze? :P ) kamen auch nette Antworten von thomas_sch welches mich auf den Thread im Gulli Board aufmerksam machte. Genauer genommen, die Beiträge von Kugelfisch23.
Er fand durch Reverse Engineering den Key zum entschlüsseln für das RSDF Format, und zugleich die Verschlüsselungsmethode.
Ich war glücklich über die Scripte dort, doch dieser eine Drang in mir der schon seit Tagen nach Hardcore Assembler und Reverse Engineering schreit hielt mich nicht davon ab selbst zu reversen!
Ich suchte mir erstmal ein paar Downloader (wusste bis dato nicht mal von welchen Downloadern diese Formate unterstützt werden) und fand dann MSD und RSD. Ich nahm mir RSD vor (ich glaub, MSD hat nicht mal einen RSDF Support). Nach einer kleinen Spritztour durch den PE Explorer hatte ich eine von UPX befreite RSD.exe
Nach meinen Misslungenen Versuchen die rsdf.dll aus dem YouCryptJunior Ordner aufzurufen, schmiss ich doch Olly mal an.
Och, sah ganz interessant aus. Bisschen nach Strings umgeschaut (hätte gedacht es wäre DeDe nötig gewesen, aber so einfach wie das Programm aufgebaut war, ging es leicht) und ich fand etwas viel versprechendes “Erstelle rsdf …”. Na das klang doch super!
Schnell hingejump, bisschen gebreaked und umgeschaut.
Die ganzen CALLs habe ich studiert und dokumentiert/kommentiert. Am Ende wusste ich wohl mehr darüber bescheid wie RSD arbeitet als der Programmierer selbst :D (welcher Anscheinend die DCPcrypt Komponente für Delphi genutzt hat um SHA und AES einzusetzen, nebenbei noch Base64 wahrscheinlich mit einer anderen Komponente)
Ich kam soweit dass ich die Links entschlüsselt anblicken konnte (habs dann auch so gepatched dass es mir per MessageBox die Links einzeln anzeigen konnte), aber viel weiter kam ich (heute) noch nicht. Es sind nun ca. 8 Stunden vergangen. Ich kann ASM Code nicht mehr anblicken! :P

Morgen werde ich wohl das ganze Geheimnis um RSDF SELBER gelüftet haben :) (nachdem ich das verdammte Problem gelöst habe -.-)

Kommt mir bitte nicht mit “Du hilfst den Petzen” Comments, musste schon genug mit ansehen wie der arme Kugelfisch im Gulli:Thread fertig gemacht wurde, obwohl er für garnichts schuldig, und in allem was er sagte im Recht war.

//edit
So, ich gebe auf :P
Es wird von mir doch höhere AES Kenntnisse vorrausgesetzt. Da ich aber so gut wie 0 Ahnung davon habe, komm ich auch nicht weiter :P
Aber die Informationen die ich wollte, hab ich sowieso alles. War schon in der Endphase :(
Hier der Aufbau der RSDF Datei:
1.) Datei wird in 2-Byte Schritten von Hex zu Ascii umgewandelt
2.) Es ergibt sich ein base64 String. Dieser wird decoded.
3.) Es ergibt sich ein AES Ciphertext. Dieser wird decoded und man hat die Links
Der Key für AES müsste das folgende sein:
8C35192D964DC3182C6F84F3252239EBFFFFFFFFFFFFFFFF
kA wieso ich einen anderen Key als Kugelfisch habe :S Vermutlich hab ich genau da einen Fehler gemacht. Hab dann nach Stunden voller Schweiß mich doch dazu verleiten lassen in das fertige Python Script zu schauen.
Als ich die Zeile mit “IV” und den ganzen “FF”s sah, wurde mir klar dass ich keine Ahnung von AES hatte. Wie sollte ich dann herausfinden wie das ganze funktioniert? Ich weiß ja nicht mal was dieses IV ist :(
Naja, ich gebe dann halt auf, 4 Tage sind genug für ein Dateiformat :P

If you enjoyed this article please consider staying updated via RSS. Links to your own social media pages could be added here.

11 Responses to “RSDF – Reverse Engineering”

  1. Kugelfisch says:
    January 22nd, 2008 at 07:06

    Hmm, du hast eventuell am falschen Ort nachgeschaut. In der Nähe der Meldung `Invalid Key Size` steht IIRC in EDX ein Pointer auf den Key. Dessen Länge habe ich dann experimentell bestimmt.

    Der IV ist nicht anderes als 16 0xFF-Bytes, die mit dem Key verschlüsselt werden (steht übrigens im Thread.)

    Ach ja, wenn du ernsthaft eine Herausforderung suchst, versuch’ dich an CCF. Ich habe irgendwie nie wirklich Zeit und Lust dazu, das auch noch zu öffnen…

  2. admin says:
    January 24th, 2008 at 04:09

    Hallo Kugelfisch,
    danke für den Comment :)

    Auf die Möglichkeit mit dem Invalid Key Size hätte ich von selbst kommen müssen, ist doch klaro dass dort irgendwo die Adresse zum Key sein sollte. Werds später mal versuchen :)

    Zu der IV-Sache: Ist dieses sogenannte IV immer mit 16 FFs gefüllt? Was ist dieses IV überhaupt und wofür steht die Abkürzung (wenn überhaupt). Das blöde ist ja, dass ich dazu nichts im Netz finde, und mich das frustriert und mir die Sicht zum Erfolg versperrt hat :(
    Und was sind diese genannten Modes? Fragen über Fragen :S
    Ich glaub ich werd mir mal mit der einen DCPcrypt Komponente eine AES Verschlüsselung in Delphi nachbauen. Dann schmeiß ich Olly an und schau nach wo sich mein Key befindet. Ich bin mir ziemlich sicher dass die Stelle des Keys beim RSD nicht variieren wird :) So müsste ich auch zum Key gelangen.

    An CCF werd ich mich auch noch versuchen! Mit .NET Anwendungen hat ich noch nichts zu tun, deswegen schwebt mir ccf2rsdf.exe so vor.

  3. Kugelfisch says:
    February 20th, 2008 at 13:18

    “Zu der IV-Sache: Ist dieses sogenannte IV immer mit 16 FFs gefült? Was ist dieses IV überhaupt und wofür steht die abkürzung
    (wenn überhaupt). Das blöde ist ja, dass ich dazu nichts im netz finde, und mich das frustriert und mir die Sicht zum Erfolg
    versperrt hat :(

    IV steht für “initialization vector”. Der IV muss zusätzlich zum Schlüssel bekannt sein, wobei im CFB-Modus (den RSDF
    verwendet) im Falle eines falschen IVs `nur` die ersten 16 Bytes betroffen sind. AES, respektive Rijndael, kann in
    mehreren Modi verwendet werden, u.a. ECB (nicht sonderlich sicher), CFB (verwendet in RSDF) und CBC (vermutlich in CCF
    verwendet).

    “Und was sind diese genannten Modes? Fragen über Fragen”

    Das sind die verschiedenen Methoden, 2 aufeinanderfolgende Klartextblöcke zu verschlüsseln. Im ECB-Modus ergibt sich für
    2 gleiche, aufeinanderfolgende Blöcke 2 mal derselbe Ciphertext, was nicht wirklich toll ist. Ausserdem muss bei ECB der
    Klartext auf ein vielfaches der Blockgrösse gepaddet werden. Abhilfe schaffen Chaining-Modi, wo der Output des vorherigen
    Blocks bei der Verschlüsselung des nächsten Blocks berücksichtigt wird. Wie das genau funktioniert, erfährst du z.B. im
    Quelltext von DCPCRYPT.

    “Ich glaub ich werd mir mal mit der einen DCPcrypt Komponente eine AES Verschlüsselung in Delphi nachbauen. Dann schmeiß
    ich Olly an und schau nach wo sich mein Key befindet. Ich bin mir ziemlich sicher dass die Stelle des Keys beim RSD nicht
    variieren wird :) So müsste ich auch zum Key gelangen.”

    Kannst du probieren

    “An CCF werd ich mich auch noch versuchen! Mit .NET Anwendungen hat ich noch nichts zu tun, deswegen schwebt mir
    ccf2rsdf.exe so vor.”

    CCF2RSDF.exe enthält nach meinen Erkenntnissen keinen Schlüssel, sondern baut sich nur die Hashtable des korrekten Cipher
    nach (der autor hatte da wohl den Speicher der .NET VM gedumpt?)

  4. Rabby says:
    June 30th, 2008 at 19:18

    Hallo,

    hab hier einen Decrypter zum Download bereit gestellt. Schaus dir doch mal an:

    http://rabby.wordpress.com/2008/06/30/decrypter-fur-rsdf-und-ccf/

  5. admin says:
    August 4th, 2008 at 14:38

    Hallo Rabby,
    mir ging es darum per rückentwicklung der Software den Algorithmus herauszufinden, keinesfalls um einen Decrypter (also nicht um das Endprodukt). Es hat mich also nur die Format-Spezifikation interessiert :)
    Danke trotzdem für den Link, die hunderte von User die nach “rsdf entschlüsseln” und “rsdf knacken” suchen, gelangen sowieso auf der ersten Google Seiten (neben deiner) direkt auf diesen Beitrag ;) Jetzt haben sie wenigstens das, wonach sie gesucht haben.
    Und du hast mehr Klicks :P

  6. wisler says:
    August 7th, 2008 at 08:03

    hallo ich habe auch noch etwas für dich!kennst du das programm cryptool?hier werden verschiedene verschlüsselungssysteme erklärt.kann man ganz viele sachen mit machen.zu finden ist es auf http://www.cryptool.org

    finde deine arbeit sehr interessant.programmierst du schon länger

  7. klh49 says:
    January 29th, 2009 at 22:02


    Rabby says:
    June 30th, 2008 at 7:18 pm
    Hallo,
    hab hier einen Decrypter zum Download bereit gestellt. Schaus dir doch mal an:
    http://rabby.wordpress.com/2008/06/30/decrypter-fur-rsdf-und-ccf/

    seite ist leider nicht erreichbar. nach langem suchen habe ich einen entcrypter gefunden: http://www.rlauenst.htwm.de/rsdfdec.shtml

    das phyton script funktioniert auch sher gur, finde es jedoch umstädnlicher für mich.

    ich bin keine petze möchte aber nicht für jeden aufkommenden spaß einen extra programm installieren.

  8. Blog of eddy14 » Blog Archive » Code makers and breakers (SFT geknackt) says:
    July 10th, 2009 at 13:06

    [...] version des SFT-Loaders (”SFT Loader 2006″). Nach meinem letzten Beitrag über DLC, und über RSDF, dachte ich mir, es wäre doch praktisch meine Kenntnisse im Gebiet der Analyse von unbekannten [...]

  9. Blog of eddy14 » Blog Archive » DLC geknackt! says:
    July 13th, 2009 at 08:20

    [...] zu meinem Teil habe schon vor Monaten (mit spärlichen Reverse-Engineering skillz) versucht RSDF zu dokumentieren (kurz nachdem es sowieso bereits gebrochen war). Nun aber, hab ich mir gedacht: RSDF ist out, CCF [...]

  10. Each field will be labled with a number. The explanation of the labeled fields is at the bottom of this file. says:
    July 21st, 2011 at 20:10

    email help…

    take a look at these sites, not relevant but usefull…

  11. 2.) The URL that appears next to the number "2" above, is the URL that the trackback submissions will be gaining backlinks to. says:
    July 21st, 2011 at 21:58

    cloud computing tips…

    [...]while the sites we link to below are completely unrelated to ours, we think they are worth a read, so have a look[……

Leave a Reply

I would love to hear your view.