Missa inte Amazon Prime Deal Days!
Permalänk

.NET - Skydda källkoden.

Hallå.
Först och främst så förstår jag mig inte riktigt på hur det här fungerar, ha det i baktanke medans ni läser - tack.

Jag har en liten fundering angående hur man kan skydda sin .NET-kod.
De flesta vet väl att källkoden ifrån .NET-program endast är ett par knapptryck ifrån och ibland kanske det är lite jobbigt.

Det ska visst finnas något som kallas "Obfuscators", som gör koden lite mer oläslig, men om man följer Microsofts råd och köper en licens (single user) av "Dotfuscator" så får man punga upp med 13,000 kronor. Jag har knappt råd med mat!

Saken är den att då jag väl använder ramverket så bryr jag mig inte om ifall någon japan återanvänder min kod och säljer den till sina vänner men om man faktiskt skulle lägga ner ett par hundra/tusen timmar på ett program så skulle jag faktiskt anse att det är MIN kod.
Men "Reverse engineering" har väl funnits sålänge som datorn har, men att faktiskt kunna återskapa hela källkoden är väl lite extremt.

Finns det någon här som själv har haft detta problemet och lyckats hitta en billig (0-1000kr(?)) och bra lösning på problemet, jag vet att man aldrig kommer ifrån det helt jag vill bara slippa småglin som kopierar rakt av.

Tack så mycket.

Visa signatur

Ruby (on rails) är fint!

Permalänk
Medlem

Microsoft förespråkar stängd källkod sen måste du punga upp med 13k för det om jag förstår det rätt - jösses...

Permalänk
Inaktiv

Om du verkligen måste obfuskera, och inte har råd att skaffa någon programvara som gör det, så får du väl hämta illegalt.
Alternativt skriv om programmet till ett språk som kompilerar till nativekod direkt.

Permalänk

Går det inte att bara köra den version av Dotfuscator som ingår i Visual Studio?

http://www.preemptive.com/products/dotfuscator/Editions.html

Förslag som att hämta något illegalt eller byta programspråk är ju bara onödiga.

Visa signatur

Nikon D90, Nikon D7000, SB-600, 2xYN-460, Nikkor 18-105mm/3.5-5.6 VR, Nikkor 35mm/1.8, Nikkor 50mm/1.8D, Tamron 70-200/2.8, Tokina 11-16/2.8, Nikon 85/3.5 Macro
Flickr

Permalänk

Jag använder dock C# Express, tror inte att den följer med där.

Men som sagt, jag skulle kunna betala för programvaran, men inte mer än var min dator kostar.

Så om någon har prövat något som de vill rekommendera så blir jag glad!

Det finns ju en i princip hur många program som helst som gör jobbet, vissa bra och andra sämre. Men sen finns det säkert program som dekompilerar ändå osv osv osv.

Jag tänkte mer om det var någon som funderat på detta tidigare och kanske har lite mer kött på benen.

Visa signatur

Ruby (on rails) är fint!

Permalänk
Avstängd

Re: .NET - Skydda källkoden.

Citat:

Ursprungligen inskrivet av bongo-apan

Jag har en liten fundering angående hur man kan skydda sin .NET-kod.
De flesta vet väl att källkoden ifrån .NET-program endast är ett par knapptryck ifrån och ibland kanske det är lite jobbigt.

Finns det någon som är så dum så den försöker lägga ner jobb på att hitta lösningar i .NET-kod?
.NET är i första hand till för de som inte är så vassa på programmering vilket också innebär att koden kan se ut lite hur som helst.
En skicklig programmerare väljer inte .NET om han/hon har möjlighet och välja. Med största sannolikhet blir det C++.
Tänk på att .NET, Java och en del andra språk oftast är gjorda just för att C++ är för svårt.

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Dra inte igång bajskastning om olika språk nu.
Men om det är så som du säger är det ju bara ännu värre då det lär finnas fler kleptomaner just därför, eftersom vi som använder .NET uppenbarligen är efterblivna och därför behöver lite hjälp på traven

Sen att det stämmer angående att ingen orkar bry sig är en annan sak. Jag är ändå dock lite nyfiken!

Visa signatur

Ruby (on rails) är fint!

Permalänk
Medlem

Re: Re: .NET - Skydda källkoden.

Citat:

Ursprungligen inskrivet av gosh
Finns det någon som är så dum så den försöker lägga ner jobb på att hitta lösningar i .NET-kod?
.NET är i första hand till för de som inte är så vassa på programmering vilket också innebär att koden kan se ut lite hur som helst.
En skicklig programmerare väljer inte .NET om han/hon har möjlighet och välja. Med största sannolikhet blir det C++.
Tänk på att .NET, Java och en del andra språk oftast är gjorda just för att C++ är för svårt.

Vilket kvalificerat skitsnack. Jag säger inget mer då jag endast ville poängtera hur onödigt och dumt ditt inlägg var.

Permalänk
Medlem

Re: Re: .NET - Skydda källkoden.

Citat:

Ursprungligen inskrivet av gosh
Finns det någon som är så dum så den försöker lägga ner jobb på att hitta lösningar i .NET-kod?
.NET är i första hand till för de som inte är så vassa på programmering vilket också innebär att koden kan se ut lite hur som helst.
En skicklig programmerare väljer inte .NET om han/hon har möjlighet och välja. Med största sannolikhet blir det C++.
Tänk på att .NET, Java och en del andra språk oftast är gjorda just för att C++ är för svårt.

Eller så inte. Är väl ungefär som att säga att C++ är gjort för de som finner C för svårt.

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av bongo-apan
Men om det är så som du säger är det ju bara ännu värre då det lär finnas fler kleptomaner just därför, eftersom vi som använder .NET uppenbarligen är efterblivna och därför behöver lite hjälp på traven

Att sitta och debugga annans kod är enormt jobbigt, finns det inte kommentarer och koden inte är mycket välskriven så tar det garanterat betydligt mindre tid och skriva det själv och lära sig. Det krävs en mycket skicklig programmerare för att klara av detta men denna skickliga programmerare sitter förmodligen och kodar egna grejjer istället för att tyda andras kod.

En av de få gånger som det kan löna sig och tyda annans kod är om man skall cracka ett program och liknande.

Det är relativt riskfritt och skicka med källkod till och med så länge som man utelämnar de centrala delarna.

Citat:

Ursprungligen inskrivet av Loopback
Vilket kvalificerat skitsnack. Jag säger inget mer då jag endast ville poängtera hur onödigt och dumt ditt inlägg var.

Du får tycka det är hur mycket skitsnack som helst, jag försökte bara nämna att risken knappt finns att någon försöker titta på källkoden. Att det är ett stort jobb samt varför ingen försöker.

Jag vet redan att de som inte kan C++ alltid tycker att deras språk är bäst, men är man intresserad av programmering och lärt sig samb behärskar C++ så lämnar man det inte. Det talar sitt tydliga språk

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Ja, men nu skickar du med de "centrala delarna" (om du nu tänker som jag). Eftersom du kan i princip återskapa allt.

Visa signatur

Ruby (on rails) är fint!

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av bongo-apan
Ja, men nu skickar du med de "centrala delarna" (om du nu tänker som jag). Eftersom du kan i princip återskapa allt.

Nu menade jag att man skulle skicka med källkodsfilerna, du vet den kod som du sitter och jobbar med. Då kan det vara dumt och skicka med de centrala delarna just för att man där brukar skriva så det är lätt och förstå. Kommentarer och liknande finns ju inte med om du kör reverse enginering. Gissar på att en hel del annat med är förändrat till mer kryptiska saker.

Citat:

Ursprungligen inskrivet av msl
Eller så inte. Är väl ungefär som att säga att C++ är gjort för de som finner C för svårt.

Nej det är det inte för C++ är inte gjort för att förenkla C. C++ är gjort för att kunna strukturera kod bättre, att få projekt att gå i land. Det är svårare och lära sig C++ jämfört med C men lättare att hantera stora projekt (under förutsättning att programmerarna är bra).

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Va fan snackar du om?
Om du kör t.ex Reflector på ett .Net program så får du tillbaka variabelnamn etc, men kommentarerna försvinner.

Om du obfuskerar koden så blir det lite knepigare - ja, det är sådana program jag är ute efter. Inte C++, C eller kommentarer angående vem som vet mest.

Det är inte svårt att förstå vad som händer - om du prövar så får du se själv.

Visa signatur

Ruby (on rails) är fint!

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av bongo-apan
Va fan snackar du om?
Om du kör t.ex Reflector på ett .Net program så får du tillbaka variabelnamn etc, men kommentarerna försvinner.

Que??

Du menar att du i princip kan se orginalkoden förutom kommentarer med Reflector?

Har själv bara gjort två program i C#, mest för att testa. En addin till visual studio och ett serverprogram för en webapplikation. Så inte specialist på "dissassembla" det.

Men det är ju ytterligare ett argument till och välja annat språk isåfall.

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av gosh
Nu menade jag att man skulle skicka med källkodsfilerna, du vet den kod som du sitter och jobbar med. Då kan det vara dumt och skicka med de centrala delarna just för att man där brukar skriva så det är lätt och förstå. Kommentarer och liknande finns ju inte med om du kör reverse enginering. Gissar på att en hel del annat med är förändrat till mer kryptiska saker.

Nej det är det inte för C++ är inte gjort för att förenkla C. C++ är gjort för att kunna strukturera kod bättre, att få projekt att gå i land. Det är svårare och lära sig C++ jämfört med C men lättare att hantera stora projekt (under förutsättning att programmerarna är bra).

Bara för att nämna det så menade jag inte det jag sa utan var bara en påpekelse av att det du sa lät mer eller mindre idiotiskt.

Tror mer att .NET är gjort för att det ska vara smidigare att utveckla i än att utveckla i till exempel C++ istället för att vara det som du påstår för de som är sämre på att programmera.

Sorry för off topic, nu skall jag sluta.

Permalänk

Orginal

protected override void UnloadGraphicsContent(bool unloadAllContent) { if (unloadAllContent == true) { _content.Unload(); } } protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); KeyboardState aKeyboard = Keyboard.GetState(); if (aKeyboard.IsKeyDown(Keys.Escape) == true) { this.Exit(); } _player.Update(gameTime.ElapsedGameTime.TotalSeconds); base.Update(gameTime); }

Decompiled.

protected override void UnloadGraphicsContent(bool unloadAllContent) { if (unloadAllContent) { this._content.Unload(); } } protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { base.Exit(); } if (Keyboard.GetState().IsKeyDown(Keys.Escape)) { base.Exit(); } this._player.Update(gameTime.ElapsedGameTime.TotalSeconds); base.Update(gameTime); } }

Sådär kan en liten del se ut om du kompilerar början till ett xna-lir.

Tråkigt att det blev så dålig stämning här inne efter allt skitsnack och sen i slutändan visste du inte hur problemet var.

Visa signatur

Ruby (on rails) är fint!

Permalänk
Medlem

Har också funderat på det där, med tanke på att .NET är microsofts slagskepp så borde de tillhandahålla något bra sätt att skydda koden på om man ska skapa några större projekt.

Här vore faktiskt DRM en bra lösning (usch, det sved verkligen att säga det där), dvs operativsystemet låser filen och låter den endast bli öppnad av .NETs JIT-kompilator.

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av msl
Bara för att nämna det så menade jag inte det jag sa utan var bara en påpekelse av att det du sa lät mer eller mindre idiotiskt.

Ok! lungt

Vet också att det snabbt blir heta debatter när man kritiserar språkval men det visar lite på osäkerheten hos de som valt förenklade varianter.

Citat:

Ursprungligen inskrivet av bongo-apan
Sådär kan en liten del se ut om du kompilerar början till ett xna-lir.

Det var det jävligaste!!

Det är ju lika bra och köra "open source" direkt isåfall och försöka dra fördelar av att visa koden

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk
Medlem

Det finns en gratis obfuscator här:
http://www.aspose.com/Products/Aspose.Obfuscator/
(Nu verkar den iof inte vara den bästa, men den e ju gratis iaf)
Annars finns en lista hos microsoft här:
http://msdn2.microsoft.com/en-us/vcsharp/aa336818.aspx#obfusc...
I stort sett alla verkade ha trial/evaluation/demo-versioner som man kan testa.

Iof kan jag inte riktigt se problemet (med att det går lätt att dekompilera) i dom flesta fallen.. Vad ska man med en dekompilerad källkod till?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av vb
Iof kan jag inte riktigt se problemet (med att det går lätt att dekompilera) i dom flesta fallen.. Vad ska man med en dekompilerad källkod till?

1. Kompilera om en demoversion till en fullversion.
2. "Skapa" ett konkurerande program utav din kod.
3. Fusk i onlinespel.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Chimaira
1. Kompilera om en demoversion till en fullversion.
2. "Skapa" ett konkurerande program utav din kod.
3. Fusk i onlinespel.

Men obfuskering gör det inte omöjligt att göra det du radar upp, bara aningens jobbigare. Om du gör ett eget lite program/spel i tex C med enbart några få användare då brukar folk inte cracka det, pirata det eller fuska i det, men frågan är då om några kommer att dekompilera det heller? Och så fort ett spel/program blir lite större kommer det att piratas, fuskas och crackas oavsett om du skrivit det i C eller C#.

Permalänk

Se det så här, att man inte vill eller kan spendera X antal tusenlappar för att skydda sig mot industrispionage säger en hel del om värdet av produkten man skapat.

Din kod och dina rättigheter skyddar du genom upphovsrätten och genom att välja en vettig licens som passar dig och dina kunder.

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av vb
Och så fort ett spel/program blir lite större kommer det att piratas, fuskas och crackas oavsett om du skrivit det i C eller C#.

Det är helt omöjligt och "pirata" ett program skrivet i C eftersom C-koden inte finns kvar. Enda möjligheten då är assembler (maskinkod), och det är omöjligt (så skicklig är ingen). Crackning är en helt annan sak jämfört med att "pirata".

Det var rätt länge sedan som någon skrev något program direkt i assembler och som är lite större för att det är så otroligt svårt och ha kontroll på allt.

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk
Citat:

Ursprungligen inskrivet av BobbyFromDallas
Se det så här, att man inte vill eller kan spendera X antal tusenlappar för att skydda sig mot industrispionage säger en hel del om värdet av produkten man skapat.

Din kod och dina rättigheter skyddar du genom upphovsrätten och genom att välja en vettig licens som passar dig och dina kunder.

Ja, det har jag läst en massa gånger, men man märker ju att licenser fungerar väldigt bra idag. Piratskeppet har väl fler besökare än någonsin och hur ska man veta om en japan säljer din källkod?

Men jag kan hålla med dig om det första du sa, saken är inte den.
Jag skulle känna mig gladare om jag hade möjligheten att försvåra för diverse slödder.

Jag skrev även att jag är villig att betala, men det måste väl finnas billigare program än så?
Det är ju dock som att leta efter en nål i en höstack.

-------

VB. JAg har skrivit ett flertal gånger att det är självklart man kommer kunna luska ut vad programmet gör, men jag vill inte ge ut källkoden som ett open-source program. Om man obfuskerar koden ger man dem lite mer problem, en vanlig svensson kanske inte klarar av det då, right?

Tack, ska kolla på dina länkar.
Jag letade dock någon som har erfarenhet av programmen.

Gosh: Du har inte hållt dig ontopic för fem öre. Jag vill inte veta något om vad du tycker om c, c++, c# om det inte tillför något till tråden.

Du är experten vi vet, men om du inte har något vettigt att tillföra kanske du kan se man inte röra istället?

Tack för svaren, verkar vara svårt det här. Man kanske bara ska strunta i det som vissa tycker?

Visa signatur

Ruby (on rails) är fint!

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av bongo-apan

Gosh: Du har inte hållt dig ontopic för fem öre. Jag vill inte veta något om vad du tycker om c, c++, c# om det inte tillför något till tråden.

Du är experten vi vet, men om du inte har något vettigt att tillföra kanske du kan se man inte röra istället?

Om du tänker lite så förstår du, har givit input till när det blir aktuellt för någon och kopiera kod för jag antar att det är själva poängen med att du vill skydda din?

Man går inte och snor en bil som är mycket jobbig och starta och knappt användbar, däremot snor man gärna en porsche som är helt upplåst och fulltankad om du är med på liknelsen.

Dessutom så skulle ingen ta källkoden rakt av och sälja det som sitt eget program, vad man kan tänkas göra är att ta delar för att hitta lösningar.

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk
Citat:

Ursprungligen inskrivet av gosh
Om du tänker lite så förstår du, har givit input till när det blir aktuellt för någon och kopiera kod för jag antar att det är själva poängen med att du vill skydda din?

Man går inte och snor en bil som är mycket jobbig och starta och knappt användbar, däremot snor man gärna en porsche som är helt upplåst och fulltankad om du är med på liknelsen.

Dessutom så skulle ingen ta källkoden rakt av och sälja det som sitt eget program, vad man kan tänkas göra är att ta delar för att hitta lösningar.

Det enda du har gjort är att komma med påståenden som folk tycker är felaktiga och känner att de måste svara på.
Läs inläggen så ser du?

Dessutom så skulle ingen ta källkoden rakt av och sälja det som sitt eget program, vad man kan tänkas göra är att ta delar för att hitta lösningar.

Du vet det därför att ....?

Jag läste också den liknelsen på msdn, det är därför jag letar efter folk med erfarenhet av det här, jag har inte det - jag får känslan av att du inte heller har det.

Visa signatur

Ruby (on rails) är fint!

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av bongo-apan
Jag läste också den liknelsen på msdn, det är därför jag letar efter folk med erfarenhet av det här, jag har inte det - jag får känslan av att du inte heller har det.

Du skall nog inte gå så starkt efter din känsla. Vad du först bör göra är att få färdigt ditt program, jag får "känslan" av att du inte gjort något större program än. Det är inte så lätt som man kanske kan tro när man sätter igång.

Även om det var lätt och få fram källkoden så är det ändå inget du behöver oroa dig för, som någon skrev så är du skyddad av upphovsrätten. Men det är en lååååååååååååååååååååååååååååååååååång väg för dig innan du nått så långt att folk börjar köpa ditt program.

Ett tips är du skiter i detta med att skydda din kod nu i början och fokuserar helt på att bli så duktig programmerare som möjligt.

Här är en bra sajt där det finns en hel del duktiga:
http://www.codeproject.com/index.asp

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Om du låter mig fokusera på det jag anser vara trevligt, ok?
Jag tycker att problemet är intressant då som Chimaira skrev: ".NET är microsofts slagskepp".

Visa signatur

Ruby (on rails) är fint!

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av bongo-apan
Om du låter mig fokusera på det jag anser vara trevligt, ok?
Jag tycker att problemet är intressant då som Chimaira skrev: ".NET är microsofts slagskepp".

Vad är det jag förstör? Du har fått svar samt att du skriver på ett forum och då är man lite mer generell eftersom många läser. Pröva och starta lite andra trådar, du kommer aldrig att få helt exakta svar.

Microsoft är som de flesta andra företag, de lever under en ekonomisk verklighet och behöver dra in pengar. När de gör saker så är det inte enbart teknik de tänker på utan man skall även kunna tjäna pengar på det som görs. Marknadsföring är otroligt viktigt och då framhåller man fördelar, nackdelar tenderar och glömmas bort.

De som förstår sig på teknik kan snabbt se att .NET inte riktigt är SÅ bra som de säger, dessutom är det i realiteten låst till Windows och microsofts produkter även om det dyker upp lite försök på andra platformar. Det är otroligt viktigt att utvecklingsmiljön måste fungera felfritt om man utvecklar i miljön. Skicka ut en produkt till tusentals kunder och inte riktigt lita på utvecklingsmiljön gör ingen.

Vill du bli en duktig programmerare så lär dig C++ och kör i det. Microsoft skulle aldrig komma på tanken och exempelvis skriva Word eller Excel i .NET. Databaspram möjligen eftersom det där är databasen som tar tid.

En C++ programmerare lär sig C# på en vecka så du kastar inte bort tiden, är du duktig på C++ så är du igång på några dagar i C#. Däremot tar det rätt lång tid för en C# att gå över till C++.

Visa signatur

Programmerare med C++ som huvudspråk.

Permalänk

Men varför måste du rekommendera c++/c i varje inlägg du gör?
Jag har inget emot en bredare inblick på hur dekompilering, code-protection fungerar osv.

Men när du skriver dumma påståenden som att "byt språk", "bli en bättre programmerare" så har ju det faktiskt inget med det jag frågade och eftersom folk uppenbarligen endast skrev i tråden för att visa att du har fel så blir det snabbt en tråkig atmosfär här inne.

Jag gillar .net, får jag göra det för dig?
Får jag ställa en .net-fråga utan att du leker allan-ballan och försöker bevisa att mitt val suger stenhårt?

Du borde väl veta om att folk får välja själv och för de flesta är programmering något man gör för det är kul, som jag. Och jag har nu funnit ett problem som jag finner intressant och sökte en lösning/diskussion på.

Och jag förstår att du tycker .net-ramverket är sämre än c++ nu.

Tack.

Anyway, fick ett par bra svar i varje fall. Tack så mycket pojkar!

Visa signatur

Ruby (on rails) är fint!