Avatar billede narixa Nybegynder
08. november 2012 - 00:28 Der er 7 kommentarer og
1 løsning

Hvordan beskytter man sit C# program

C# er jo et fantastisk programmeringssprog, nem at gå til og man får hurtigt udrettet noget.
Men i sin opbygning også nemt at dekompilere.
Hvordan beskytter man sin exe eller dll fil?
Jeg har fundet frem til at der er noget som hedder .Net obfuscation.

Er der nogen som kan forklare dette, hvordan virker det og hvordan bruges det?
Avatar billede arne_v Ekspert
08. november 2012 - 00:41 #1
En obfuscater manipulerer EXE/DLL ved at aendre klasse navne og metode navne til tilfaeldige navne og lignende tricks.

Efter min bedste mening er det spild af tid at obfuskere.

Decompilet kode uden kommentarer og med tilfaeldige lokale variable navne har ikke den store vaerdi.

Kommentarer i koden, design dokumentation og det som er i udviklernes hoveder er det som har reel vaerdi.
Avatar billede Syska Mester
08. november 2012 - 00:45 #2
obfuscation gør præcis hvad ordet siger ... gør din kode mindre menneskelig læsevenlig. :-)

public class Person
{
public string Name{get; set;}
// lots of other properties
}

kunne blive til:

public class _r
{
public string y{get; set;}
// lots of other properties
}

Dvs nu er koden ikke læsevenlig :-)

Men bottom line er ... you don't ...

Kig på verdens største spil producenter ... hvor godt er det lige gået for dem at beskytte deres kode? :-)

hvis du vil undgå andre ser din kode ... så er Web vejen frem hvor alt kører server side ... så ser de aldrig din kode. :-) Med mindre du viser dem Exceptions som din kode kaster, så kan de komme til at se lidt.
Avatar billede narixa Nybegynder
08. november 2012 - 08:25 #3
Det er vel bedre end ikke at gøre noget, eller skal det forståes således at C# IKKE er sproget hvis man ikke ønsker at programmet skal kunne læses som en åben bog.
Drejer det sig f.eks om kryptering og dekryptering som i mit tilfælde, ønsker man jo ikke at afsløre alt :-)

@buzzz jeg har ikke den store erfaring med at udvikle Web applikationer. Kan et C# program afvikles som såden en?
Avatar billede keysersoze Guru
08. november 2012 - 09:31 #4
#3 nej, men du kan lave en ASP.NET applikation bla vha C# (og HTML, CSS og Javascript).
Avatar billede magic-mouse Novice
08. november 2012 - 10:37 #5
Hej.. Det er meget let at gøre som de andre siger. Men den letteste løsning er at signere din DLL / EXE fil. Det gør at den ændre CIL til bit kode, og at man ikke kan decompile den på samme måde .

For at signe vælger du projektet-> Højre click -> Poperties -> Signing -> Check "Sign the assembly" vælg din key og færdig.

Dette gør du selvfølgelig i din build opsætning og ikke i din Debug opsætning.
Avatar billede Syska Mester
08. november 2012 - 11:28 #6
#magic-mouse

Er det let at gøre som vi siger? Vi siger han ikke skal gøre noget, da det er spild af tid.

Men stadig spild af tid ... det kan decompiles. Man skal tænke på det ikke er hobby programmeren der vil decompile dit program, men nogen som rent faktisk kan få noget ud af det. Jeg har tidligere også prøvet det samme ... men ... waste waste waste.

Ligesom der heller ikke er nogen værdi i facebooks kode ... det er dens brugere der giver værdien. Det er jo ikke ligefrem rocket science ...
Avatar billede arne_v Ekspert
08. november 2012 - 14:05 #7

Det er vel bedre end ikke at gøre noget, eller skal det forståes således at C# IKKE er sproget hvis man ikke ønsker at programmet skal kunne læses som en åben bog.


C# er ikke sproget for 10. klasse folkeskole elever som er bekymret for at deres klasse kammerater skal stjaele koden til deres lommeregner applikation.

C# er helt fin til professionelle applikationer. Output fra en dekompilering er vaerdiloest.


Drejer det sig f.eks om kryptering og dekryptering som i mit tilfælde, ønsker man jo ikke at afsløre alt


Hvorfor ikke?

En krypterings loesning hvor beskyttelse mod dekompilering har betydning for sikkerheden er saa haabloest ringe at koden er totalt vaerdiloes!
Avatar billede narixa Nybegynder
23. november 2012 - 09:28 #8
Tak for kommentarerne. Har lavet en løsning hvor de områder som helst skal beskyttes, eks. licens og aktivering foregår som en webservice.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester