2011-09-12 54 views
21

Necesito cambiar el código de la DLL .NET. Puedo ver el código compilando la DLL con .NET reflector, pero no puedo cambiar el código de la DLL. Con .NET Reflector, descompilo el código y lo guardo en mi disco duro, pero cuando puedo recompilar el código, da errores.dotnet dll descompila y cambia el código

Pocos códigos se descompilan en formato binario, pocos códigos se descompilan con C#. ¿Hay alguna herramienta para cambiar y recompilar la DLL?

Estas son las herramientas que he utilizado para intentar descompilar el archivo DLL:

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

Por desgracia, ninguna de las herramientas que dan el código fuente perfecta para volver a compilar el código DLL.

+0

¿Qué errores está obteniendo? –

+0

Por lo que sé, hay formas más fáciles de obtener el código fuente de las bibliotecas de punto neto. Vea este artículo de Scott Gu: http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx –

+0

¿Está intentando? para obtener el código fuente de los ensamblados .Net Framework, o algún otro .Net dll? – Polyfun

Respuesta

8

He tenido un éxito limitado en la recompilación de archivos DLL. Una mejor forma de hacerlo es usar Reflector y el complemento Reflexil. Necesita tener un conocimiento un poco mejor del código IL que compone los ensamblados .NET pero Reflexil hace un gran trabajo al describir los códigos OP. Tengo un pequeño paseo a través de mi blog sobre cómo solía modificar el cmdlet Ayuda Editor PowerShell: http://csharpening.net/?p=348

9

El siguiente código está trabajando:

"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 

lo tanto, si el cambio de código es que sea pequeño, es posible haciendo los cambios en el código ensamblador directamente. Uno puede compilar y desmontar métodos simples para ver cómo debería ser el código ensamblador. Poner métodos adicionales dentro del archivo de ensamblaje no debería ser demasiado difícil también.

Por supuesto, los análisis de código se deben hacer usando herramientas similares a ilspy, mostrando el código fuente en lugar del código de ensamblaje.

Las herramientas empleadas aquí vienen de Windows SDK (ildasm) y de .net framework (ilasm).

Cuestiones relacionadas