Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
andiweb
HV vaatleja
liitunud: 16.04.2003
|
26.03.2009 20:38:06
c# Kuidas kaitsta oma koodi? |
|
|
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 |
|
 |
Absona
Lõuapoolik

liitunud: 17.09.2008
|
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
ref
Kreisi kasutaja
liitunud: 10.08.2003
|
30.03.2009 11:12:22
|
|
|
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 (müü supporti, mitte proget ennast)
variant c - vaheta arendusplatvormi
|
|
Kommentaarid: 17 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
15 |
|
tagasi üles |
|
 |
lehm2
Kreisi kasutaja

liitunud: 19.09.2004
|
30.03.2009 15:43:22
|
|
|
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
_________________ Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust ! |
|
Kommentaarid: 15 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
ref
Kreisi kasutaja
liitunud: 10.08.2003
|
30.03.2009 16:08:22
|
|
|
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  |
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 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 |
|
 |
lehm2
Kreisi kasutaja

liitunud: 19.09.2004
|
30.03.2009 16:25:02
|
|
|
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 |
|
 |
ref
Kreisi kasutaja
liitunud: 10.08.2003
|
30.03.2009 16:32:24
|
|
|
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 |
|
 |
maxorator
HV kasutaja
liitunud: 30.08.2006
|
31.03.2009 00:29:30
|
|
|
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  |
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 |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
31.03.2009 22:16:34
|
|
|
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 |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
01.04.2009 03:50:23
|
|
|
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 ), 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 |
|
 |
Keios
HV vaatleja

liitunud: 17.05.2004
|
03.04.2009 17:19:44
|
|
|
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 |
|
 |
andreie
HV vaatleja

liitunud: 09.09.2006
|
04.04.2009 13:41:43
|
|
|
.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 |
|
 |
mirko28
Aeg maha 1p

liitunud: 31.12.2003
|
24.04.2009 20:12:09
|
|
|
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 |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
29.04.2009 02:40:05
|
|
|
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
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
HacaX
HV Guru

liitunud: 22.01.2004
|
29.04.2009 06:44:18
|
|
|
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
_________________ IMO & GPLed |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
22 |
|
tagasi üles |
|
 |
|