2011-09-12 21 views
21

Ho bisogno di cambiare il codice della DLL .NET. Sono in grado di vedere il codice compilando la DLL con reflector .NET, ma non sono in grado di modificare il codice della DLL. Con .NET Reflector, decompilare il codice e salvarlo sul mio disco rigido, ma quando sono in grado di ricompilare il codice, il suo dare errori.dotnet dll decompilare e modificare il codice

Pochi codici vengono decompilati in formato binario. Alcuni codici vengono decompilati con C#. C'è qualche strumento per cambiare e ricompilare la DLL?

Qui ci sono gli strumenti che ho usato per cercare di decompilare il DLL:

  • ILSpy
  • DisSharp
  • Reflector7.1 Con il plugin Reflexil
  • Spices.Net.Suite.5.8
  • Distribuisci .NET 1.0.0
  • devextras.codereflect
  • dotPeek-1.0.0. 2545
  • IntelliLock
  • JustDecompile_BETA_2011.1.728.1

Purtroppo, nessuno degli strumenti che danno il codice sorgente perfetta per ricompilare il codice DLL.

+0

quali errori si ottengono? –

+0

Per quanto ne so, ci sono modi più semplici per ottenere il codice sorgente delle librerie framework dot net. Vedi questo articolo di Scott Gu: http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx –

+0

Stai provando ottenere il codice sorgente degli assembly di .Net Framework o qualche altra .Net dll? – Polyfun

risposta

8

Ho avuto un successo limitato nella ricompilazione delle DLL. Un modo migliore per farlo è usare Reflector e il plugin Reflexil. È necessario avere una conoscenza un po 'migliore del codice IL che costituisce gli assembly .NET, ma Reflexil fa un ottimo lavoro nel descrivere i codici OP. Ho un po 'a piedi attraverso il mio blog su come ho usato per modificare il PowerShell Cmdlet Aiuto Editor: http://csharpening.net/?p=348

9

Il seguente codice funziona:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe" original.dll /out=code.asm 
echo Here changes to code.asm should be done. 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe /dll code.asm 

Quindi, se il cambiamento di codice è di essere piccolo, è fattibile facendo direttamente le modifiche nel codice assembly. Si possono compilare e disassemblare semplici metodi per vedere come dovrebbe apparire il codice assembly. Mettere metodi aggiuntivi all'interno del file di assemblaggio non dovrebbe essere troppo difficile.

Ovviamente l'analisi del codice dovrebbe essere eseguita utilizzando strumenti simili a ilspy, visualizzando il codice sorgente piuttosto che il codice assembly.

Gli strumenti utilizzati qui provengono da Windows SDK (ildasm) e da .net framework (ilasm).

Problemi correlati