Záhada dekompilace CIL v SharpDevelop – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Záhada dekompilace CIL v SharpDevelop – .NET – Fórum – Programujte.comZáhada dekompilace CIL v SharpDevelop – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
AttilaA0
Newbie
23. 8. 2012   #1
-
0
-

Zjistil jsem, že se prostřednictvím SharpDevelop dostanu ke zdrojovým kódům DLL .netovských aplikací. Překvapilo mě, jak je to jednoduché. Vím, že existují dekompilátoty, ale podle mých zkušenosti vrací špatně čitelný kód. Naproti tomu je kód SD dokonale čitelný, se zachováním jmen proměnných i formátování. Chybí jen komentáře, pokud ovšem ve zdroji vůbec byly.

Má někdo vysvětlení, jak je to možné?

Jde v tomto případě o dekompilaci CIL, nebo se zdrojáky načítají odjinud?

Díky

Nahlásit jako SPAM
IP: 178.72.192.–
Reklama
Reklama
ingiraxo+15
Grafoman
23. 8. 2012   #2
-
0
-

ptáš se, proč jazyk C# jde dekompilovat a výsledek je z 98% stejný, jako původní kód? Protože při kompilaci se nejdříve převede kód do CIL/MSIL/IL (vyber si) a až potom do strojového kódu, bohužel v souboru exe, je uložen tento kód, nikoli strojový, jak tomu je např. v C/C++

a do strojáku se to překládý dynamicky až při spuštění

a potom už není težké převést IL kód do správného formátu, takže výsledek je velice totožný z originálem a komentáře tam nikdy neuvidíš, protože se při kompilaci vždy odstraňujou

pokud nechceš aby kód byl vidět, tak jediný co můžeš udělat je obfuskovat, ale kolikrát to není ani tak efektivní, protože i ta nejsilnější "zkryje" možná max  70% kódu

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Mutagen0
Super člen
23. 8. 2012   #3
-
0
-

#2 ingiraxo
Takže jde nějak jakoby "zamknout" kód aby nebyl čitelný? (aspoň z části?) Pokud jo, nechceš sem dát nějaký informace o tom?

Nahlásit jako SPAM
IP: 89.190.90.–
attliaa nepřihlášen
~ Anonymní uživatel
5 příspěvků
23. 8. 2012   #4
-
0
-

#2 ingiraxo
Princip překladu di CIL je mi jasný, ale taky vím, že všechno se do CIL neukládá, třeba formátování. Zarazilo mě, jak nedokonalé jsou jiné dekompilátory a jak dokonalý je SD. Ale budiž, nechme to být.

Nahlásit jako SPAM
IP: 89.31.10.–
ingiraxo+15
Grafoman
23. 8. 2012   #5
-
0
-

#3 Mutagen
jak jsem výše napsal, tak jde obfuskovat, na to máš na netu plno programů, který maskujou kód, ale také nejsou úplně dokonalý.. sice to pro běžnýho uživatele zamaskujou originál, takže tomu nerozumí, ale experti i přes obfuskaci dokážou přejít (je to sice časově náročnejší, ale né nemožný).. otazkou spíš je, jestli to má vůbec smysl, to by jsi musel mít nějakou extrémní aplikaci a prodávat to za těžký prachy, aby jsi to musel obfuskovat

hlavně mám dojem, že čim silnější obfuskace, tím se aplikace pomaleji načítá.. je to hold na úkor rychlosti

AttilaA:

všechno ne, nekterý věci tam jsou ponechány v originále, to si můžeš třeba i v nějakým textáku otevřít a uvidíš originální názvy, enumy apod.

plno dekompilátorů je podle mě velice použitelných, vždy mi získal kód kolem 98% původního stavu a to jsem jich zkoušel asi 5.. mezi nejrozšířenejší patří asi: .NET Reflector

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
attliaa nepřihlášen
~ Anonymní uživatel
5 příspěvků
23. 8. 2012   #6
-
0
-

Píšu aplikace, které používají knihovny externího dodavatele a ten jejich obsah a funkčnost tají. Dosud jsem postupoval metodou pokus omyl, zkoušel jsem i Reflector a jiné dekompilátory. Příliš mi nepomohly. Proto mě překvapila funkčnost SD. O ochranu mého kódu mi nejde.

Nahlásit jako SPAM
IP: 89.31.10.–
ingiraxo+15
Grafoman
23. 8. 2012   #7
-
0
-

tak v tom případě nechápu, kde je problém... pokud ti vyhovuje používání SD na dekompilaci, tak ho použíívej

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
attliaa nepřihlášen
~ Anonymní uživatel
5 příspěvků
23. 8. 2012   #8
-
0
-

Díky za odpovědi.

Nahlásit jako SPAM
IP: 89.31.10.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 102 hostů

Podobná vlákna

VS C++ Cli - Dekompilace — založil CodeHustla

SharpDevelop a XNA — založil davidus

Nacitanie .dll v SharpDevelop — založil Johnnny

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý