• Domingo 22 de Diciembre de 2024, 17:22

Autor Tema:  .net ¿inseguro?: Descompilador De Programas .net  (Leído 6092 veces)

DarkSlash

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
.net ¿inseguro?: Descompilador De Programas .net
« en: Viernes 27 de Octubre de 2006, 19:34 »
0
Bueno encontré un comentario en awebdelprogramador.com que decía que .NET era inseguro puedo con Reflector (http://www.aisto.com/roeder/dotnet/) podías descompilarlo y bueno, obviamente, manipular el código.

Quería saber qué hay de cierto en eso y cuáles son las prácticas que deben  tomarse para evitarlo.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: .net ¿inseguro?: Descompilador De Programas .net
« Respuesta #1 en: Viernes 27 de Octubre de 2006, 20:58 »
0
Totalmente falso... en interpretacion.

al igual que cualquier otro lenguaje el codigo generado en CLR se puede descompilar, sino quieres que puedan hacer eso puedes usar el .net obfuscator para hacer tu codigo mas ilegible para un descompilador o bien cifrar el contenido de la dll como se suele hacer en  software a nivel profesional, para el caso de .net framework se incluyen herramientas para tal fin.

Para descompilar un ejecutable de CLR en codigo CIL el visual studio 2005 incluye una herramienta llamada ildasm ( il disassembler), y en la web se consiguen descompiladores de C# o vb.net etc entre otros.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Last Dragon

  • Miembro MUY activo
  • ***
  • Mensajes: 109
    • Ver Perfil
    • http://www.lastdragon.net
Re: .net ¿inseguro?: Descompilador De Programas .net
« Respuesta #2 en: Sábado 28 de Octubre de 2006, 20:53 »
0
Cita de: "JuanK"
Totalmente falso... en interpretacion.

al igual que cualquier otro lenguaje el codigo generado en CLR se puede descompilar, sino quieres que puedan hacer eso puedes usar el .net obfuscator para hacer tu codigo mas ilegible para un descompilador o bien cifrar el contenido de la dll como se suele hacer en  software a nivel profesional, para el caso de .net framework se incluyen herramientas para tal fin.

Para descompilar un ejecutable de CLR en codigo CIL el visual studio 2005 incluye una herramienta llamada ildasm ( il disassembler), y en la web se consiguen descompiladores de C# o vb.net etc entre otros.
Tanto asi como que falso no es, digo se descompila completamente el codigo MSIL, eso es definitivo, el ofuscador incluido en el VS2003 pues parece mas bien un demo del netofuscator y apenas y hace algo por ucultar los nombres de las variables mas sigue pudiendose ver todo el codigo util.

¿Que suguieres como ofuscador?, o alguna buena herramienta efectiva de encriptacion?


el reflector es tan cañon que te descompila el Msil al lenguaje que quieras digo si alguien no gusta de C# lo puede entregar como Visual Basic o por que no hasta C y Delphi
Servidor Personal de Last Dragon



www.lastdragon.net

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: .net ¿inseguro?: Descompilador De Programas .net
« Respuesta #3 en: Sábado 28 de Octubre de 2006, 21:29 »
0
Citar
el reflector es tan cañon que te descompila el Msil al lenguaje que quieras digo si alguien no gusta de C# lo puede entregar como Visual Basic o por que no hasta C y Delphi

NO, nunca, unicamente puedes descompilar codigo CIL en lenguajes que puedan generar CIL por ejemplo C# o VB.NET, pero C o delphi??? NO  tal vez C++.net o delphi.net o a alguna implementación de C++ o de delphi que genere código CLR.

Tal como hay muchos otros des compiladores que te des compilan un ejecutable comun y corriente a c++, pascal etc .

Eso no tiene nada de inseguro, es lo mas normal y relativamente fácil de hacer con cualquier ejecutable generado .

Los ofuscadores son muy utilices pues el solo hecho de alterar los nombres de las variables ya hace mucho mas dificil poder modificar el código y nunca sobra.

No es lo mismo encontrar un array con el nombre:

listaTelefonosEmp

que uno con el nombre

b_007kxR78_­ñ

Respecto al cifrado técnicas e implementaciones de terceros deben de haber muchas no solo para ensamblados CLR sino para cualquier otro, pero para el caso particular del CLR de .net  se incluye la opción de cifrar el ensamblado creado al compilar para lo cual se genera una 'strong name key', dicha llave se genera con un emisor de llaves que viene incluido con las utilidades del framework, una vez generada la llave se asigna al ensamblado y se compila un ensamblado strong named el cual solo es legible para quien posea la llave con la cual se genero y desde luego el password asociado.

EL Reflector no es algo tan 'cañón' como tu dices porque ya tiene el 70% del trabajo hecho gracias a los componentes que incluye el namespace

System.Reflection
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io