Autor Beitrag
Spiritnight
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mi 19.03.08 13:38 
Hallo,

ich bin gerade über das tool "Net.Reflector" gestolpert.
Und habe zu meinem bedauern feststellen müssen das so ziehmlich jeder Algorythmus und Variableninhalt
im klartext wiederzufinden ist.
Da frage ich mich wozu der Aufwand wenn es eh jeder lesen kann...

Jetzt meine Frage:
Kann ich es irgenwie verhindern das der geamte Algo von Methoden und die Inhalte/Namen von Variablen derart leicht zu lesen sind ?

Ich würde mich sehr über eine positive Antwort freuen.

Mfg Martin


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mi 19.03.2008 um 13:57
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 19.03.08 14:02 
Hallo!

Was Du brauchst ist ein Suche bei Google OBFUSCATOR, den Du nach er Kompilierung über Deine Assemblies laufen lässt, der Deinen Code ... äh ... "verwurstet", um ihn unleserlich zu machen. Das kann aber auch zu Problemen führen, wenn z.B. Strings verändert werden, die gleich bleiben sollten. Das ist aber letzten Endes eine Frage der Konfiguration.

Ich habe vor einiger Zeit mal das Produkt von Xenocode verwendet (Namen habe ich vergessen), es gibt auch noch den Dotfuscator, der in der Community Edition kostenlos ist. Das sind die zwei, die mir einfallen, es gibt wahrscheinlich noch deutlich mehr ;-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Spiritnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mi 19.03.08 14:38 
Den " Dotfuscator" habe ich gerade gefunden allerdings wie du schon sagtest ..danach gehts nicht mehr :-(

Ich schau mir mal die anderen Sachen an danke für die Tips.

Mfg Martin
Spiritnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mi 19.03.08 15:58 
Titel: Verzweifle
ich habe die kostenlosen Varianten "Xenocode und Dotfuscator" getestet... der erste funktioniert garnicht und der 2te zerstört neben den Namen usw auch gleich die Funktionalität.

dann habe ich mir die testversion der kostenpflichtigen Version von Xenocode geladen, die funktioniert tadellos jedoch kommt beimProgrammstart meiner Software dann sowas wie " Dieses Programm wurde mit der Trialversion von Senocode erstellt" als Fenster :-o.
Und 790Euro für die Software habe ich nichtmal ansatzweisse :-(.

Wenn jemand noch Ideen hat ich wäre sehr zu dank verbunden.

Mfg Martn
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 19.03.08 16:03 
Titel: Re: Verzweifle
user profile iconSpiritnight hat folgendes geschrieben:
ich habe die kostenlosen Varianten "Xenocode und Dotfuscator" getestet... der erste funktioniert garnicht
Je genauer die Fehlerbeschreibung, desto besser die Hilfe. Mach doch einfach mal einen neuen Thread auf, der sich um die Benutzung des Obfuscator dreht. Ich bin mir ziemlich sicher, dass ein so bekanntes Programm mehr kann als "gar nicht" funktionieren.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 19.03.08 20:20 
Ich weiß nicht, aber es ist doch wirklich die Frage, was an 99% der Programme überhaupt schützenswert ist ;) .
Das einzige, wofür ich Verständnis habe, sind hausgemachte Algorithmen. Wenn sie es aber wirklich wert sind, dann wird es für den professionellen Angreifer nur ein kleiner Unterschied im Aufwand sein, ob sie nun in Delphi oder C# geschrieben wurden.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 19.03.08 20:24 
user profile iconKhabarakh hat folgendes geschrieben:
Ich weiß nicht, aber es ist doch wirklich die Frage, was an 99% der Programme überhaupt schützenswert ist ;) .
Das einzige, wofür ich Verständnis habe, sind hausgemachte Algorithmen. Wenn sie es aber wirklich wert sind, dann wird es für den professionellen Angreifer nur ein kleiner Unterschied im Aufwand sein, ob sie nun in Delphi oder C# geschrieben wurden.
Das ist auch der Grund, warum ich meine Programme nicht mehr obfuskiere (oder wie das heißt ;-)).

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 19.03.08 20:56 
user profile iconKhabarakh hat folgendes geschrieben:
Ich weiß nicht, aber es ist doch wirklich die Frage, was an 99% der Programme überhaupt schützenswert ist ;)


Eben. Es geht darum das keiner merken soll was da oft für ein banaler Mist im Programm schlummert. ;)
Obfuscating soll einfach die Spuren miesen Codings verschleichern. (Denglisch, harte kodierte Passwörter u.s.w.)
Spiritnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 24.03.08 02:15 
Titel: hmmm
Mir gehts nicht darum meine code aufgrund von schlechter schreibweise zu verschleier,
sondern ich habe eine kleinen aber feinen verschlüsselungs Algo geschrieben, der natürlich völlig Sinnlos ist wenn ihn jeder auslesen kann.

Mfg Martin
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 24.03.08 10:51 
Titel: Re: hmmm
user profile iconSpiritnight hat folgendes geschrieben:
Mir gehts nicht darum meine code aufgrund von schlechter schreibweise zu verschleier,
sondern ich habe eine kleinen aber feinen verschlüsselungs Algo geschrieben, der natürlich völlig Sinnlos ist wenn ihn jeder auslesen kann.
Nein, ein Verschlüsselungsalgorithmus ist nur dann gut (bzw. überhaupt brauchbar), wenn er nicht darauf angewiesen ist, geheim zu sein. Alle heute verwendeten Verschlüsselungsalgorithmen sind vollständig bekannt und genau deshalb, weil viele Leute prüfen konnten, dass die Algorithmen funktionieren, vertraut man ihnen. Einem geheimen Algorithmus vertraut niemand.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 24.03.08 13:47 
Titel: Re: hmmm
Hi,

user profile iconChristian S. hat folgendes geschrieben:
user profile iconSpiritnight hat folgendes geschrieben:
Mir gehts nicht darum meine code aufgrund von schlechter schreibweise zu verschleier,
sondern ich habe eine kleinen aber feinen verschlüsselungs Algo geschrieben, der natürlich völlig Sinnlos ist wenn ihn jeder auslesen kann.
Nein, ein Verschlüsselungsalgorithmus ist nur dann gut (bzw. überhaupt brauchbar), wenn er nicht darauf angewiesen ist, geheim zu sein. Alle heute verwendeten Verschlüsselungsalgorithmen sind vollständig bekannt und genau deshalb, weil viele Leute prüfen konnten, dass die Algorithmen funktionieren, vertraut man ihnen. Einem geheimen Algorithmus vertraut niemand.


Vorweg: ich bezweifle nicht, was du sagst - aber ein Verschlüsselungsalgo macht doch nur Sinn, wenn der Empfänger(oder sonstwer, der die Daten (aus-)lesen soll) alles wieder decodieren kann. Ich kann ihn also nur verwenden, wenn auch der Entschlüsselungsalgo bekannt ist und dann kann das doch jeder, der weiß, welcher Verschlüsselungsalgo verwendet wurde...

Kannst du mir meinen Denkfehler zeigen :gruebel:

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 24.03.08 14:41 
Es kann doch vom Hersteller einfach ein Programm zum Ver- und eins zum Entschlüsseln geben :gruebel: . Dann hast du zwei miteinander kommunizierende Programme, an deren Algo du ohne Disassemblierung trotzdem nicht drankommst.
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Mo 24.03.08 14:48 
@Hidden: Kann es sein, dass du nicht an den Schlüssel gedacht hast?

@Khabarakh: Siehe z.B. Suche in Wikipedia RSA.

Ich würde allgemein eher auf einen bekannten und häufig verwendeten Algo zurückgreifen (z.B. RSA, AES, Twofish, ...), bei dem man sich sicher sein kann, dass er keine Schwachstellen aufweist. Denn wenn jemand deinen Algo haben will, bekommt er ihn auch. Durch Verschleierung dauert es nur etwas länger.

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 24.03.08 14:57 
user profile iconSilas hat folgendes geschrieben:
@Hidden: Kann es sein, dass du nicht an den Schlüssel gedacht hast?


Ja, ich bin Laie :D Dann geht es also nurnoch darum, dass der Schlüssel im Quelltext gut versteckt sein muss.

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Mo 24.03.08 15:06 
user profile iconHidden hat folgendes geschrieben:
Dann geht es also nurnoch darum, dass der Schlüssel im Quelltext gut versteckt sein muss.
Oder dass er schwer bzw. nicht nachvollziehbar berechnet wird (z.B. über ein Serverseitiges Skript und einen Hash des Programms).

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Spiritnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Di 25.03.08 09:30 
Titel: ja..
Ich habe grob gesehen einen festen Schlüssel im Programm, das Passwort wird als Hash und mit dem festen Schlüssel gespeichert. Alle anderen Daten werden mit einer Kombination des festen Schlüsseln und den Hash des Pasworts ent/- und verschlüsselt.

Ich dachte (dachte!) das wäre eine kleine aber feine Methode um Daten zu sichern.

Nach viel lesen hier im forum habe ich viele Schwachstellen gefunden, einmal kann man leicht den Code nachvollziehen, zum anderen habe ich gelesen das man simple abfragen wie

If (textfeld1.text==(Stringe mit passwort){entschlüssele();}

aberändern kann in dem man aus == ein != macht.

ich habe eine funktion gefunden: file.decrypt()/ und das gegenstück dazu.
Es Verschlüsselt so das es nur dem Benutzer der es erstellt hat gehört nur ist die frage wenn das System crasht und man es neu aufsetzt, kommt man noch an die Daten ?

Thema AES.
Mein MSDN sagt mir dazu nur weil links defekt..
Läßt sich das ähnlich leicht einbinden wie das File.crypt ?

Vielen lieben dank für die ganzen anregungen und Hilfestellungen

Mfg Martin
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Di 25.03.08 09:59 

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Spiritnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Di 25.03.08 10:20 
ist das ohne weiteres für C Sharp verwendbar ? Oder lass ich mich nur durch das Delphi erschrecken ?

Mfg Martin
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Di 25.03.08 10:32 
:oops: Oh, du codest ja in C#, nicht drangedacht. Such mal bei dotnet-snippets.de nach "Rijndael", da solltest du fündig werden.

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Spiritnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Di 25.03.08 10:43 
Super dank dem Wort Rijndael sofort fündig geworden, man muss eben wissen wonach manch sucht.
Wie immer vielen lieben dank für den Stoss in die richtige richtung.

Mir ist da so eine Idee gekommen und ich würde gern wiessen was du davon hälst und ob es möglich ist.

Ich möchte ja umbedingt mein Hauptprogramm schützen, wenn ich nun ein kleines Vorprogramm schreibe das die aufgabe hat das hauptprogramm zu entschlüsselen und zu starten bei koregten passwort, wäre das Sinnreicht oder übersehe ich da wieder was ?

Hier mal die Reihenfolge wie ich s mir vorstelle.

1Programm startet
2 Pass abfrage
3 wenn erfolgreich entschlüssele Hauptprogram
4 Starte hauptprogramm
5 Schliesst vorprogramm.
bei beenden.
6 starte vorprogramm
7 verschlüssele hauptprogramm
8 schliest sich selbst

Das ganze würde ich mit AES umsetzen wollen.

Die frage ist ob das eine gute idee ist oder ob ich mal wieder ein großen sicherheitsloch übersehen habe.

Mfg Martin