Pitanje:
Postoji li način za dekompiliranje .NET sklopa ili programa?
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

Postoje li dostupni alati za preuzimanje već kompajlirane .dll ili .exe datoteke za koju znate da je sastavljena iz C # ili Visual Basic-a i od nje dobiti izvorni izvorni kod?

ILSpy je vjerojatno najbolji izbor (IMHO)
Budući da je dekompliciranje .neta vrlo jednostavno, većina .net koda je zaštićena ili zamućena. Dakle, da biste koristili bilo koji od alata predloženih u odgovoru, prvo morate ukloniti ovu zaštitu (ako postoji).
Sedam odgovori:
#1
+49
Mick
2013-03-20 21:24:06 UTC
view on stackexchange narkive permalink

ILSpy izvrstan je dekompajler otvorenog koda.

Značajke ILSpy-a

  • Pregledavanje sklopa
  • Rastavljanje IL-a
  • Podrška C # 5.0 "async"
  • Dekompilacija do C #
  • Podržava lambdas i 'prinos prinosa'
  • Prikazuje XML dokumentaciju
  • Dekompilacija u VB
  • Ušteda resursa
  • Spremite dekompilirani sklop kao .csproj
  • Potražite vrste / metode / svojstva (podniz)
  • Tip / metoda / svojstvo / svojstvo temeljeno na hipervezi
  • Navigacija osnovnim / izvedenim tipovima
  • Povijest navigacije
  • Dekompilator BAML u XAML
  • Spremi skupštinu kao projekt C #
  • Pronađi upotrebu polja / metode
  • Proširivo putem dodataka (MEF)
  • Popisi okupljanja
Kombinirajte ga s ovim korisnim dodatkom za Visual Studio [SourceFly] (http://public.carr-designs.com/releases/SourceFlySetup.msi) kako biste ILSpy mogli otvoriti iz Visual Studija. Iako ne podržava Visual Studio 2012 u svom najnovijem izdanju.
#2
+23
Glides
2013-03-21 03:38:55 UTC
view on stackexchange narkive permalink

Već sam s uspjehom koristio JetBrains dotPeek (besplatno).

Bilo koji JetBrains softver koji sam ikad koristio bio je vrlo solidan.

Nije sasvim "izvorni izvor", ali je vrlo čitljiv C # - o najbližoj stvari koju bih očekivao dobiti. Citat s njihove web stranice:

Što je cool u vezi s dotPeek?

  1. Dekompajliranje .NET 1.0-4.5 sklopova na C #
  2. Podrška za. dll , .exe , .zip , .vsix , .nupkg i .winmd datoteke
  3. Brzi prijelaz na vrstu, sklop, simbol ili člana tipa
  4. Jednostavna navigacija do deklaracija simbola, implementacija, izvedenih i osnovnih simbola i više
  5. Precizno traženje upotrebe simbola uz naprednu prezentaciju rezultata pretraživanja
  6. Pregled lanaca nasljeđivanja
  7. Podrška za preuzimanje koda s izvornih poslužitelja
  8. Isticanje sintakse
  9. Potpuna podrška za tipkovnicu
  10. dotPeek je besplatna!

Posljednja točka je besplatna kao u besplatnom pivu, ne kao u slobodi govora.

#3
+11
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

Dostupan je besplatan alat pod nazivom JustDecompile koji to čini.

Neke značajke:

  • Stvaranje projekta Visual Studio iz sklopa radi izvoza izgubljenih projekata ili dobivanja više klasa bez potrebe za kopiranjem i lijepljenjem koda. Trenutno je JustDecompile u stanju izvesti dekompilirani kôd samo na C #.
  • Izvoz koda izravno iz naredbenog retka
  • Brzo učitavanje temeljnih .NET sklopova (.NET 2, .NET3.5 , .NET 4, .NET 4.5, WinRT metapodaci i Silverlight)
  • Izravno uređivanje sklopova učitanih u program
JustDecompile ima dodatak De4Dot Deobfuscator koji će pomoći u zamućenom exeu
#4
+11
Kalibr
2015-12-04 05:36:35 UTC
view on stackexchange narkive permalink

Nedavno koristim dnSpy [koji su mu tvorci de4dot-a forkirali ILSpy] kao glavni alat za dekompiliranje i ispravljanje pogrešaka .NET koda.

https://github.com/0xd4d/dnSpy


Glavna razlika od ILSpy-a:

  • Koristi dnLib za čitanje sklopova ( vs Mono.Cecil ILSpy-a)

https://github.com/0xd4d/dnlib

dnlib je stvoren jer je de4dot trebala robusna .NET knjižnica sklopa koja bi mogla obrađivati ​​sve vrste zamagljenih sklopova. de4dot je ranije koristio Mono.Cecil, ali budući da Mono.Cecil ne može rukovati zamućenim sklopovima, ne podržava u potpunosti mješovite sklopove, ne čita .NET sklopove na isti način kao što to čini CLR i mnoge druge nedostajuće značajke potrebne za de4dot, dnlib bila potreba. API je sličan jer je puno olakšao prijenos de4dot na dnlib.

Po čemu se razlikuje od / boljeg od ILSpy-a?
Ovo je moj prvi odgovor, je li povezivanje s vanjskom raspravom prikladno? : https://www.reddit.com/r/ReverseEngineering/comments/3jau4m/dnspy_a_net_assembly_editor_decompiler_and/ ... Također ću rezimirati gore.
Mogu jamčiti za dnSpy, mislim da je bolji od bilo kojeg drugog sličnog .NET alata. Može čak otkloniti i pogreške u procesu.
Ovo stvarno mogu preporučiti. To je jedini besplatni alat koji sam pronašao i koji podržava ispravljanje pogrešaka u montaži.
Koristite ga s [ovim proširenjem Visual Studija] (https://marketplace.visualstudio.com/search?term=dnspy&target=VS).
#5
+9
QAZ
2013-03-20 21:25:27 UTC
view on stackexchange narkive permalink

Koristio sam .NET Reflector (Napomena: komercijalno, ali dostupno je probno razdoblje) nekoliko puta i vrlo mi se sviđa:

http://www.red-gate.com/products/dotnet -razvoj / reflektor /

Neki primjeri slučajeva korištenja bili bi dobar dodatak ovom odgovoru. Trenutno je previše neodređeno da bi moglo biti od velike koristi osim nuđenja alata i njegove web stranice. Davanje nekoliko primjera stvarne upotrebe pomaže u malo boljem definiranju proizvoda.
#6
+3
TomSmartBishop
2015-12-03 14:11:38 UTC
view on stackexchange narkive permalink

Ako ste zainteresirani za dekompilator na razini API-ja: https://code.google.com/p/facile-api/ (doduše na Javi)

Da! Tražio sam Java knjižnicu! Hvala :)
Javite mi što radite ;-) Živjeli
Očekujem da u ovu aplikaciju Disassembler dodam značajku ".NET support" (https://github.com/KYHSGeekCode/Android-Disassembler). :)
Lijepo, javite mi kako to funkcionira.
#7
+1
tyh
2015-03-23 03:27:01 UTC
view on stackexchange narkive permalink

Odgovorio bih na to da je ILSPY zaista sjajan.net-dekompilator. Također, najavite de4dot za uklanjanje zamućenja. Ovo je super opis na djelu. http://blogs.cisco.com/security/talos/reversing-multilayer-net-malware

Sastavljeni visual visual može biti drugačija i bolna životinja. http://vrt-blog.snort.org/2014/08/discovering-dynamically-loaded-api-in.html?m=1

Kako je kompajlirani Visual Basic (6) povezan s .NET-om?
Izvorno pitanje postavljeno i za Visual Basic.


Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...