02. januar 2003 - 23:57Der er
12 kommentarer og 1 løsning
dekompile *.dll
Jeg har lige downloadet ASP.NET forumet som ligger inde på http://www.asp.net/Forums/Download/ for at kigge lidt i kildekoden, og se hvordan det var opbygget. Desværre bestod 99% af al koden i en *.dll-fil, og det eneste *.aspx filerne indeholdt var nogle web/user-controls :(
Nå, mit spørgsmål er det muligt at dekompile *.dll-filen så man kan få sig et ordenligt indblik i kildekoden ?
En dll-fil er en eksekverbar fil, som består af maskin-kode. Den kan godt disassembleres, så du får en assembler-fil, men du skal være noget "lang-hårdet" for at få noget ud af resultatet.
En dekompilering, så du får en source-kode i et højniveau-sporg som f.eks. C, er ikke mulig.
Hvis nu og såfremt den medfølgende .dll er msil så kan den "sagtens" dekompileres. Hvad ib-rene-cairo siger er naturligvis kun rigtigt når det gælder gammeldags maskinkode libraries. Den rare Jay har sågar lavet et tool der gør alt arbejdet for dig :-) http://www.saurik.com/net/exemplar/ Damn det ville rart hvis folk holdt sig til at svare på ting de ved noget om :-)
Hvorfor? En msil dekompiler er jo fuldstændigt ligeglad med hvilken kompiler der har genereret det pågældende msil. Den vil f.eks. sagtens kunne tage et .net assembly skrevet i VB.Net der er kompileret med MS kompileren og dekompilere til c#!
z42cool >> Slap af. Lidt tolerance ville måske være for meget at forlange? Lad nu være med at være så arrogant, det *kunne* jo være at du ikke havde ret...
Med hensyn til spørgsmålet, så kan en decompiler aldrig regenerere kilden fuldstændigt - der vil f.eks. altid mangle kommentarer, og variabelnavne vil blive oversat til V_0, V_1, V_2 osv. Det vil selvfølgelig kunne lade sig gøre at decompile og derefter compile igen med det samme resultat.
Der findes også scramblers der kan "snyde" decompilerne og få dem til at lave noget sludder, men jeg har aldrig prøvet det.
Naturligvis kan vi alle tage fejl, men et svar der er leveret 10 min. efter at spørgsmålet er oprettet kunne måske drage fordel af lidt mere research. Man må trods alt gå ud fra at folk henvender sig her for at få "ekspert" hjælp. Spørgsmålet er oprettet i en .net kategori og som sådan må det forståes at omhandle msil kode og ikke som ib-rene-cairo svarer native kode. Jeg har bestemt ikke noget imod at folk giver deres bedste bud, heller ikke hvis det er forkert, men jeg er imod at folk så hurtigt svarer skråsikkert at noget ikke kan lade sig gøre.
Har svært ved at se at mit svar bliver mere eller mindre rigtigt af at jeg havde ventet 8 timer med at svare. Jeg svare altid efter bedste evne. Jeg er ikke herre over at spørgeren vælger at acceptere mit svar så hurtigt.
Jeg mener ikke du har ret, og man vil få svært ved at få et resultat "så man kan få sig et ordenligt indblik i kildekoden".
men mon ikke at vi kom frem til at sourcekoden altså FØLGER med asp.net forumet... så hvis du ikke kan finde den, så har du downloadet den forkerte fil... der er (vistnok) nemlig to forskellige filer man kan hente...
ib-rene-cairo>> Jeg er ked af at du opfatter min kritik så voldsomt. Den er ikke målrettet dig som person, men den tendens der er til at svar afgivet "efter bedste evne" ofte bliver præsenteret som den eneste sandhed. Jeg er fuldstændig ligeglad med pointene, for min skyld må du få en milliard-million point, eksperten er for mig udelukkende et forum til vidensdeling.
Man kunne også vælge at antage, at vi prøver at hjælpe hinanden så godt vi kan og at vi alle kan tage fejl. z42cool det er noget skrækkeligt vrøvl at du brokker dig over over, at der ikke er lavet omfattende research på 10 minutter. 10 minutter er tilstrækkelig lang tid til, at det ikke er bemærkning slynget ud for at komme først. Men det er for kort tid til at sætte sig grundigt ind i emnet hvis man ikke allerede kender det. Tolerance og en lidt pænere tone, tak. Og ros til ib-rene-cairo for den måde,han har taget det på!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.