Gratis Obfuscator?
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
code
dank
datei
datum
falle
http
jemand
login
matrix
paar
problem
programm
server
skater
string
suche
system
teil
url
zeichen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
als kostenloses Tool kenn ich nur den Microsoft Script Encoder
http://www.microsoft.com/de-de/download/details.aspx?id=3375#instructions -
teutates schrieb:
als kostenloses Tool kenn ich nur den Microsoft Script Encoder
http://www.microsoft.com/de-de/download/details.aspx?id=3375#instructions
Danke für deine Antwort aber bist du dir sicher dass das nicht nur für Internetanwendungen oder so ist?
Script Encoder ist ein einfaches Befehlszeilentool, mit dem Skriptentwickler die endgültigen Skripten codieren können, damit Webhosts und Webclients den Quelltext nicht anzeigen oder ändern können
Ich suche einen .NET (C#) Obfuscator. Soetwas wie z.B. Skater, nur halt besser. Ich hab Skater mal getestet aber man konnte danach meine .exe noch immer Problemlos mit Reflector ausernandernehmen.. Ich brauche irgendeinen halbwegs vernünftigen Schutz, zumindest für die Strings... -
yorecords schrieb:
Ich suche einen .NET (C#) Obfuscator. Soetwas wie z.B. Skater, nur halt besser. Ich hab Skater mal getestet aber man konnte danach meine .exe noch immer Problemlos mit Reflector ausernandernehmen.. Ich brauche irgendeinen halbwegs vernünftigen Schutz, zumindest für die Strings...
Hört sich für mich danach an, als wenn du Login-Daten in deinem Programm einbetten willst. Ist dies der Fall? Wenn du uns genauer schilderst, was du vor hast, können wir dir eventuell eine passendere Lösung vorschlagen. -
Ja, es geht unter anderem um Logindaten. Gibt es da noch andere Möglichkeiten als einen Obfuscator? Hab leider keine weiteren Informationen gefunden...
-
Hallo yo,
ich bin zwar in C# nicht bewandert, aber wie w#re es wenn du dei Prpgramm einfach in 2 Teile splittest? Teil 1 dasProgramm das du an deine "Kunden" gibstm Teil 2 das aufgerufende PHP-Skript das die sensiblen Zugangsdaten (LC-FTPAccount?) enthält und dann die Daten ausliefert?
Im übrigen bin ich eon Verfechter der Open-Sourceidee und liefer meine Programme/Skripte auch mit diesem aus,
Beitrag zuletzt geändert: 10.7.2012 2:48:50 von galerietbb -
galerietbb schrieb:
Hallo yo,
ich bin zwar in C# nicht bewandert, aber wie w#re es wenn du dei Prpgramm einfach in 2 Teile splittest? Teil 1 dasProgramm das du an deine "Kunden" gibstm Teil 2 das aufgerufende PHP-Skript das die sensiblen Zugangsdaten (LC-FTPAccount?) enthält und dann die Daten ausliefert?
Im übrigen bin ich eon Verfechter der Open-Sourceidee und liefer meine Programme/Skripte auch mit diesem aus,
Danke für die Antwort, aber ich verstehe nicht ganz wie das funktionieren soll ohne dass sich jemand einfach Zugriff zu den Daten verschaffen kann..
Open Source ist super, aber mir geht es dabei ja nicht um die Verschlüsselung des Scrpts, sondern nur der Strings. Es kann sich jeder gerne meinen Code anschauen und sich was er braucht davon nehmen, nur gewisse Daten müssen unter Verschliuss bleiben, sonst hat das alles keinen Sinn.
Des weiteren bin ich wirklich schockiert darüber, dass man sich alle möglichen Decompiler usw. einfach gratis runterladen kann, aber ein brauchbares Gegenstück dazu unmengen kostet.. Bis vor ein paar Tagen hätte ich mir sowieso nie gedacht, dass es so einfach ist ein kompiliertes Programm zu rekonstruieren.. -
Hallo yorecords,
hier habe ich einen Artikel zum Thema der evtl. weiter hilft:
http://jasonhaley.com/blog/post/2006/06/16/Obfuscation-String-Encryption-.aspx -
http://www.gapotchenko.com/eazfuscator.net
NOCH kostenfrei und meiner Ansicht nach der Beste auf dem Markt. Aber lass dir gesagt sein, dass es genug Tools gibt, die deinen Code zu einem sehr großen Teil, wenn nicht sogar komplett, wieder lesbar machen. .NET lässt sich nicht wirklich sicher "verschlüsseln".
Einzige Möglichkeit wäre, den zu schützenden Code auf einen Server zu legen und mittels TCP dort runter zu holen. Siehe dazu u.A. https://litecode.codeplex.com/ -
Danke für eure Antworten!
darkpandemic schrieb:
Hallo yorecords,
hier habe ich einen Artikel zum Thema der evtl. weiter hilft:
http://jasonhaley.com/blog/post/2006/06/16/Obfuscation-String-Encryption-.aspx
Ja dieser Artikel ist wirklich hilfreich. Danke. Ich denke das könnte das Problem vorerst lösen.
fabo schrieb:
http://www.gapotchenko.com/eazfuscator.net
NOCH kostenfrei und meiner Ansicht nach der Beste auf dem Markt. Aber lass dir gesagt sein, dass es genug Tools gibt, die deinen Code zu einem sehr großen Teil, wenn nicht sogar komplett, wieder lesbar machen. .NET lässt sich nicht wirklich sicher "verschlüsseln".
Einzige Möglichkeit wäre, den zu schützenden Code auf einen Server zu legen und mittels TCP dort runter zu holen. Siehe dazu u.A. https://litecode.codeplex.com/
Den hab ich vor ein paar Tagen schon runtergeladen, aber irgendwas hat nicht wirklich funktioniert.. Weiß aber nicht mehr was. Werde es wenn ich Zeit habe noch einmal versuchen.
Zu 100% wäre der Code aber auch dann nicht geschützt, da ja jeder der das Programm dekompiliert dann auch Zugriff zum Server hätte. Denk ich zumindest mal...
Beitrag zuletzt geändert: 11.7.2012 18:23:47 von yorecords -
Zu 100% kann man kein Programm schützen. Du hast aber beispielsweise auch nicht wirklich die Möglichkeit, den Traffic zwischen Server und Client zu sniffen. Du kannst das Testprogramm ja mal durch Wireshark jagen oder aber beispielsweise durch Anubis.
Die Verwendung von LiteCode oder ähnlichen Dingen erhöht die Sicherheit deines Codes jedoch drastisch. Da kann kein Obfuscator oder sonst etwas mithalten.
Beitrag zuletzt geändert: 11.7.2012 19:11:46 von fabo -
Schau doch hier nach, denn genau dein Problem hat schon jemand anderer gehabt...
-
Jo, Socket mit OpenSSL und API....dann musst Du keine lokalen Login-Daten im Code speichern.
-
Danke für eure Antworten!
Ich hab das vorerst gelöst indem ich die Strings außerhalb der Funktionen mit readonly deklariert habe. Das scheint soweit ganz gut zu funktionieren, aber eine endgültige Lösung ist es natürlich nicht. Ich werde mich wenn ich Zeit habe mal intensiv mit diesem Thema beschäftigen.
Aber ich muss irgendwie eine lokale Lösung (kein Ausgelagerter Code oder so) finden, da das Programm ja sonst nur mit Internetverbindung ausgeführt werden kann, was nicht im Sinne des Erfinders ist.
Mal so ganz nebenbei: EIn Freund von mir ist Java Programmierer und hat in der Schule gelernt, dass Java-Code nicht bzw. äußerst schwer dekompilierbar ist.. Er hat zwar auch behauptet, dass es dafür überhaupt keine Tools gibt, was ich ihm sofort wiederlegen konnte, aber dennoch interessiert es mich inwiefern da was dran ist... Weiß da jemand was genaueres dazu?
Beitrag zuletzt geändert: 15.7.2012 17:17:43 von yorecords -
Zum Dekompilieren von Java gibt es mittlerweile sogar Onlinedienste, die sogar funktionieren ;)
Ich hab das vorerst gelöst indem ich die Strings außerhalb der Funktionen mit readonly deklariert habe.
Was hast du damit gelöst? Dass Relfector die Strings nicht mehr anzeigt? Das ist genial, aber nur in dem Falle, dass Reflector das einzige Tool ist, welches diese Möglichkeiten bietet.
Alles in allem bleibt die Tatsache bestehen, dass man #Net-Code nicht absichern kann. Vorallem dann nicht, wenn dem Nutzer theoretisch der gesamte Quellcode in Form einer ausführbaren Datei vorliegt. -
yorecords schrieb:
Dazu mal ein Verweis auf 2 Themen:
EIn Freund von mir ist Java Programmierer und hat in der Schule gelernt, dass Java-Code nicht bzw. äußerst schwer dekompilierbar ist.. Er hat zwar auch behauptet, dass es dafür überhaupt keine Tools gibt, was ich ihm sofort wiederlegen konnte, aber dennoch interessiert es mich inwiefern da was dran ist...
Java Decompiler gesucht
Decompiler
Wenn du das JDK installiert hast kannst du gleich mal folgendes versuchen:
Danach steht in der Datei listing.java der decompilierte Code deiner Klasse Klassenname.javap -c -private -l Klassenname > listing.java
Besonders verständlich wird der Code für dich nicht sein... aber z.B. String lassen sich trotzdem gut lesen. Besonders verständlich ist der Code deshalb nicht, weil nur Anweisungen an die JVM enthalten sind, also so wie wenn du ein normales Programm zu Assembler disassemblierst. -
Ja das hab ich mir so gedacht..
Ich habe übrigens einen sehr empfehlenswerten .NET Obfuscator gefunden: CodeFort
Man kann ihn gratis downloaden, aber ein paar Features laufen dann im Trial-Mode. Wenn man diese Features verwendet (das muss man nicht) kommt beim Öffnen des Programms ein Popup. Leider ist die Vollversion recht teuer... Aber alles in allem ist das der beste Obfuscator den ich gefunden habe.
Beitrag zuletzt geändert: 16.7.2012 23:48:15 von yorecords -
Du bist aber nicht zufällig derjenige, der in einschlägigen Foren seit gestern einen Key dafür sucht, oder? ;)
-
Ich habe immer noch das Gefühl, dass ein Obfuscator nicht die eigentliche Lösung ist. Ein Obfuscator tut schließlich deutlich mehr als Strings abzusichern. Und wenn du mit deinem Programm Netzwerk-Kommunikation betreibst, werden dann trotzdem Login-Daten im Klartext übertragen.
Wenn du uns genau sagst, was für Daten du schützen willst und was für ein Programm du schreibst, können wir dir spezifischere Empfehlungen geben. Wenn es dir nur darum geht, dass man deinen Quelltext nicht rekonstruiren kann, dann kannst du theoretisch auch einfach eine andere Programmiersprache für die .NET Plattform wie F# oder Clojure nehmen
Eventuell lässt sich auch eine Gesammtlösung finden, die komplett ohne Login-Daten auskommt bzw. eine Lösung, bei der es nicht tragisch ist, wenn diese Daten öffentlich werden.
Beitrag zuletzt geändert: 17.7.2012 21:44:33 von bladehunter -
fabo schrieb:
Du bist aber nicht zufällig derjenige, der in einschlägigen Foren seit gestern einen Key dafür sucht, oder? ;)
Nicht dass ich wüsste...
bladehunter schrieb:
Ich habe immer noch das Gefühl, dass ein Obfuscator nicht die eigentliche Lösung ist. Ein Obfuscator tut schließlich deutlich mehr als Strings abzusichern. Und wenn du mit deinem Programm Netzwerk-Kommunikation betreibst, werden dann trotzdem Login-Daten im Klartext übertragen.
Wenn du uns genau sagst, was für Daten du schützen willst und was für ein Programm du schreibst, können wir dir spezifischere Empfehlungen geben. Wenn es dir nur darum geht, dass man deinen Quelltext nicht rekonstruiren kann, dann kannst du theoretisch auch einfach eine andere Programmiersprache für die .NET Plattform wie F# oder Clojure nehmen
Eventuell lässt sich auch eine Gesammtlösung finden, die komplett ohne Login-Daten auskommt bzw. eine Lösung, bei der es nicht tragisch ist, wenn diese Daten öffentlich werden.
Also in diesem Fall jetzt hab ich ein Programm (zumindest einen Prototypen) zur Verschlüsselung von Texten geschrieben. In dem Fall ist es natürlich wichtig, dass man nicht einfach durchs dekompilieren hinter das System des Programms und im Falle dass Zeichen einfach nur ersetzt werden hinter die direkte Verschlüsselung kommt.
In diesem Zusammenhang ist mir erst klar geworden wie einfach es ist Programme zu rekonstruieren.. Und seitdem suche ich nach einem vernünftigen Weg das zu verhindern.
Wie bereits oben erwähnt geht es mir imGrunde nicht um den Code sondern mehr um den Inhalt. Wobei es teilweise natürlich auch schon reicht wenn ein potenzieller "Angreifer" nur das System des Programmes kennt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage