Code makers and breakers (SFT geknackt)

Posted by eddy14 - 10/07/09 at 11:07 am

Nun, wie soll ich anfangen? Soll ich wieder berichten, dass mir langweilig war? Nee, das kommt in jedem Blogpost vor (verdammt, jetzt habe ich es doch getan!).

Als ich gerade damit beschäftigt war die Software von der Firma, bei der ich zurzeit Praktikum mache, etwas sicherer vor Crackern zu machen, fiel mir auf, dass ich nicht so viel Ahnung davon habe. Hm,  Software sicherer machen … hm das kann ich nicht so gut … aber die Sicherheit zu brechen, das macht Spaß!

Software sichern … hm … Ich mein, “sichern” im typischen Sinne kann man es ja nicht einmal. Es liegt in der Natur der Sache, dass ein ausführbares Programm analysierbar bleibt. Nur wie kann man es so erschweren, dass jeder Reverser die Lust verliert?

Auf der Suche nach der Antwort lud ich mir ein paar CrackMe’s runter, um unter dem Vorwand von “Anti Debugging Technik erlernen” etwas bei der Arbeit cracken zu können :D

Acht Stunden und unzählige fertige CrackMe’s später fuhr ich nach Hause … ich war immernoch hungrig nach mehr … mehr hardcore Assembler … mehr Geheimnisse entlüften … mehr Glückgsgefühle … mehr davon. Ich kramte auf meinem USB-Stick rum, und fand eine alte 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 Formaten auszuweiten. Diese SFT Dateien bieten einige Warez-Seiten an. Kennt das überhaupt noch jemand? :D Einige wenige Seiten scheinen das noch anzubieten. Wie auch immer, meinen Spaß hatte ich jedenfalls damit :)

In der SFT Datei sind (verschlüsselt) Host, Username, Passwort, Dateinamen und einige Optionen hinterlegt. Sodass dieses Programm es entschlüsseln, und dann von den FTP-Servern die Dateien herunterladen kann. Das wollte ich unbedingt mal analysieren, sollte doch sicher spaßig werden?

sft-loader-2006

SFT Loader 2006

Gesagt getan. In einer Woche (á 8 Stunden) und noch etwas mehr, war ich fertig. Man, hat das lange gedauert. Ich habe mit einem Aufwand von 1-2 Tagen gerechnet, aber eine Codestelle im Programm hat meinen Kopf gefickt (ja, ich benutze sonst nie diesen Ausdruck, aber dieses Dateiformat hats echt verdient!). Beim reversen wurde mir immer wieder mal schwindelig und ich hielt meinen Kopf fest, damit sich meine Umgebung nicht mehr so merkwürdig bewegt! (und das ist kein Witz!) :D

Nun, das SFT Format ist viel cooler als DLC … nein, nicht sicherer. Sondern etwas komplexer … also spaßiger zu reversen :)

Wer nichts über die Struktur des Formats lernen möchte, der möge das hier überspringen und an das Ende des Artikels springen … dort findet ihr einen SFT Decrypter :) (Ja, ihr könnt mich hassen, dass ich das tue …)

Als aller erstes sollte klar werden, es ist wieder Security-by-Obscurity. Es gibt keinen Weg daran vorbei, wenn man versucht, auf dem Rechner des Users Daten zu verarbeiten, von dem der Nutzer aber nichts wissen soll. Der SFT-Loader MUSS zwangsweise irgendwann die Daten entschlüsseln. Was ich nun mache ist es, zu analysieren wie dieses Programm es genau macht. Wie generiert es sich seinen Schlüssel? Welche Algorithmen werden verwendet? In welcher Stelle der Datei befinden sich die Daten? Dazu bedient man sich des Reverse Engineering.

Kerckhoffs Prinzip besagt, dass die Sicherheit eines Verschlüsselungsverfahrens auf die Geheimhaltung des Schlüssels beruhen muss, nicht auf die des Algorithmus. In unserem Fall muss jedoch das Programm das Passwort ja wissen, um den Inhalt zu entschlüsseln. Irgendwoher muss es das Passwort ja kriegen. Sei es, indem es sich das selbst generiert (siehe weiter unten) oder ob es einen hardcoded key verwendet. Die Sicherheit ist die selbe, solange ich alles rekonstruieren kann.

Nun, zurück zum Dateiformat: jede SFT Datei hat einen Header. Die ist immer 0×40 (=> 64) Bytes lang. Sie fängt (immer?) mit “A” an, gefolgt von einem 0xFF Byte, und dann “2SFT04″. Es sollte klar sein, wofür “SFT” steht. Die “2″ ist mir noch nicht ganz klar. Die “04″ allerdings steht für die Dateiversion. Soweit ich weiß, ist dies die aktuellste Version des Formats. (Jedenfalls war es das 2006)

SFT Header

SFT Header

Danach folgen weitere 0xFFs bis die 0×40 Bytes voll sind. Nun ist der Header fertig, und der eigentliche Content folgt. Dieser ist mit zlib komprimiert. Einfach dekomprimieren (am einfachsten mit einem Python script) und schon hat man den dekomprimierten Inhalt. Dieser ist allerdings noch verschlüsselt. Der Algorithmus für die Verschlüsselung ist RC4. Wobei wie immer die Sicherheit des Algorithmus ziemlich egal ist, solange der Schlüssel irgendwo abgespeichert ist.
Der Schlüssel für RC4 ergibt sich aus dem SHA1 Wert des Headers. Dafür schneidet man den ersten Byte (also das “A”) des Headers heraus, fügt ans Ende zwei 0xFF hinzu und hasht es dann mit SHA1. Das Resultat ist unser Key. Gewöhnlicher Weise ist es immer die selbe:

7CBEB0CF896EC8DE4F54A2850E6C73B38E95EA06

Mit diesem Key entschlüsseln wir den Dateiinhalt. Und es erscheint uns der serialisierte (aber entschlüsselte) Inhalt der Datei.

Entschlüsselter Inhalt

Entschlüsselter Inhalt

Von hier an ist es nicht mehr viel. Man kann einfach den Inhalt splitten, und die einzelnen Werte auslesen. Die einzelnen Base64-Strings die dort zu finden sind, sind entweder mit dem SHA512 Hash von “SFT Loader Reloaded” oder “callstackapi”, (mit dem RC4 Algorithmus) zu entschlüsseln. Hierbei hatte ich ein paar Probleme, da meine python library einen Fehler drin hatte (man, ich musste den verdammten RC4 Algorithmus fast nachbauen um den Fehler zu finden … der Programmierer hat vergessen beim crypten i und j wieder auf 0 zu setzen, siehe The Pseudo-Random Generation Algorithm)

Nach einigem rumprobieren und surfen fand ich heraus, dass der Programmierer eine nicht-standardisierte Verschlüsselung verwendet, die nirgendwo dokumentiert ist. Das wäre natürlich der total Krampf im Arsch (ja, ich weiß dass es falsch übersetzt ist) den ganzen Algorithmus auch noch zu reversen. Aber glücklicherweise fand ich diese Komponente, welches wohl dieses Verfahren überhaupt erfunden hat. Sie nennt sich RCx und ist ein selbstprogrammierter Algorithmus, angelehnt an RC5. Also entweder wollte ich ein Delphi Programm schreiben (und diese Komponente verwenden), Strings entschlüsseln und an mein Programm pipen lassen, oder den ganzen Algorithmus selbst implementieren. Ersteres fiel weg, da ich keinem User aufzwingen möchte, Wine zu installieren. Also baute ich den Algorithmus nach. Nach rund 92 Zeilen Code, und 2 Tage debugging (Python hat wohl kein “Byte” als Dateityp, das war wie ein Tritt in die Weichteile) war meine kleine RCx Klasse fertig. Damit kann man wahrlich die einzelnen Werte endgültig entschlüsseln.

Vorerst knöpft man sich das “Header” Element vor (siehe Bild oben). Aus diesem ergibt sich ein String wie folgt:

SFT0#2#D7D05C8DEED489B6C6981D9A6E8D79315C8F2D41A7AC229B385C2A2B73A7959C65F07C7D7CE4F1D6CA7A79E0C2A4847E5587079ACF

SFT am Anfang zeigt uns wieder, dass es korrekt entschlüsselt wurde (mit dem erwähnten RCx Algorithmus). Die “0″ direkt danach gibt an, ob ein Passwort notwendig ist (in diesem Fall also nicht). Ich weiß nicht genau wofür die nachfolgende “2″ ist (Maximale Threads oder so ?) aber alles nach dem letzten “#” ist der Wert, den es zu entschlüsseln gilt. Dafür wurde ein (selbstentwickeltes?) XOR und Salt-System genutzt. Der Salt-Wert ist “callstackapi”. Hierdran wird einfach das eingegebene Passwort angehangen, oder ggf. nichts angehangen. Den XOR-Algorithmus kann man wie folgt beschreiben:

def YurryXOR(key):
raw_key = hashlib.sha512(key).digest()
raw_key = raw_key[:(len(raw_key)/2)]
result = []
key = key*10
for i in range(0, len(raw_key)):
result.append(chr(ord(raw_key[i]) ^ ord(key[i])))
return ”.join(result)

Kleine Erklärung: Der key ist das erwähnte callstackapi+password. Daraus wird ein SHA512 Wert generiert. Die letzte Hälfte wird rausgelöscht. Nun wird der nicht-gehashte Key mit dem gehashten geXORed. Und das Ergebnis ist unser Key.

de5a015215664d925bf3e9f97477caee4ef7a44f6a3d0ee08bf70f1f326e41c7

Sowas in der Art (btw, ich benutze für diese Demonstration diese Testdatei).

Das ist unser Yurry-Key (die habe ich nach meinem Schatz benannt. Haiiii schatziii <3 :D ). Mit dieser kann man ganz schmutzige Sachen machen (nein, nicht mit meinem Schatz du Perverser! Ich meine den Key!). Haben wir diesen erstmal, stehen uns alle Wege offen. Diesen Key können wir an unser Header-Element anwenden, und somit erhalten wir einen Wert, der exakt so aussieht wie das hier:

{1F945Z9B-3ZA9-4Q13-A5DB-KDKDKFLDSHGVFBV}

(Anfangs sind noch 20 zufällige Bytes, die angehanden wurden. Das ist wohl so eine Eigenschaft vom Algorithmus. Die kann man gefahrlos rauslöschen).

Das sieht aus wie eine Seriennummer, ist es aber nicht. Dieser Wert wird nur verwendet, um zu schauen ob der User das richtige Passwort eingegeben hat.

Mit dem gleichen Algorithmus und dem gleichen Key, ist es nun möglich alle anderen Elemente zu entschlüsseln (Host, Username, Passwort etc.)

sft-decrypter

sft-decrypter

Das wars auch schon. Man kann noch durch alle Dateinamen gehen, wenn man möchte. Ich denke, das werde ich bei Gelegenheit mal machen, und dem PyLoad Projekt ein SFT-Plugin schenken (auch wenn dies kein Dateiformat für One-Click-Hoster ist).

Nachdem letztens schon wieder ein Hacker Selbstmord begangen hat, ist mir der Fall Tron (ein Hacker der Verschlüsselungen geknackt hatte) wieder eingefallen. Um exakter zu sein, dass was er den Polizisten bei einer Hausdurchsuchung mal sagte: “Man kann das Anwenden
von mathematischen Formeln doch nicht unter Strafe stellen?!” (aus dem Buch “Tron – Tod eines Hackers”).

Ich schreibe später eventuell ein Reverse Engineering Paper hierdrüber, da dieses Target ziemlich lehrreich war!

Ein letztes noch: Es ging hier natürlich wiedermal nicht um das Endresultat, sondern um den Weg. Denn an Username&Passwort der SFT Datei, käme man auch durch Sniffer, Proxies oder ein paar Spielereien mit der Hosts-Datei. Wie J. J. Abrams bereits einmal sagte, es geht nicht um das Ende (die Auflösung des Ganzen). Sondern die Zeit, die man damit verbringt :) (Gemeint war die Serie Lost, aber passt auch hierzu!).

Verschließt eure Augen nicht vor der Wahrheit! Speichert eure sensiblen Daten nicht in einem undurchsichtigen proprietären Dateiformat. Das ist wie mit WEP. Indem nun jeder Witzbold in ein WEP-Netzwerk einbrechen kann, hat man den Leuten die Augen geöffnet: Verwendet nicht WEP! Und viele (wenn auch bei weitem nicht jeder) haben die Gefahr erkannt. Indem man aber nun einfach sturr und blind bleibt, und meint, weil WEP gebrochen wurde, wäre die ganze Sicherheit um WEP kaputt, irrt sich. Es war schon immer unsicher, nur wurde diesmal einfach nur bewiesen, dass es so ist. Und wer meint ich hätte mit diesen frei zugänglichen Informationen irgendetwas kaputt gemacht, ist naiv. Ich habe nur Informationen veröffentlicht, die jeder SFT User auf dem Rechner hat. Nur hat es wohl keiner vorher einer Analyse unterzogen. Wie dem auch sei:

DOWNLOAD: SFT-DECRYPTER

oder: SFT-DECRYPTER + GUI (benötigt Java) von Seji

//edit 17.07.09 >>> kleines Update. Bugfixxes und ein paar Feature-Requests (Ordner und Dateiname anzeigen) wurden realisiert. Es werden nicht alle Dateinamen und Ordner angezeigt, sondern nur die ersten, habe gerade keine Lust das noch einzubauen. Dennoch viel Spaß :)

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

62 Responses to “Code makers and breakers (SFT geknackt)”

  1. ZiuX says:
    July 10th, 2009 at 12:25

    Sehr schön beschrieben, konnte man sogar draus lernen.
    Ich liebe es, deine Posts zu lesen man <3.
    Hab dich vermisst, endlcih bist du wieder da <3333

    lg, dein dich liebender ZiuX

    PS. heute ist FREITAG :)

  2. admin says:
    July 10th, 2009 at 12:38

    Jaaa Freitag *freu*
    ich liebe dich auch man, uns verbindet irgendwas spirituelles oder so :D

    WUI sei mit dir,
    Eddy

  3. frest.de says:
    July 10th, 2009 at 12:53

    Glückwunsch, dass sollte das Thema SFT-Loader nun endgültig beendet haben. Mal sehen, vielleicht meldet Unplugged ja jetzt auch bei dir, um sich zu beschweren…

    Bis dann,
    frest

  4. Fu7uR says:
    July 11th, 2009 at 10:48

    Die nächste Herausforderung für dich ist dann die DLC 2.

  5. admin says:
    July 11th, 2009 at 14:08

    @Fu7uR
    Dazu wurden noch keine Informationen veröffentlicht. Aber es wird angeblich ein offen dokumentiertes (Open-Source) Format werden. Von daher kann ich da nicht viel machen. Außer einem theoretischen Angriff, den ich mir bereits im Kopf ausgemalt habe. Falls DLC2 genauso implementiert wird wie ich es glaube (laut den kleinen durchgerutschten Informationen müsste es so sein), dann könnte ich möglicherweise eine Methode vorstellen, mitder man den Schutz umgehen kann.
    Aber ist halt alles noch Theorie :)

  6. Kugelfisch says:
    July 11th, 2009 at 21:50

    Eddy, wenn du dich dafür interessierst, könntest du dir auch die Derivate SFT2008 (i.e. das Format, welches der `SFT Loader 2008` erzeugt), SBF und FLP ansehen. Gerade die ersten beiden sind so gut wie identisch zum von dir bereits analysierten SFT2006, FLP besitzt einen leicht anderen Aufbau (aber auch hier bleibt das Grundkonzept ähnlich). Ähnlich alte (aber durchaus nicht uninteressante) Formate wären noch dasjenige von Bobdown oder die Weiterleitung von Anti-Leech.

  7. admin says:
    July 11th, 2009 at 22:26

    Hey Kugelfisch,
    echt nett mal wieder was von dir zu hören. Auf deinem Blog ist ja seit Monaten nichts mehr los, leider :(
    Aber danke für die Empfehlung, was würde ich bloß ohne dich tun! :D
    Ich werde mir die Formate definitiv ansehen (habe bisher nur von FLP gehört, der Rest war mir unbekannt).

    Das wird ein Spaß :D
    mfg,
    Eddy

  8. Bongmaster says:
    July 12th, 2009 at 08:35

    Sehr schön gemacht und beschrieben nur wieder eben blöd da die Deliter wieder nen neues Spielzeug haben und es so noch einfacher wird.

    Aber für mich wieder ein Interessanter Artikel.

    Weiter so :P

  9. N0S says:
    July 15th, 2009 at 12:16

    Wirklich ein schöner Artikel. Hätte aber ruhig noch ein bisschen Assembler Code dabei sein können ;)

    SFT2006 ist geschützt mit einem Protector, einen speziellen Tutorial dafür gibt es hier:
    hxxp://blog.raidrush.ws/2009/02/26/rce-sft-loader-2006/

    oder wer sich lieber mit dem neueren Loader rumschlagen möchte kann hier mal reinschauen:
    hxxp://blog.raidrush.ws/2009/02/28/rce-sft-loader-2008-teil-1/

    Soll jetzt keine Werbung sein, sondern nur eine Ergänzung für Leute, die sich lieber auf das Crypto Zeugs konzentrieren möchten und es nicht so mit “Protector Unpacking” haben :-)

    Übrigens soll in wenigen Tagen der neue Encrypter/Loader 2009 erscheinen, dank deiner Analyse wird sicher die Verschlüsselung geändert.

  10. KLMC says:
    July 16th, 2009 at 20:57

    Nice one, gut geschrieben und nett zu leseb. danke

  11. Tkm says:
    July 17th, 2009 at 12:39

    sers, wie öffnet man die datei ?

  12. admin says:
    July 17th, 2009 at 16:50

    Tkm,
    du brauchst Python. Googlen und lernen :)

  13. BuntspechT says:
    July 17th, 2009 at 17:42

    Ein sehr informativer Artikel und auch gut verständlich, wenn man kein Guru in Sachen RE ist.
    Ich habe zwar nie etwas mit SFT am Hut gehabt, aber es war trotzdem sehr interessant, deinem Abenteuer zu folgen :D

    Ich freue mich auf mehr :)

  14. Bilbao says:
    July 17th, 2009 at 19:16

    ich sitz selber seit knapp 28stunden am sftlaoder 09(kaffe sein dank) den link hier hat mir grade n Freund geschickt.

    wow danke,das wird mir ne große hilfe sein : P

    mach doch für die 06er version n patch der die pw abfrage umgeht. verushci h auch grade bei der neueren, werd jetz wohl aber erstmal einen für eine alte machen : P

    welchen dissassembler benutzt du?

    liebe Grüße

    Bilbao

  15. admin says:
    July 17th, 2009 at 21:27

    Hallo Bilbao,
    freut mich dass du dich auch mit dem Loader beschäftigst :)
    Was dein Vorhaben angeht, muss ich dich leider enttäuschen: Der SFT Loader 2006 verwendet das eingegebene Passwort, um den Inhalt der Datei zu entschlüsseln. Also bringt es dir nichts, die Abfrage zu umgehen, da du dann den Inhalt nicht entschlüsseln kannst. Eins muss man dem Entwickler lassen, das hat er korrekt gemacht! :)
    Natürlich ist es möglich, dass er in der neuen Version doch nur eine blöde Abfrage eingebaut hat. Aber anhand einiger Forenpostings von ihm, muss ich darauf schließen, dass das eingegebene Passwort, immernoch als Schlüssel verwendet wird. (Lies nochmal den Beitrag oben, dort erwähne ich “callstackapi”. An diesen String wird das eingegebene Passwort angehanden, dann wird der neue String SHA512 hasht. Und dieser wird als Key für eine Entschlüsselung verwendet). Im Klartext: ohne Passwort oder mit einem falschen Passwort => Fehlerhafte Entschlüsselung. Zwar haben sie die Sicherheit dessen dadurch eingeschränkt, indem sie den (erwähnten) YurryXOR Algorithmus benutzt haben (Schlüssel wird halbiert, mit sich selbst geXORed … könnte ein großes Sicherheitsrisiko sein!), aber dennoch dürfte nur ein Bruteforce was bewirken.

    Zu der Disassembler Frage: Ich benutze ollydbg leidenschaftlich :D

    Gruß,
    eddy

  16. Seji says:
    July 18th, 2009 at 22:29

    Hi eddy,

    ich muss sagen dein script/programm ist wirklich ne tolle sache.
    Mir war etwas langweilig und dachte:”Hey für so ein tolles Prog muss auch ein GUI her”
    Ich hab das ganze in Java programmiert. Ich musste dein Script dazu etwas anpassen, so das ich es dann ohne probleme in Java benutzen kann. Ich hoffe das ist okay. Würde mich freuen wenn du deine Meinung dazu kundtun würdest :-) Das ist bis jetzt nur unter Windows XP getestet. Es muss daher Python installiert sein.(Unter C:\Python26\ so wie standardmäßig bei der installation)
    Hier kann man das ganze herunterladen:
    http://rapidshare.com/files/257346493/SFT-Decrypt_GUI.zip

    Die SRC gibts hier: http://rapidshare.com/files/257346526/src_SFT_Decrypt_GUI.zip

    Ich hoffe jemand kann das gebrauchen und du eddy hast nix dagegen.
    Über Comments würde ich mich freuen :-)

    Gruß
    Seji

  17. admin says:
    July 19th, 2009 at 00:52

    Hallo Seji,
    dein Programm sieht ganz gut aus. Und ich habe mich gefreut, dass es in Java programmiert ist, und somit Plattformunabhängig sein sollte. Allerdings meint er bei mir, wenn ich auf Konvertieren drücke, dass die Datei nicht existiert. Vermutlich meint er die python.exe die er in C:\python26\ zu suchen scheint. Ist es in java nicht möglich, direkt “python” als Befehl zu verwenden, ohne den kompletten Pfad einzugeben? So dürfte das auch auf Linux laufen.

    Aber vielleicht habe ich auch nur was falsch gemacht :)

    btw, natürlich darfst du das Script benutzen und abändern. Fühl dich frei, damit zu tun, was du willst :-)

    mfg,
    eddy

  18. Seji says:
    July 19th, 2009 at 08:09

    Hi Eddy,

    Da mit Python.exe hast du vollkommen recht. Ich kann durchaus mit java direkt den Befhel Python wählen, jedoch gab es bei mir das Problem das er mit dem “Befehl” Python nichts anzufangen wusste. Also der befehl python ist nicht mit der python.exe verknüpft. Daher hab ich vorerst mal den Standartpfad von der python.exe genommen. Das ist natürlich nur bei Windows der fall. Bei Linux gibt es das Problem nicht. Ich muss mal überlegen wie ich das löse. Wenn ich was habe schreibe ich es wohl am besten wieder hier in den Comments.

    Gruß,

    Seji

  19. Seji says:
    July 19th, 2009 at 16:52

    Hi,

    Hab jetzt das hinbekommen mit dem Python Problem. Also unter Windows kann man nun wählen wo die Python.exe liegt. Bei Linux ist der Button Disabled.
    Das Programm funktioniert also jetzt auch unter Linux. Die neue Version gibts hier:

    http://rapidshare.com/files/257607711/SFTDecrypter_GUI_1.2.zip

    SRC: http://rapidshare.com/files/257607783/SFTDecrypter_SRC_1.2.zip

    Ich hoffe ich hab vor lauter Linux anpassung keinen anderen Fehler reingemacht^^

    Also wenn jemand Bugs oder so findet könnt ihr mir das gerne per Mail mitteilen.
    Email findet ihr unter “About”.

    Viel Spaß Damit.

    mfg

    Seji

  20. Escobar says:
    July 20th, 2009 at 09:35

    damit machst du es den deleter kiddies nur noch leichter an die files zu kommen (obwohl jeder trottel eig sniffen kann)! aber darum gibts ja schöne nondel scripts für die dateien auf den pubs :P

  21. jacko4ever says:
    July 20th, 2009 at 13:48

    Also bei mir kommt immer wieder die selbe Fehlermeldung, obwohl ich python schon in zwei verschiedenen Versionen installiert habe.
    Empfiehlt ihr irgendeine bestimmte Version?
    Hier ein screenshot.
    http://img3.imagebanana.com/img/zagwznoa/Unbenannt.jpg

    Danke
    jacko

  22. Seji says:
    July 20th, 2009 at 14:26

    hi jacko4ever,

    also bei mir kommt der Fehler nur wenn ich python 3.1 nehme.
    Mit 2.6 gehts wunderbar. Probier das mal.

    Gruß Seji

  23. jacko4ever says:
    July 20th, 2009 at 15:22

    also unter version 2.6.2 geht es genauso wenig…
    kommt die selbe fehlermeldung.
    weiss jemand rat

  24. admin says:
    July 20th, 2009 at 15:42

    Hallo Seji,
    ich habe es bei der Arbeit auf einem Vista Rechner probiert, und dort ging es problemlos (mit Python 2.6). Allerdings scheint es bei mir Zuhause auf einem Ubuntu Rechner nicht zu laufen :/
    Würde ich mich mit Java auskennen, oder hätte ich zumindestens eine IDE dazu installiert, würde ich mal reinschauen in den Source …

    Jedenfalls, wenn der Bug raus ist, tu ich die GUI mit den Beitrag rein, als Download … wenn es dir nichts ausmacht natürlich :-)

    mfg,
    eddy

  25. Seji says:
    July 20th, 2009 at 19:28

    @jacko4ever:
    Also warum das bei dir nicht funktioniert versteh (leider) nicht.
    Wenn du mir sagen Würdest welches OS du verwendest hätte wenigstens eine anhaltspunkt.

    @eddy14/admin:
    Also ich hab es bis unter Vista, XP (Python 2.6.2) und Ubuntu 8.04 getestet und dort hat es auch funktioniert.
    Ich werde es jetzt mal noch mit Ubuntu 9.04 testen.
    Wenn du es in Beitrag als Download reintun willst hab ich alsolut kein Problem damit. Würde mich sogar freuen :-)

    mfg,

    seji

  26. Seji says:
    July 20th, 2009 at 20:44

    Hallo eddy,

    also ich denke ich hab das problem bei Ubuntu “behoben”. Und zwar wenn das jar file per Konsole aufruft geht es. Wenn man hingegen mit Rechtsklick-> “Open with OpdenJDK Java 6 Runtime” es öffnet finet er die sftdecrypter datei nicht, sprich es funktioniert nicht.

    Ich hab jetzt noch mal neu gepackt und eine “start.sh” hinzugefügt die folgenden befehl ausführt: java -jar SFT-Decrypter\ GUI.jar

    Damit hat es bei mit ohne Probleme funktioniert. Also einfach: Console–> sh start.sh

    Ich weiß zwar warum das so ist, aber so sollte es funktionieren.

    Unter Vista und XP hab ich es auch nochmal getestet.
    Funktioniert ohne Probleme mit Python 2.6.2

    DL Link: http://rapidshare.com/files/258069381/SFTDecrypter_GUI.zip

    Danke schonmal fürs Testen ;-)

  27. jacko4ever says:
    July 21st, 2009 at 00:42

    hier ist der erste tester!
    habe die version von seji gezogen und ausprobiert, leider kommt immernoch die oben schon genannte fehlermeldung, dass er den python interpreter nicht finden kann.
    benutze übrigens vista home premium 32bit

  28. Maddin says:
    July 21st, 2009 at 00:48

    Was ist man um deinen Beruf auszuüben? bzw wo lernt man sowas?

  29. admin says:
    July 21st, 2009 at 15:46

    @Seji
    ja du hast recht. Aus der Shell heraus funktioniert es. Das ist ja merkwürdig… Ich habs mal in meinem Beitrag verlinkt :-)
    Danke!

    @jacko4ever
    Der Pfad wo dein Python liegt sieht irgendwie merkwürdig aus. Hast du python 2.6? Dieser liegt normalerweise unter C:\Python26\

    @Maddin
    Lernen tut man das hier hobbymäßig. Sonst weiß ich nur, dass Antiviren Hersteller sehr wahrscheinlich Reverse Engineering Techniken beherschen. In meinem “Job” (bin ja Praktikant) programmiere ich eigentlich nur. Allerdings hat mein “Chef” auf meiner privaten Homepage gelesen, dass ich mich mit Computersicherheit beschäftige, und wollte deswegen einen kleinen Crackerschutz im Programm haben. Bin also nicht explizit dort, um zu cracken :-)

  30. user2 says:
    July 21st, 2009 at 19:49

    Wow. Der Entwickler vom SFT hat reagiert. Es gibt einen neuen SFT Loader.

  31. admin says:
    July 21st, 2009 at 20:41

    AFAIK war eine neue Version sowieso in Entwicklung. Hat kaum was mit meinem Eintrag zu tun :-)
    Ich werde interessenshalber mal dort auch reinschauen, um zu gucken welche Verschlüsselungen/Keys verwendet wurden *sabber*

  32. user143 says:
    July 22nd, 2009 at 19:32

    wie komm ich hier hin?

    http://img3.imagebanana.com/img/zagwznoa/Unbenannt.jpg

  33. Flo125 says:
    July 23rd, 2009 at 12:43

    Hi zusammen.
    Hab auch ein Prob mit der GUI unter Ubuntu 9.04.
    Folgendes spuckt die Konsole aus:

    name@name-desktop:~$ sh /home/name/Desktop/SFTDecrypter_GUI/start.sh
    starting…..
    Unable to access jarfile SFT-Decrypter GUI.jar

    Damit sollte es doch eigentlich klappen, oder? Oder mach ich was falsch?
    Würd mich freuen, wenn mir da jemand helfen könnte!

  34. admin says:
    July 23rd, 2009 at 14:38

    @user143
    ich verstehe deine Frage nicht.

    @Flo125
    Du solltest ersteinmal in den Ordner cd’en, und dann die start.sh ausführen.
    Also:

    cd /home/name/Desktop/SFTDecrypter_GUI/
    sh start.sh

    So sollte es laufen :)
    Du kannst es auch aufrufen, ohne zu cd’en, dafür könntest du das hier machen:
    java -jar /home/name/Desktop/SFTDecrypter_GUI/SFT-Decrypter\ GUI.jar

  35. Seji says:
    July 25th, 2009 at 17:56

    Hallo zusammen,

    ich hab ne neu Version gebastelt mit dieser man auch eine BruteFroce attacke durchführen kann. Diese kann man unter “Settings” aktivieren. Dazu muss man dann ein txt File auswählen. Diese Datei muss wie folgt aussehen:

    [CODE]
    passwort1
    passwort2
    passwort3
    passwort4
    passwort5
    [/CODE]

    Außerdem hab ich das ganze Programm soweit mal komplett auf Englisch umgestellt.
    Es gibt aber leider noch hier und da Probleme, deswegen ist das ganze auch noch Beta.

    Ein großes Problem ist unter anderem das der BruteForce Thread nicht stoppt.
    Das hängt stark von OS und der Hardware ab. Unter Vista und Linux Mint 6 hat es zu 98% immer funktioniert.

    Hier ein Screenshot:

    http://www.abload.de/image.php?img=screenofsl.jpg

    Und hier der DL:
    http://rapidshare.com/files/259941995/SFT-Decrypter_GUI_1.3_BETA.zip

    mfg

    Seji

  36. admin says:
    July 27th, 2009 at 09:48

    @Seji,
    anscheinend wurde(n) deine Datei(en) abused. Am besten du sendest mir die letzte per Email zu, und ich lade es dann auf meinem Space hoch. Auf dem Screenshot siehts aber schonmal sehr gut aus! :)
    Und die Idee mit dem Bruteforce ist auch toll!

  37. Lexus says:
    July 27th, 2009 at 22:56

    HAbe es mal ausprobiert , und bekomme diese Fehlermeldung.

    C:\Python31>python sft.py F:\sft\file.sft
    File “sft.py”, line 172
    print ‘Usage: python ‘+sys.argv[0]+’ file.sft’
    ^
    SyntaxError: invalid syntax

  38. admin says:
    July 28th, 2009 at 08:44

    @Lexus:
    Mit der 3er Version von Python läuft es nicht. Besorg dir Python 2.6, damit läuft es :)

  39. Jeezy says:
    July 29th, 2009 at 17:12

    http://www.abload.de/image.php?img=screenofsl.jpg

    wie öffne ich dieses teil?

  40. Seji says:
    July 31st, 2009 at 13:56

    @Jeezy: Sorry ich versteh deine Frage nicht, bzw. dein Probelm?

    @ALL: Hab hier nochmal die Beta Version geuppt: http://www.rapidspread.com/file.jsp?id=iaafddnndj

    mfg

    Seji

  41. user1234567 says:
    August 11th, 2009 at 14:42

    was fange ich mit den ganzen dateien an die im archiv enthalten sind?
    wie öffne ich denn den decrypter?

  42. Seji says:
    August 12th, 2009 at 20:30

    hi,
    user1234567 du musst wenn du Windows hast einfach auf die jar Datei einen Doppelklick machen.
    Dazu musst aber Java installiert haben sonst gehts nicht.

    Wenns mit Doppelklick nicht geht: Start->ausführen->cmd->in das verzeihnis welchseln wo sich die jar Datei befindet *->java -jar SFT-Decrypter_GUI.jar

    *Angenommen die Datei befindet sich unter C:\SFT dann folgendes eingeben: c: und dann cd SFT

    Bei Linux musst einfach nur die sh Datei ausführen.

    Ich hoffe ich konnte dir helfen.

    Wenn noch fragen hast, schreib mir ne mail: seji@kuh.mu

    mfg

    Seji

  43. benacke says:
    August 16th, 2009 at 21:30

    Cool sache ;)
    finde ich gut.
    Kommst du auch aus dem CCC Raum?

  44. benacke says:
    August 16th, 2009 at 21:31

    und jetzt kann man sft auch unter linux benutzen *muha*

  45. x0r3d says:
    August 23rd, 2009 at 20:01

    hi,

    ich habe die gui version benutzt und funzt wunderbar THX!!!
    ich liebe den sft decrypter die login daten funzen!!! polnischer server^^
    vlt könntest du noch machen dass man die erzeugten daten als txt datei speichern kann oda so

  46. admin says:
    August 24th, 2009 at 23:23

    x0r3d,
    ich programmiere nicht die GUI Version, für weiterentwicklungen dessen, wende dich bitte an Seji. Seine Kontaktdaten stehen sicherlich in dem Programm irgendwo (oder mail an seji@kuh.mu)

    Du kannst allerdings die Version ohne GUI benutzen, aus der Shell heraus. Dann kannst du per:
    python sft.py datei.sft > output.txt
    Die Ausgabe in die Datei output.txt schreiben.

  47. Seji says:
    August 25th, 2009 at 10:37

    @admin&x0r3d: In der neuen version gibts die Option^^, eddy14 muss sie nur uploaden ;-)

    mfg

    Seji

  48. hallo says:
    September 10th, 2009 at 15:00

    hi,

    es gibt eine neue sft verschlüsselung (neuer sft encrypter funzt nur mit sft loader rc2) die kann der encrypter (noch) nicht oder? wäre schön wenn du das packen könntest

  49. Julian says:
    September 17th, 2009 at 14:50

    Ich habe zufällig den ganz alten Crypter (Dateiversion 02) gefunden. Dieser funktioniert nicht. Anscheinen ist der “reloaded Key” anders. Wie bist du auf den gekommen? Ich kann auch gerne mal eine SFT erstellen und hochladen.

  50. MArAaaRaa says:
    September 17th, 2009 at 20:52

    Hallo,

    sehr geil das Tool, aber ich habs eben mal mit SFTs versucht, die mit dem 2009er RC2 erstellt wurden und die werden nicht entschlüsselt.

    Fehlermeldung:

    Custom PW Enabled -2-
    Decompressing failed…

    :-(

  51. Seji says:
    September 18th, 2009 at 15:44

    Hallo,

    so hier mal ne neue version mit paar neuen features,bugfixes etc. (!!! NUR GUI !!!!)

    @MArAaaRaa: Soweit ich weiß kann man mit eddys script nur sft decrypten die mit der 2006 version erstellt wurden.
    In der neuen 2009er Version wurde die verschlüsselung geändert.

    Gruß Seji

  52. Seji says:
    September 18th, 2009 at 15:45

    oh sch**** link vergessen, sry…..

    http://rapidshare.com/files/281802461/SFT-Decrypter_GUI_1.4_Beta.rar

    Gruß Seji

  53. MArAaaRaa says:
    September 28th, 2009 at 19:54

    achso, alles klar :)

  54. Test says:
    October 11th, 2009 at 11:03

    Also das klappt ja alles wunderbar :) .
    Aber was muss ich machen wenn das .sft file nen PW drin hat?
    Wenn ich das PW eingebe wo ich vorher bestimmt habe ließt er nix aus.

  55. admin says:
    October 12th, 2009 at 19:11

    @Test
    Das Programm funktioniert nur, wenn du das Passwort kennst. Falls das Passwort nicht funktioniert, wirds wohl daran liegen, dass das Passwort einfach falsch ist!
    Oder mein decrypter kommt mit bestimmten Passwörtern nicht aus. Da ich momentan keine Zeit habe an dem Programm zu arbeiten, wirst du wohl damit leben müssen!

    Versuch mal andere Dateien (oder das Passwort von Hand eingeben, falls du das nicht getan hast).

  56. ~Remove says:
    October 16th, 2009 at 23:16

    Warum beschäftigst du dich mit Software die eh schon kompromitiert ist …

    Suspicious:W32/Malware!Gemini

    Name : Suspicious:W32/Malware!Gemini
    Category: Malware
    Type: Other
    Platform: W32

    greetz GESEC Team

  57. hrkleZ says:
    November 17th, 2009 at 21:48

    Super Beitrag! Besten dank, sehr hilf-bzw. Lehrreich!
    Habe alles mal so gemacht wie du, und beim 2. Anlauf hat es endlich geklappt!
    Besten dank!

  58. X says:
    December 20th, 2009 at 20:17

    Hallo eddy,

    zuerst: Vielen Dank fuer deinen Research bzgl. des SFT-Formats.

    Ich habe mir mal die Muehe gemacht einen Blick in das neue SFT-Format (2009, Beta3)
    zu werfen und – obwohl ich definitv nicht das Know-How im RE Bereich besizte wie du -
    sieht der Header fuer mich anders aus. Es folgt nach “SFT0X” kein 0xFF mehr, sondern
    eine (ASCII) Ziffernfolge. Evtl. ist das ein Salt fuers SHA Hashing?

    Wuerde mich wirklich freuen, wenn du mal einen Blick in das neue Format werfen koenntest.

    Gruss,
    X

  59. Blog of eddy14 » Blog Archive » Tanz der Algorithmen says:
    February 6th, 2010 at 16:34

    [...] Ich habe mir also erst einmal angeschaut, was dieses Anti-Leech denn genau ist: Es ist ein Browser-Plugin. Installiert man es, kann man spezielle Downloads, die per Anti-Leech geschützt sind, herunterladen. Der Sinn und Zweck ist, den Ort der Datei geheimzuhalten. Vermutlich ist der Grund, sich vor Abuse zu schützen. Die Dateien sind wohl illegal, und liegen auf Freehostern, die nichts davon wissen. Aber Anti-Leech kann noch mehr: detailierte Statistiken über Downloads, Passwortschutz und Traffickontrolle. Wer macht das ganze Zeug denn total irrsinnigerweise Clientseitig? Ein Server kann das alles, ohne dass der Besucher ein Plugin installieren muss, der auch noch einzig und allein auf Windows Betriebssystemen läuft. Kerckhoff würde lachen. Um mehr über Security by Obscurity zu erfahren, lese meinen alten Post über SFT. [...]

  60. farid bang says:
    March 16th, 2010 at 15:51

    hey ich habe ne methode gefunden ganz einfach jede sft zu “entschlüsseln” ihr nimmt den neuesten sft loder ladet die sft datei bis er die land fahne anzeigt dann habt ihr nebenbei proxifier gestaret und der zeigt euch die ip an :)

  61. Muhschuss says:
    July 29th, 2010 at 08:58

    Links down!!

  62. Blog von eddy14 » Blog Archive » Arduino + ferngesteuerte Lampe says:
    March 7th, 2011 at 23:42

    [...] so doof, wenn ich noch am Anfang eines langen Weges stehe. Demnächst blogge ich wohl über das SFT09 Format, welches ich so gut wie fertig analysiert [...]

Leave a Reply

I would love to hear your view.