Code verschleiern / Installer

exeto

Lt. Junior Grade
Registriert
Juli 2007
Beiträge
435
Hallo,

ich habe jetzt einige kleine Programme in C# geschrieben.

Was mich jetzt interessieren würde, wie verschleiert/versteckt man jetzt den Code?
Damit er von aussehen gar nicht oder nur schwer einsehbar ist?

Und wie erstellt man einen Installer? Also das ich nur eine Datei verschicken muss, die installiert dann die Dateien dahin wo der Benutzer sie haben möchte und erstellt von der exe eine Verknüpfung auf den Desktop?

danke schonmal
 
Code verstecken geht mit dem "Dotfuscator". Die Community-Edition davon ist bei Visual Studio 2010 schon dabei.

Einen Installer baut man, indem man der eigenen Projektmappe ein "Windows Installer" Projekt hinzufügt.
 
exeto schrieb:
Hallo,

ich habe jetzt einige kleine Programme in C# geschrieben.

Was mich jetzt interessieren würde, wie verschleiert/versteckt man jetzt den Code?
Damit er von aussehen gar nicht oder nur schwer einsehbar ist?

Mit einem Obfuscator. Wenn jemand deinen Code haben will, kriegt er ihn. Verlass dich also nicht zu sehr auf so ein Programm.

exeto schrieb:
Und wie erstellt man einen Installer? Also das ich nur eine Datei verschicken muss, die installiert dann die Dateien dahin wo der Benutzer sie haben möchte und erstellt von der exe eine Verknüpfung auf den Desktop?

danke schonmal

Ein Installer-Project.

Edit. zu langsam :P
 
Dotfuscator

Ist der auch bei der Express Version dabei?
 
Verschleierung kann aber zu erheblichen Performanceverlusten führen und erschwert nur gering das Decompilieren.

Wenn man noch sicherer gehen will, greifst du auch das Tool Ngen.exe der .NET-Laufzeit zurück.
(Hat aber auch Nachteile, ... du verliest Hardwareunabhängigkeit etc., dafür alles in Maschinensprache)

Bei kleinen Programmen und so lohnt sich keines von beiden. Mehr Kosten als Nutzen... wenn du eh deinen Code sicher(er) haben willst, bist du leider in der falschen Sprachwelt.
 
Windows Installer SDK <- Integriert sich super in die MSVS2010 und baut saubere Installer (sogar Deployment-fähig :o!)
 
Für einfache Installer würde ich InnoSetup nehmen... NSIS ist mir da schon zu umständlich...
 
antred schrieb:
Hast du konkrete Bedenken gegen NSIS?

Da es sich (soweit ich weiß nicht) der Windows-Installer Mechanismen bedient, sollte man es besser weglassen und was anderes nehmen. Setups sollten generell das zum System gehörende Paketmanagement verwenden und nicht irgendwas eigenes. Unter Windows ist das nun mal die MSI-Technologie.
NSIS bietet kaum Vorteile, aber dafür viele Nachteile. Insbesondere dann wenn es ums Deployment in Umgebungen mit Active Directory geht.

Zudem ist ja die MSI-Lösung schon im Visual Studio integriert. Man braucht nur das Projekt hinzufügen und auf "Go" drücken. Viel einfacher gehts schon nicht mehr.
 
Zuletzt bearbeitet:
MacGyver schrieb:
Zudem ist ja die MSI-Lösung schon im Visual Studio integriert. Man braucht nur das Projekt hinzufügen und auf "Go" drücken. Viel einfacher gehts schon nicht mehr.
Leider nicht in der Express-Edition, die der TE scheinbar verwendet.

Zum Thema:
Naja, der Dotfuscator (zumindest die Community-Edition) schützt nur begrenzt. Da werden im Prinzip nur die nicht öffentlichen Methoden umbenannt. Mit etwas Geduld kann man das Programm trotzdem recht problemlos nachvollziehen.
Professionelle Tools können da deutlich mehr (z. B. String-Verschlüsselung bis hin zum Einbetten der System-Assemblies), kosten dafür auch deutlich mehr.

Gerade bei Freeware-Programmen (falls es hier um solche geht) lohnt sich der Aufwand im Vergleich zum erreichten Schutz i. d. R. nicht.
Wenns dagegen um kommerzielle Software geht, kann bzw. muss man auch etwas in den Schutz seines Codes investieren.
 
@TheCadillacMan: Fies formuliert: Wer hier nachfragt, wird kein Obfuscating benötigen.
Zumal eine Open-Source-Politik auch die Akzeptanz der eigenen Produkte fördern kann ("Ich kenn den doch nicht, wieso sollt ich dem vertrauen?")
 
Zurück
Oben