Dekompilátory pro .NET a obrana proti nim

Diskuze čtenářů k článku

Honza  |  03. 02. 2003 09:23

Autor si zrejme nezjistil vsechny dostupne ochrany .NET aplikaci. Existuje totiz take nastroj "Salamander .NET Protector", ktery preklada primo do binarniho kodu, takze dekompilovat sice muzete, ale ziskate jenom kod v assembleru. A to muzete udelat s jakymkoli programem. BTW metadata jsou zachovana, takze o zadne vyhody .NET pouzitim Protectoru neprijdete.

P.S.: Nez zacnu o necem psat, tak bych si mel zjistit dostupne informace. A najit na webu tenhle produkt by prumernemu uzivateli nemelo trvat vic jak 5 minut.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin Vobr  |  03. 02. 2003 11:30

Zdravím,
podívejte se na datum, kdy tento článek vyšel (před 3/4 rokem). V té době byl Salamander .NET protector ještě na houbách a musel bych vidět do budoucnosti .

Opravdu si myslíte, že když v článku píšu o dekompilátoru od Remote softu že bych nedokázal na jejich webu najít reverzní nástroj?

Navíc kompilace .NET kódu do nativního kódu není řešení pro všechny případy. Vyvíjíme teď například .NETovou knihovnu pro snadnou práci s FTP, která nám běží jak ve Windows (pod Microsoftím CLR) tak v Linuxu (v Mono runtime). V případě, že bychom ji zkompilovali do nativního kódu tak jsme omezeni na Windows. Stejný způsob ochrany zkoušeli v Javě, ale kompilátory Java byte code do native code nikdy nebyly moc rozšířené mimo pár scénářů využití, kdy šlo hodně o rychlost.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Dalibor  |  16. 08. 2004 15:09

Je Salamander .NET protector opravdu tak dobry? aby se ke kodu nikdo nedostal?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Matej z Janova  |  18. 03. 2002 08:57

KE?

Souhlasím  |  Nesouhlasím  |  Odpovědět
ales skrivanek  |  09. 03. 2002 13:00

mam komponenty na webu a ale pc si vypucily neznami lide a nejak ho nechteji vratit. potreboval bych programek ktery to prevede do kodu

Jde to?

Ales

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin Vobr  |  10. 03. 2002 11:21

Klasická ASPéčka (ASP 2.0 ani ASP 3.0) kód do žádných DLL nekompilují. Pokud máte v projektu nějaké komponenty zapečené do DLL tak jsou nejspíš napsané ve Visual Basicu nebo Visual C++. V čem jste je napsal jistě víte. O žádném dekompilátory pro C++ ani pro Basic (alespoň pro verzi 5, která už vytváří normální spustitelný kód a ne p-code jako některé minulé verze) nevím.

Pokud jste je nepsal vy tak vás musím upozornit, že dekompilace cizího kódu je obvykle v rozporu s licenčními ujednáními.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jiri  |  07. 03. 2002 12:02

tohle ale vsichni jiz DAVNO vime. a vedeli jsme to i u Javy.

Tohle je totiz dan za to, ze kompilace neprobiha do nativniho kodu procesoru, ale do neceho "mezi". Z podstaty teto kompilace vyplyva, ze tento mezikod pude velmi snadno dekompilovat ci upravovat.

A jiz se tak i deje. Jak ja se vzdycky zasmeju, kdyz nekdo siri Java applet, ci zdrojak, ktery je chraneny licencnim souborem :) Proc myslite, ze se vsichni tesime na aplikace v C#?

A pro autora clanku bych dodal - jit na takoveto ochrany se SoftIce muze jit jenom nekdo neznaly, jako vy. Zbytecna namaha pro nic. Mezikod (at uz Javy, C# ci cehokoliv) je lepsi upravovat s hexa kalkulackou v jedne ruce a normou v druhe :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin Vobr  |  07. 03. 2002 17:06

tohle ale vsichni jiz DAVNO vime. a vedeli jsme to i u Javy.

Viz prvni veta clanku. Jisteze vim, ze se to dalo cekat

Ad SoftICE. Psal jsem jasne, ze SoftICE by se pouzil na aplikace napsane v cecku a ne v c# nebo Jave. Troufam si tvrdit, ze pokud budete v exe vzniklem kompilaci cecka hledat nejaky mezikod ze vam to bude trvat hodne dlouho  . Tolik k zasadnim neznalostem....

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
franta houska  |  07. 03. 2002 10:19

Kurva MS miluje open source, tak ho milujou vsichni co pouzivaj jejich produkty. Snad si teda nebudou stezovat

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jan Vrata  |  07. 03. 2002 07:49

Programatoři Micro$oftu produkují sami bez pomoci svých nebo "produktu třetích stran - tzv. zmatkovačů" soft, který je sám o sobě již řádně zazmatkován. Nicméně fakt popsaný v článku může býti opravdu "achylovou patou" vývoje .NET aplikací pro desktop.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bohuslav Roztočil  |  07. 03. 2002 07:42


  1. Veškerý kód je tak jako tak chráněn autorským zákonem. Po právní stránce je tedy jeho utajování zbytečné, stejně jej nikdo nemůže vzít a použít.

  2. Významným prvkem bezpečnosti informačních systémů je spolehlivost. A k té patří potřeba review zdrojových kódů a ověření, že software není napsán jako od "prasete". Není možné udělat audit SW, bez studia zdrojových kódů.

  3. Dalším důležitým prvkem v hodnocení bezpečnosti IS je, jak je uživatel závislý na dodavateli. Zdrojové kódy jsou nezbytné pro údržbu systému po případném zániku dodavatele apod. Ve vážně míněných IS bývá zpravidla součástí dodávky i kompletní zdrojový kód.

  4. A konečně - osobně nevěřím, že ve zdrojovém kódu může být něco tak cenného, že by vyplatilo utajování (pokud samozřejmě nechcete někoho podvést tvrzením, že Váš kód je lepší , než opravdu je). Naopak si myslím, že sdílení znalostí o kódování je prospěšné pro celé lidstvo . To, za co Vám platí, je stejně především Vaše schopnost vytvořit fungující systém a ne schopnost rozparserovat libovolné národní telefonní číslo na jediném řádku zdrojáku.

Závěrem se omlouvám všem prasatům, že jsem použil označení jejich druhu v hanlivém idiomu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
xb-1  |  07. 03. 2002 17:00

jednu vec bych mel

reverse egineeringem se treba podaril dekodovat DVD mechanismus, snazsi pristup ke kodu jiste oceni i autori ruznych key generatoru, proc myslite ze microsoft prechazi na on-line aktivaci svych produktu?

nastupu mezikodu se neda celit, platformova hybridyta musi skoncit a proste mezikod je pro debugovani nebo krokovani vzdycky lepsi nez nativni kod

mimochodem pomoci chytreho programu jde udelat reverse engineering do kodu i z aplikace psane v c++, jen je to o naco malo slozitejsi

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin Vobr  |  07. 03. 2002 17:08

mimochodem pomoci chytreho programu jde udelat reverse engineering do kodu i z aplikace psane v c++, jen je to o naco malo slozitejsi

No, sveho casu jsem docela dlouho neco takoveho pro cecko hledal (v ramci jedne sazky o tom, jestli je to mozne ci neni) a nic solidniho jsem nenasel. Mohl byste uvest nejake url? Mne to pripada o _hodne_ slozitejsi

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin Vobr  |  07. 03. 2002 17:15

ad1. Proc tedy zamykat auto, kdyz je prece kradez trestna a zakon na zlodeje dopadne . Po pravni strance je to tedy zbytecne (ale po prakticke nikoliv). S ochranou source code je to podobne.

ad 2. Zdrojove kody pro security audit patri do ruky odbornikum, ne cele verejnosti. To mate jako s elektronistalaci domu - plan elektroinstalace banky (ekvivalent zdrojaku) jiste potrebuje support bankovniho domu, ale neni nejlepsi napad ho vyvesit na dvere i s navodem jak odpojit napajeni bezpecnostniho systemu

ad 3. Naprosty souhlas. U nasich aplikaci to tak delame, ale to je mozne protoze nedelame baliky, ale sw na miru.

ad 4. No, nektere vychytavky muzete bud zjistit tim, ze budete tyden vymyslet jak na to, nebo tim, ze analyzujete kod, ktery to dela (treba za den). To docela podstatne setri zdroje a i penize na vyvoj. Z toho hlediska neni unik source code ke konkurenci nic prijemneho. I kdyz uznavam, ze takovych casti kodu neni mnoho...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor