Como proteger código?

25/01/2008 - 17:05 por Kapsule | Informe spam
Hola a todos.

Hace 2 años que estoy programando bajo C# y hace un par de semanas me he
enterado que cualquier EXE desarrollado con C# se puede descompilar. Al
enterarme del tema busque información y encontré herramientas para ofuscar el
código. Después de probar varias aplicaciones como Xenocode o dotfuscator he
podido observar que aun ofuscando el código se puede llegar a entender
algunos bloques de código. ¿Esto siempre es así en .NET? Si realmente es así
la verdad que es una PUTADA.

Alguien me puede aconsejar.

Gracias.

Preguntas similare

Leer las respuestas

#1 RFOG
25/01/2008 - 17:21 | Informe spam
Hola.

Es así y punto. Hasta donde yo conozco no existe solución válida, ya
que el mejor ofuscador va a ser peor que casi el peor pirata... Pero
hazte a la idea de que en general es así, aunque con otros lenguajes es
imposible a fecha de hoy obtener el código fuente (léase C y C++ nativo
y poco más), siempre hay quien es capaz de pincharlo...

Lo cierto es que con C++/CLI es un poco más difícil la ingeniería
inversa, pero solo un poco, dado que optimiza más que el C# y en
general se come el código muerto que el C# no hace... pero entonces el
pirata deshará un código incluso mejor que el tuyo...


After serious thinking Kapsule wrote :
Hola a todos.

Hace 2 años que estoy programando bajo C# y hace un par de semanas me he
enterado que cualquier EXE desarrollado con C# se puede descompilar. Al
enterarme del tema busque información y encontré herramientas para ofuscar el
código. Después de probar varias aplicaciones como Xenocode o dotfuscator he
podido observar que aun ofuscando el código se puede llegar a entender
algunos bloques de código. ¿Esto siempre es así en .NET? Si realmente es así
la verdad que es una PUTADA.

Alguien me puede aconsejar.

Gracias.



Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Mi blog sobre literatura: http://rfog.blogsome.com
Libros, ciencia ficción y programación

Son distintas la aguas que cubren a los que entran al mismo río.
Respuesta Responder a este mensaje
#2 Pedro Luna Montalvo
25/01/2008 - 17:30 | Informe spam
Saludos,

La ofuscación de ejecutables no es algo nuevo. Si buscas, productos de este
tipo llevan muchísimos años desarrollando estos productos para las
aplicaciones JAVA, que por cierto, JAVA tiene el mismo esquema de lenguaje
intermedio que puede ser reversible.

Para código sensible, los ofuscadores tienen muchas técnicas que dificultan
el entendimiento humano de un ejecutable, que van más allá de la alteración
de los nombres de los tipos y sus miembros:

* Inyección de código no ejecutado "basura", con invocaciones fantasmas a
fin de confundir el flujo del programa.
* Alteración del flujo normal del programa, que por ejemplo, te convierten
un simple ciclo FOR, en varios condicionales con saltos a varios sectores
del método; inyectando bloques adicionales que no llegan a ejecutarse.
* Cifrado de cadena de caracteres
* Inyección de "bytes" específicos en el ensamblado que no afecta a la
ejecución del mismo, pero que hace "caer" a los desemsambladores

Etc.

Esto de la mano con una "programación orientada a la ofuscación",
beneficiará el resultado y la protección intelectual de un programa.

Vale indicar además, que existen otros programas, que convierten el
ensamblado .NET en un ejecutable Win32 normal sin dependencias del .NEt
Framework.


Saludos,


"Kapsule" escribió en el mensaje de
noticias:
Hola a todos.

Hace 2 años que estoy programando bajo C# y hace un par de semanas me he
enterado que cualquier EXE desarrollado con C# se puede descompilar. Al
enterarme del tema busque información y encontré herramientas para ofuscar
el
código. Después de probar varias aplicaciones como Xenocode o dotfuscator
he
podido observar que aun ofuscando el código se puede llegar a entender
algunos bloques de código. ¿Esto siempre es así en .NET? Si realmente es
así
la verdad que es una PUTADA.

Alguien me puede aconsejar.

Gracias.


Respuesta Responder a este mensaje
#3 Kapsule
25/01/2008 - 17:43 | Informe spam
Si no he entendido mal has comentado que un EXE de .Net lo puedo convertir a
Win32? Como?

"Pedro Luna Montalvo" wrote:

Saludos,

La ofuscacin de ejecutables no es algo nuevo. Si buscas, productos de este
tipo llevan muchsimos aos desarrollando estos productos para las
aplicaciones JAVA, que por cierto, JAVA tiene el mismo esquema de lenguaje
intermedio que puede ser reversible.

Para cdigo sensible, los ofuscadores tienen muchas tcnicas que dificultan
el entendimiento humano de un ejecutable, que van ms all de la alteracin
de los nombres de los tipos y sus miembros:

* Inyeccin de cdigo no ejecutado "basura", con invocaciones fantasmas a
fin de confundir el flujo del programa.
* Alteracin del flujo normal del programa, que por ejemplo, te convierten
un simple ciclo FOR, en varios condicionales con saltos a varios sectores
del mtodo; inyectando bloques adicionales que no llegan a ejecutarse.
* Cifrado de cadena de caracteres
* Inyeccin de "bytes" especficos en el ensamblado que no afecta a la
ejecucin del mismo, pero que hace "caer" a los desemsambladores

Etc.

Esto de la mano con una "programacin orientada a la ofuscacin",
beneficiar el resultado y la proteccin intelectual de un programa.

Vale indicar adems, que existen otros programas, que convierten el
ensamblado .NET en un ejecutable Win32 normal sin dependencias del .NEt
Framework.


Saludos,


"Kapsule" escribi en el mensaje de
noticias:
> Hola a todos.
>
> Hace 2 aos que estoy programando bajo C# y hace un par de semanas me he
> enterado que cualquier EXE desarrollado con C# se puede descompilar. Al
> enterarme del tema busque informacin y encontr herramientas para ofuscar
> el
> cdigo. Despus de probar varias aplicaciones como Xenocode o dotfuscator
> he
> podido observar que aun ofuscando el cdigo se puede llegar a entender
> algunos bloques de cdigo. Esto siempre es as en .NET? Si realmente es
> as
> la verdad que es una PUTADA.
>
> Alguien me puede aconsejar.
>
> Gracias.
>
>

Respuesta Responder a este mensaje
#4 Pedro Luna Montalvo
25/01/2008 - 17:55 | Informe spam
No quería hacer publicidad, pero no me das otra. :)

Haz una búsuqeda por "Salamander .NET Native Compiler".

Saludos,


"Kapsule" escribió en el mensaje de
noticias:
Si no he entendido mal has comentado que un EXE de .Net lo puedo convertir
a
Win32? Como?

"Pedro Luna Montalvo" wrote:

Saludos,

La ofuscacin de ejecutables no es algo nuevo. Si buscas, productos de
este
tipo llevan muchsimos aos desarrollando estos productos para las
aplicaciones JAVA, que por cierto, JAVA tiene el mismo esquema de
lenguaje
intermedio que puede ser reversible.

Para cdigo sensible, los ofuscadores tienen muchas tcnicas que dificultan
el entendimiento humano de un ejecutable, que van ms all de la alteracin
de los nombres de los tipos y sus miembros:

* Inyeccin de cdigo no ejecutado "basura", con invocaciones fantasmas a
fin de confundir el flujo del programa.
* Alteracin del flujo normal del programa, que por ejemplo, te convierten
un simple ciclo FOR, en varios condicionales con saltos a varios sectores
del mtodo; inyectando bloques adicionales que no llegan a ejecutarse.
* Cifrado de cadena de caracteres
* Inyeccin de "bytes" especficos en el ensamblado que no afecta a la
ejecucin del mismo, pero que hace "caer" a los desemsambladores

Etc.

Esto de la mano con una "programacin orientada a la ofuscacin",
beneficiar el resultado y la proteccin intelectual de un programa.

Vale indicar adems, que existen otros programas, que convierten el
ensamblado .NET en un ejecutable Win32 normal sin dependencias del .NEt
Framework.


Saludos,


"Kapsule" escribi en el mensaje de
noticias:
> Hola a todos.
>
> Hace 2 aos que estoy programando bajo C# y hace un par de semanas me he
> enterado que cualquier EXE desarrollado con C# se puede descompilar. Al
> enterarme del tema busque informacin y encontr herramientas para
> ofuscar
> el
> cdigo. Despus de probar varias aplicaciones como Xenocode o dotfuscator
> he
> podido observar que aun ofuscando el cdigo se puede llegar a entender
> algunos bloques de cdigo. Esto siempre es as en .NET? Si realmente es
> as
> la verdad que es una PUTADA.
>
> Alguien me puede aconsejar.
>
> Gracias.
>
>

Respuesta Responder a este mensaje
#5 Pedro Luna Montalvo
25/01/2008 - 17:57 | Informe spam
Por cierto, olvidaba indicarte que yo nunca he usado ese producto, pero he
tenido algunas referencias favorables del mismo.

saludos,

"Kapsule" escribió en el mensaje de
noticias:
Si no he entendido mal has comentado que un EXE de .Net lo puedo convertir
a
Win32? Como?

"Pedro Luna Montalvo" wrote:

Saludos,

La ofuscacin de ejecutables no es algo nuevo. Si buscas, productos de
este
tipo llevan muchsimos aos desarrollando estos productos para las
aplicaciones JAVA, que por cierto, JAVA tiene el mismo esquema de
lenguaje
intermedio que puede ser reversible.

Para cdigo sensible, los ofuscadores tienen muchas tcnicas que dificultan
el entendimiento humano de un ejecutable, que van ms all de la alteracin
de los nombres de los tipos y sus miembros:

* Inyeccin de cdigo no ejecutado "basura", con invocaciones fantasmas a
fin de confundir el flujo del programa.
* Alteracin del flujo normal del programa, que por ejemplo, te convierten
un simple ciclo FOR, en varios condicionales con saltos a varios sectores
del mtodo; inyectando bloques adicionales que no llegan a ejecutarse.
* Cifrado de cadena de caracteres
* Inyeccin de "bytes" especficos en el ensamblado que no afecta a la
ejecucin del mismo, pero que hace "caer" a los desemsambladores

Etc.

Esto de la mano con una "programacin orientada a la ofuscacin",
beneficiar el resultado y la proteccin intelectual de un programa.

Vale indicar adems, que existen otros programas, que convierten el
ensamblado .NET en un ejecutable Win32 normal sin dependencias del .NEt
Framework.


Saludos,


"Kapsule" escribi en el mensaje de
noticias:
> Hola a todos.
>
> Hace 2 aos que estoy programando bajo C# y hace un par de semanas me he
> enterado que cualquier EXE desarrollado con C# se puede descompilar. Al
> enterarme del tema busque informacin y encontr herramientas para
> ofuscar
> el
> cdigo. Despus de probar varias aplicaciones como Xenocode o dotfuscator
> he
> podido observar que aun ofuscando el cdigo se puede llegar a entender
> algunos bloques de cdigo. Esto siempre es as en .NET? Si realmente es
> as
> la verdad que es una PUTADA.
>
> Alguien me puede aconsejar.
>
> Gracias.
>
>

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida