Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  c# Kuidas kaitsta oma koodi? märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
andiweb
HV vaatleja

liitunud: 16.04.2003




sõnum 26.03.2009 20:38:06 c# Kuidas kaitsta oma koodi? vasta tsitaadiga

Kuidas kaitsta C# või .net-s oma koodi, et keegi ei saaks algkoodi näha?

Olen siin uurind ja puurind, enamus asju tasulised, kas mingeid tasuta variante ka eksisteerib?

Kõik kogemused oodatud, isegi tasuliste variantidega.

Tänud juba ette...
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 26.03.2009 21:00:07 vasta tsitaadiga

Eazfuscator.NET (tasuta)
Skater .NET Obfuscator Light Edition (tasuta)
{smartassembly} (tasuline)

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
ref
Kreisi kasutaja

liitunud: 10.08.2003




sõnum 30.03.2009 11:12:22 vasta tsitaadiga

Absona kirjutas:
Eazfuscator.NET (tasuta)
Skater .NET Obfuscator Light Edition (tasuta)
{smartassembly} (tasuline)

Elu on näitanud, et esimesed kaks ei tee päris seda, mis nad lubavad (pisikese vaeva järel saab ikkagi koodi kätte), smartassembly teeb tihti rohkem, kui vaja... ehk siis reaalselt on vaja siiski veidi raha välja käia.

Või variant b - arenda vabavara icon_wink.gif (müü supporti, mitte proget ennast)
variant c - vaheta arendusplatvormi icon_wink.gif
Kommentaarid: 17 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 30.03.2009 15:43:22 vasta tsitaadiga

Vabandust aga näiteks isiklikult mina ei tea ühtegi programeerimiskeelt, mis oleks reverse engineeringule vastu pidanud ? Muidugi noh veebilehed, sourcele ligipääsu pole php või .net. Parandage kui ma eksin icon_rolleyes.gif
_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
ref
Kreisi kasutaja

liitunud: 10.08.2003




sõnum 30.03.2009 16:08:22 vasta tsitaadiga

lehm2 kirjutas:
Vabandust aga näiteks isiklikult mina ei tea ühtegi programeerimiskeelt, mis oleks reverse engineeringule vastu pidanud ? Muidugi noh veebilehed, sourcele ligipääsu pole php või .net. Parandage kui ma eksin icon_rolleyes.gif

Osaliselt on sul õigus - aga näiteks .net disassembler harutab su koodi nii ilusasti ja kenasti lahti nagu oleksid sa algkoodi saanud (näiteks ANSI C rakenduse puhul saad sa küll mingit disassemblerit kasutades aimu mis kusagil registrites toimub, kuid nö. inimloetavat ja kena algkoodi sa ei saa).

Tee üks näide: kirjuta suvaline .net rakendus, "kompileeri", tiri Dis#, lase sellega kompileeritud rakendus üle ja vaata, kuidas sa saad kätte täht-tähelt sama koodi...

Ärirakenduste, eriti kriitiliste ärirakenduste, puhul ei ole see teps mitte hea icon_wink.gif mida näiteks smartassembli teeb on see, et obfuskeerib koodi (teeb asja ümber nii, et inimese poolt seda ei loe, samuti suvaline masin ei suuda reeglina asja tagurpidi lahti arutada)
Kommentaarid: 17 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 30.03.2009 16:25:02 vasta tsitaadiga

Ma ei ole küll üheski suures projektis osalenud ning ei tea, kuidas täpsemalt arendus käib. Kuid kas üldse obfuskeeritakse koodi, obfuskeerimine lisab üldjuhul ebavajalike tehteid ja muid lugemist takistavaid elemente ehk lühidalt muudab koodi aeglasemaks.?
_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
ref
Kreisi kasutaja

liitunud: 10.08.2003




sõnum 30.03.2009 16:32:24 vasta tsitaadiga

lehm2 kirjutas:
Ma ei ole küll üheski suures projektis osalenud ning ei tea, kuidas täpsemalt arendus käib. Kuid kas üldse obfuskeeritakse koodi, obfuskeerimine lisab üldjuhul ebavajalike tehteid ja muid lugemist takistavaid elemente ehk lühidalt muudab koodi aeglasemaks.?

Sõltub rakendusest ja kliendist - kui kliendi (või tema audiitori) nõue on, et kood peab olema obfuskeeritud siis ka nii tehakse, samas obfuskeerimine on suuresti ka company policy.

Kui on vaja lisada koodi osas turvalisust või kohati kaitsta oma autoriõigusi (nt. PHP-põhine sisuhaldus ja selle litsentside jagamine - PHP kood tasuks mingilgi määral ära obfuskeerida, et suvaline veidi asjasem tüüp litsentsivõtit lahti ei hammustaks) siis on koodi obfuskeerimata raske hakkama saada.

Obfuskeerimisest loe veel wikipediast: http://en.wikipedia.org/wiki/Obfuscated_code
Kommentaarid: 17 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
maxorator
HV kasutaja

liitunud: 30.08.2006




sõnum 31.03.2009 00:29:30 vasta tsitaadiga

lehm2 kirjutas:
Vabandust aga näiteks isiklikult mina ei tea ühtegi programeerimiskeelt, mis oleks reverse engineeringule vastu pidanud ? Muidugi noh veebilehed, sourcele ligipääsu pole php või .net. Parandage kui ma eksin icon_rolleyes.gif

Pöördprojekteerimist saab muidugi rakendada iga keele ja platvormi puhul. Kuid native keelte puhul ei saa algkoodi vähemalt lihtsalt tagasi. Seega on koodi uuesti kompileerimine peaaegu võimatu, saab vaid vaadata assembly kujul koodi (ja üksikuid baite muuta) või alustada väga mahukat ja aegavõtvat täielikku pöördprojekteerimist, mida naljalt ei tehta, kuna see ei tasu lihtsalt ennast ära.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 31.03.2009 22:16:34 vasta tsitaadiga

lehm2 kirjutas:
Kuid kas üldse obfuskeeritakse koodi?


Kõige lähem näide on vast Skype, mis on rakendanud päris karme võtteid, et oma binaaride lahtivõtmist takistada, andes sellega ainest mitmetele tõsistele uuringutele. Näiteks mõningaid väljavõtteid ühest dokumendist:

* Some parts of the binary are xored by hard-coded key
* In memory, Skype is fully encrypted
* Skype has protections agains debuggers. When it detects an attack, it traps the debugger: a) Registers are randomized, b) a random page is jumped into.

Seega jah, on ettevõtteid kus koodi obfuskeeritakse.

Kui ma aga kohtan obfuskeeritud koodiga programmi, siis tekib tahes-tahtmata küsimus: mida nad varjavad? Kas teeb see programm ehk midagi, mis kardab päevavalgust?

Näiteks Skype'i puhul paistab see olevat taktika saavutamaks karmi vendor lock-in'i.

Võibolla oskab keegi nimetada mõnda programmi, mis kasutab obfuskeerimist mingil ausal eesmärgil, aga mina ei tea ühtegi sellist.

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 01.04.2009 03:50:23 vasta tsitaadiga

Noh, tegelt on põhjuseid küll ja küll. Eriti just koodide/progede puhul mis ei ole open sourcena mõeldud igale huvilisele vaatamiseks ja näperdamiseks.

Kui näiteks ülalpooltoodud smartassembly proge kood oleks obfuskeerimata, siis tõmba ainult alla, vaata mingi enamvähem reflectoriga source kood üle, et kuskohas on litsentsi kontroll (funktsioon IsLicensed vms icon_razz.gif), näperda natuke sisu ümber ja voila, hoiad enda tarbeks kasutamiseks mingi päris mitu tuhat eeku kokku ja suure hulga inimeste nähtud vaev jääb tasustamata, kuna umbes 10 minti peale ametlikku release'i on juba kräkitud versioon olemas.

Samamoodi üritab ka Skype hoida ära seda, et arendamisse pandud miljoneid keegi hiinakas megalihtsalt pihta panna ei saaks. Need osalised Skype kliendid millega on hakkama saadud ei ole ja ei saa kunagi saama Skypega võrdsele tasemele, kuna source kood on ainult skypel, ja nemad saavad muudatusi teha kiirelt. Reverse engineerijad aga peavad iga uue lisa puhul hakkama uuesti reversema exe't.

Samamoodi ka RuneScape klient on obfuskeeritud, et iga suvakas ei saaks loogikat ümber kopeerida kerge vaevaga ja paari kuuga enda koopiat kuskil hiinas ebalegaalselt püsti panna.

Iga enesest lugu pidav programmeerija peaks olema kursis obfuskeerimisega ja seda pakkuvate vahenditega, eriti kui ta koodib mingit eraldiseisvat programmi, mida plaanib litsentsi põhiselt kasutajatele müüa ilma source koodita.
Obfuskeerimine ei ole küll 100% lahendus ja kes tahab saab ikkagi näpuga järge ajada, kuid umbes 95% torkijatest peletab see eemale ja nood hakkajamad peavad ka vaeva nägema et lahti muukida ja kräkkida programmi.
Ma ise RuneScape obfuskeeritud koodis ringi sobranud ja data failide editore teinud näiteks 3d model viewer, tekstuuride viewer/replaceja jne, ütleks et väga aeganõudev töö on taolises koodis ringi sobrada, veel vähem midagi muuta.

Kui meil maailmas oleksid ainult ausad ja toredad inimesed kes austaksid Intellectual Propery ja Copyright õiguseid, oleks kõik tore ja poleks taolist jama vaja, aga kahjuks me sellises maailmas ei ela ja seepärast on vaja enda tehtud tööd ka mingitki moodi kaitsta mitte igaühte kutsuda oma programmi muutma ja kräkkima.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Keios
HV vaatleja
Keios

liitunud: 17.05.2004




sõnum 03.04.2009 17:19:44 vasta tsitaadiga

DotFuscator Community Edition <-- leida võib Visual Studio Tools menüüst. (Võimalik, et Visual Studio Express Editioni puhul seda pole!)
_________________
"I don't count my sit-ups, I only start counting when it starts hurting because they’re the only ones that count". - Muhammad Ali
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 10
tagasi üles
vaata kasutaja infot saada privaatsõnum
andreie
HV vaatleja
andreie

liitunud: 09.09.2006




sõnum 04.04.2009 13:41:43 vasta tsitaadiga

.NET Reactor

Ega see ka mingi imevahend pole.

_________________
Unix survives only because everyone else has done so badly.
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
mirko28
Aeg maha 1p
mirko28

liitunud: 31.12.2003




sõnum 24.04.2009 20:12:09 vasta tsitaadiga

Obfuscator on jah inglise keeles sedalaadi nimetus lähtekoodi muutmiseks.
Praktiline elu näitab, et enamasti lähekoodi keegi häkkima ei hakka, seetõttu soovitan mitte muretseda.
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 29.04.2009 02:40:05 vasta tsitaadiga

estrose, palun uuri netist/googlest tsipa rohkem mismoodi praegused .NET ja Java ning üldiselt suht kõik obfuscatorid töötavad...

Sa annad obfuscatorile ette kokku kompileeritud exe/klassi/jari, obfuskaator võtab selle baitkoodi ette, eemaldab sealt kõik loetavad nimed ja asendab loetamatute märkidega. Arenenumad obfuscatorid suudavad isegi baidkoodi tasemele erinevaid goto jms käske sisse panna mis muudab enamasti lahti kompileerimise ja uurimise veelgi keerukamaks.

Kui sa obfuscatoriga java/C# koodi üle ei lase, siis täiseti vabavaraliste ja legaalsete asjadega ma võin lugeda sinu programmi koodi nagu oleks mul selle originaal source olemas (ilma koodiridade keskel olevate kommentaarideta kuna neid ei panda kompileerimisel kaasa).
Seega see sinu mitte muretsemise lause koos põhjendusega, et source koodi näeb niikuinii ainult progeja, on ikka väga mööda icon_biggrin.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
HacaX
HV Guru
HacaX

liitunud: 22.01.2004




sõnum 29.04.2009 06:44:18 vasta tsitaadiga

nene kirjutas:
Võibolla oskab keegi nimetada mõnda programmi, mis kasutab obfuskeerimist mingil ausal eesmärgil, aga mina ei tea ühtegi sellist.

COM/EXE krüptorid (ehk siis, lihtsustatult võttes, obfuscatorid) on ise traditsiooniliselt krüptitud olnud (ning mõnikord lausa eraldi krüptoriga mida varem/hiljem kusagil mujal ei tarbita - mis muudab kollektsionääridele krüptori (binaari) veelgi huvitavamaks). Eesmärk on IMO igati "aus" - takistamast kräkerdajatel täpse krüptimisprotsessi väljalugemist icon_wink.gif

_________________
IMO & GPLed
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  c# Kuidas kaitsta oma koodi?
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.