Situatii
“Cerul instelat deasupra mea si legea morala in mine” (Immanuel Kant)
 

Microsoft dezvaluie codul sursa al unor produse

Scris pe 30 Aprilie 2008 de Cristi Comenteaza »

Tot citesc despre stirile puternic mediatizate de genul acesta. Cica Microsoft a decis de ceva vreme sa faca publice portiuni din codul sursa al unor produse de-ale sale, cum ar fi APIs din Word, Excel si PowerPoint. Utilizatorii vor beneficia de un document de cca 30,000 pagini gratuite despre Windows pe MSDN.

Ce gasesc bizar in toata aceasta fandoseala e ca majoritatea produselor de dupa aparitia .NET-ului (incluzand ultimele versiuni de Office sau DLL-uri ale lui Windows) pot fi de mult timp relativ usor dezasamblate. Exista chiar un tip de la Microsoft care, independent, a creat o aplicatie total gratuita numita Reflector, ce iti permite sa dezasamblezi (prin tehnici automatizate de reverse-engineering) executabile cu cod sursa in C#, VB.NET sau alte limbaje ale .NET-ului. Alt tip a creat un plugin pentru Reflector, numit File Disassembler, care-ti permite sa creezi instantaneu dintr-un “assembly” compilat in .NET proiectul complet in cod sursa.

Chiar ma enerva nu demult faptul ca aplicatiile scrise in .NET pot fi chiar atat de usor dezasamblate. Iar produsele bune care pot impiedica relativ acest gen de reverse-engineering (numite “obfuscators“) nu-s gratuite sau nu fac o treaba destul de buna. Dezasambloare au existat dintotdeauna, dar se spune ca cel mai greu erau de dezasamblat programele scrise in VB6. La ora actuala, de cand cu .NET-ul, publica unii pe web detalii despre ce gasesti in codul sursa al lui Windows sau Office, ori cum poti sa schimbi cheile de licenta.

Vrei sa vezi cum sunt scrise portiuni din Windows sau Office? Pai nu-ti trebuie “generozitatea” de 30,000 de pagini a lui Microsoft! Foloseste Reflector-ul si vezi clar perlele de programare din modulele existente pe calculatorul tau.


Etichete: , ,
Articole similare
 

6 comentarii

Gravatar Oribilul spune:

Si cu Java e aceeasi poveste. Insa ofuscatoarele in general isi fac bine treaba. Visual Studio vine chiar cu un ofuscator (Dotfuscator community edition).

Oricum, cine sta sa reconstituie cateva mii sau zeci de mii de linii de cod?


Gravatar Cristi spune:

hehe, “cine sta”? :) N-ai idee cum se fura codul. E mai usor sa faci reverse-engineering decat sa inventezi ceva nou :)

Dotfuscatorul din Visual Studio e o versiune free pe care n-o folosi, ca nu te protejeaza mai deloc. Un program ca Reflectorul o decodifica imediat. Criptarea de baza, complexa, vine doar cu versiunea comerciala, care-i scumpa a naibii :(


Gravatar inaequitas spune:

.NET si Java sunt limbaje interpretate. La fel ca JavaScript, Perl, Python si Ruby. Din cauza arhitecturii acestor limbaje, este relativ usor sa fie decompilate (‘dezasamblat’ nu este termenul corect in cazul acesta).

Pe de-alta parte, postul contine cateva erori ‘tehnice’: API-ul nu are legatura cu codul-sursa, fiind doar un contract intre aplicatie si programele 3rd party. Cand API-ul este prezent, aplicatiile care se folosesc de el au garantia ca vor functiona si dupa update-uri etc (Exista, evident, momente cand parti din API devin deprecated, dar de multe ori functionalitatea este pastrata, tocmai din motivele de mai sus)

Existenta publica a sursei nu are nici o legatura cu furturile care se pot comite. Asa cum mentionezi, cei care vor sa fure o fac oricum.

Ultima postare a lui inaequitas: pictures versus words (viewzi and image-based searching)


Gravatar Cristi spune:

@Inaequitas – interesant comentariul, dar nu conteaza daca limbajul e interpretat sau compilat in executabil, ca tot aceleasi probleme le pune la dezasamblare. Dealtfel, .NET si .Java nu-s chiar interpretate, in sensul strict al cuvantului, caci se compileaza in p-code (cod intermediar).

Eu am scris de codul sursa, si-am spus ca acesta face parte din niste APIs (dealtfel, orice cod la ora asta e expus la nivel conceptual prin APIs). Nu prea vad eroarea, dar ma rog…


Gravatar WhiteWolf spune:

Bre, voi nu sunteti oameni, bre:)
Voi chiar vretsi sa moara coder-ul de foame si sa nu-si mai poata permite un Happy Meal ? :P
Marturisesc ca agreez ideea de open source plus tot ceea ce mai implica ea.Tone de informatie, care ajuta creierele noi, sa asimileze mai repede, si sa faca ceva brilliant cand si daca vor dori: care ofera oricui suficient de curios sau interesat, un punct de pornire mai ales la momentul in care resursele materiale nu sunt foarte mari. Dar, fara closed source, open source ar fi inexistent, pentru ca majoritatea developerilor din open source projects, au joburi, unde si la care lucreaza pentru proiecte care sunt closed source,.
Job-uri care le asigura un VENIT, : bani de mancare, existenta curenta pentru ca , de obicei, aceia care fac parte din comunitate contribuie cu si in coding mai putin pe partea materiala si in final, chiar si cei care compun comunitatile open source trebuie sa manance.
Ceea ce nu inseamna si nici nu ma transforma automat intr-un fanatic sustinator al Microshit-ului ! – ca sa nu avem, mai apoi, vorbe la tribunal

Ultima postare a lui WhiteWolf: Cetateanul Turnator Se Da Gardian


Gravatar Cristi spune:

WhiteWolf, parerea mea referitoare la open source o gasesti aici. Stiu ca e bun pt cei ce folosesc pe de-a mocca acele programe, dar noi programatorii sunt de parere ca ne-am tras singuri un magistral shut in fund, cautand naiv sa tragem clapa la marile corporatii :(

Vad ca ai subliniat putin copilareste (nu te supara ;) ) contrele la MS$. Stiu, e la moda ;) , dar tare-as vrea sa vad mai multe companii reusind sa faca ce-au facut astia :)


Lasa si tu o vorba



Nota: doar continutul cu linkuri si primul tau mesaj pe blog sunt moderate.