Pregunta decompilador de Codigo

31/01/2008 - 15:09 por DarthSidious | Informe spam
buenos dias, he visto un post de hace unos dias donde se habla de decompilar
el codigo .net, de hecho consegui un programa y comprobe que se decompila
todo el codigo perfectamente.
Ahora mi pregunta es, si se usa un obfuscador para impedir esto, por lo que
estuve leyendo los obfuscadores agregan rutinas, saltos, bytes no usados,
etc, pero esto no contribuye a que baje la performance o rendimiento de un
codigo? o Sea, yo me rompo la cabeza tratando de hacer un codigo lo mas
reducido y optimizado posible, para despues obfuscarlo y que se desperdicie?
Es asi esto? La verdad que no sabia esto, y me ha dejado desconcertado, no
entiendo como Microsoft puede permitir algo asi.

gracias!!

Preguntas similare

Leer las respuestas

#1 RFOG
31/01/2008 - 15:35 | Informe spam
En Thu, 31 Jan 2008 15:09:01 +0100, DarthSidious
escribió:

buenos dias, he visto un post de hace unos dias donde se habla de
decompilar
el codigo .net, de hecho consegui un programa y comprobe que se decompila
todo el codigo perfectamente.
Ahora mi pregunta es, si se usa un obfuscador para impedir esto, por lo
que
estuve leyendo los obfuscadores agregan rutinas, saltos, bytes no usados,
etc, pero esto no contribuye a que baje la performance o rendimiento de
un
codigo? o Sea, yo me rompo la cabeza tratando de hacer un codigo lo mas
reducido y optimizado posible, para despues obfuscarlo y que se
desperdicie?
Es asi esto? La verdad que no sabia esto, y me ha dejado desconcertado,
no
entiendo como Microsoft puede permitir algo asi.

gracias!!



Depende de qué ofuscador ofuscará mejor o peor, aumentará o disminuirá el
rendimento, todo depende de qué añada y qué haga el jitter luego. Si el
compilador de C# fuera bueno optimizando (al mismo nivel que el C++/CLI)
la ingeniería inversa sería un poco -solo un poco- más difícil. Si el
ofuscador hace tareas de optimizador hasta incluso podría aumentar el
rendimiento significativamente.

Hagamos un experimento mental. Imagina que cuidas mucho tu código y luego
el ofuscador añade un 5% de lentitud (de 100 pasamos a 105). Ahora imagina
que no cuidas tu código y dicho código funciona un 5% más lento (ahora el
paso es de 105 a 110.25). Por lo tanto sigue valiendo la pena cuidar el
código.

Como decía mi tío Saltatrampas, no hay meriendas gratis, y todo cuesta.

Y en general, si alguien quiere meterle mano a tu programa, lo hará hagas
lo que hagas, así que no vale mucho la mena complicarse con esos temas. O
te puedes pasar a C++ (el nativo, no el C++/CLI), o a Pascal...
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
La señal de que no amamos a alguien es que no le damos todo lo mejor que
hay en nosotros.
Respuesta Responder a este mensaje
#2 DarthSidious
31/01/2008 - 17:33 | Informe spam
gracias, fue una gran desilucion comprobar esto, sobre todo porque al probar
vi que recupera el codigo 100% original, tal como si abriera el archivo .cs o
.vb
No pretendo que el codigo sea irrecuperable porque eso es irreal, se que,
como decis vos si alguien quiere meter mano, lo va a hacer, pero por lo menos
que no la tenga tan facil.

no se para que me mate tanto en la universidad aprendiendo a programar bien,
si despues las cosas terminan haciendose bien truchas y ni siquiera por culpa
de uno mismo.
Microsoft es de cuarta.

gracias!!



"RFOG" wrote:

En Thu, 31 Jan 2008 15:09:01 +0100, DarthSidious
escribió:

> buenos dias, he visto un post de hace unos dias donde se habla de
> decompilar
> el codigo .net, de hecho consegui un programa y comprobe que se decompila
> todo el codigo perfectamente.
> Ahora mi pregunta es, si se usa un obfuscador para impedir esto, por lo
> que
> estuve leyendo los obfuscadores agregan rutinas, saltos, bytes no usados,
> etc, pero esto no contribuye a que baje la performance o rendimiento de
> un
> codigo? o Sea, yo me rompo la cabeza tratando de hacer un codigo lo mas
> reducido y optimizado posible, para despues obfuscarlo y que se
> desperdicie?
> Es asi esto? La verdad que no sabia esto, y me ha dejado desconcertado,
> no
> entiendo como Microsoft puede permitir algo asi.
>
> gracias!!

Depende de qué ofuscador ofuscará mejor o peor, aumentará o disminuirá el
rendimento, todo depende de qué añada y qué haga el jitter luego. Si el
compilador de C# fuera bueno optimizando (al mismo nivel que el C++/CLI)
la ingeniería inversa sería un poco -solo un poco- más difícil. Si el
ofuscador hace tareas de optimizador hasta incluso podría aumentar el
rendimiento significativamente.

Hagamos un experimento mental. Imagina que cuidas mucho tu código y luego
el ofuscador añade un 5% de lentitud (de 100 pasamos a 105). Ahora imagina
que no cuidas tu código y dicho código funciona un 5% más lento (ahora el
paso es de 105 a 110.25). Por lo tanto sigue valiendo la pena cuidar el
código.

Como decía mi tío Saltatrampas, no hay meriendas gratis, y todo cuesta.

Y en general, si alguien quiere meterle mano a tu programa, lo hará hagas
lo que hagas, así que no vale mucho la mena complicarse con esos temas. O
te puedes pasar a C++ (el nativo, no el C++/CLI), o a Pascal...
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
> La señal de que no amamos a alguien es que no le damos todo lo mejor que
hay en nosotros.

Respuesta Responder a este mensaje
#3 RFOG
31/01/2008 - 18:02 | Informe spam
Hombre, no es por defender a MS, pero ten en cuenta que con Java es igual
(o al menos eso tengo entendido).

De todos modos se trata de una pifia bastante gorda. Por ponerte un
ejemplo, VB5 o Clipper (con la salvedad del avance tecnológico), también
usan PCODE (es decir el ejecutable tiene un pseudoensamblador que un
runtime ha de interpertar) y fueron prácticamente in-inversibles...

En Thu, 31 Jan 2008 17:33:02 +0100, DarthSidious
escribió:

gracias, fue una gran desilucion comprobar esto, sobre todo porque al
probar
vi que recupera el codigo 100% original, tal como si abriera el archivo
.cs o
.vb
No pretendo que el codigo sea irrecuperable porque eso es irreal, se que,
como decis vos si alguien quiere meter mano, lo va a hacer, pero por lo
menos
que no la tenga tan facil.

no se para que me mate tanto en la universidad aprendiendo a programar
bien,
si despues las cosas terminan haciendose bien truchas y ni siquiera por
culpa
de uno mismo.
Microsoft es de cuarta.

gracias!!



"RFOG" wrote:

En Thu, 31 Jan 2008 15:09:01 +0100, DarthSidious
escribió:

> buenos dias, he visto un post de hace unos dias donde se habla de
> decompilar
> el codigo .net, de hecho consegui un programa y comprobe que se
decompila
> todo el codigo perfectamente.
> Ahora mi pregunta es, si se usa un obfuscador para impedir esto, por
lo
> que
> estuve leyendo los obfuscadores agregan rutinas, saltos, bytes no
usados,
> etc, pero esto no contribuye a que baje la performance o rendimiento
de
> un
> codigo? o Sea, yo me rompo la cabeza tratando de hacer un codigo lo
mas
> reducido y optimizado posible, para despues obfuscarlo y que se
> desperdicie?
> Es asi esto? La verdad que no sabia esto, y me ha dejado
desconcertado,
> no
> entiendo como Microsoft puede permitir algo asi.
>
> gracias!!

Depende de qué ofuscador ofuscará mejor o peor, aumentará o disminuirá
el
rendimento, todo depende de qué añada y qué haga el jitter luego. Si el
compilador de C# fuera bueno optimizando (al mismo nivel que el C++/CLI)
la ingeniería inversa sería un poco -solo un poco- más difícil. Si el
ofuscador hace tareas de optimizador hasta incluso podría aumentar el
rendimiento significativamente.

Hagamos un experimento mental. Imagina que cuidas mucho tu código y
luego
el ofuscador añade un 5% de lentitud (de 100 pasamos a 105). Ahora
imagina
que no cuidas tu código y dicho código funciona un 5% más lento (ahora
el
paso es de 105 a 110.25). Por lo tanto sigue valiendo la pena cuidar el
código.

Como decía mi tío Saltatrampas, no hay meriendas gratis, y todo cuesta.

Y en general, si alguien quiere meterle mano a tu programa, lo hará
hagas
lo que hagas, así que no vale mucho la mena complicarse con esos temas.
O
te puedes pasar a C++ (el nativo, no el C++/CLI), o a Pascal...
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
>> La señal de que no amamos a alguien es que no le damos todo lo mejor que
hay en nosotros.








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
Amo a la Humanidad, lo que me revienta es la gente.
Mafalda.
Respuesta Responder a este mensaje
#4 xcal
31/01/2008 - 23:38 | Informe spam
no tengo experiencia en esto asi que facil me equivoco, me parece hay dos
lados en esta cuestion, el primero es usar las mejores tecnicas
de ofuscamiento, usar el mayor numero de posibilidades de ofuscar, etc, y
luego
ver lo de optimizar el funcionamiento del codigo resultante. Me parece que
lo primero es mandatorio y lo segundo, hay que dejarselo
a que cada dia las memorias y los procesadores estan mas rapidos, es decir,
esto ultimo ayudara muchisimo, me parece al ocultamiento de codigo,
y por ello, aun los fabricantes de memorias y procesadores venderian mas
por mucho mas tiempo. Mientras, habria que ser pacientes, si las
aplicaciones bien ofuscadas no sean tan rapidas, pero si eso ayuda al
fabricante, enhorabuena!,
sin embargo, al fin y al cabo, implementar seguridad tambien puede significa
demora en procesamiento, etc.

Ahora, eso de que el net o el java es descompilable, no se, a mi me parece,
y la opinion no es mia, que muchos tendrian el codigo de muchos otros, y
tambien me parece que no es asi, pero como dije, facil me equivoco.

Por ultimo, ligeramente creo recordar que las tecnicas de ocultamiento se
consideran algo como una ciencia nueva o una cosa de esas, osea nueva,
esperemos que el futuro nos de mejoras en esto muy significativas. En todo
caso, para net, que no se para java, se puede volver no se si siempre a
Win32,
me parece muy bueno.

saludos, Carlos.


"DarthSidious" wrote in message
news:
buenos dias, he visto un post de hace unos dias donde se habla de


decompilar
el codigo .net, de hecho consegui un programa y comprobe que se decompila
todo el codigo perfectamente.
Ahora mi pregunta es, si se usa un obfuscador para impedir esto, por lo


que
estuve leyendo los obfuscadores agregan rutinas, saltos, bytes no usados,
etc, pero esto no contribuye a que baje la performance o rendimiento de un
codigo? o Sea, yo me rompo la cabeza tratando de hacer un codigo lo mas
reducido y optimizado posible, para despues obfuscarlo y que se


desperdicie?
Es asi esto? La verdad que no sabia esto, y me ha dejado desconcertado, no
entiendo como Microsoft puede permitir algo asi.

gracias!!
Respuesta Responder a este mensaje
#5 Jesús López
01/02/2008 - 09:57 | Informe spam
No sé, pero ¿realmente es necesario impedir que descompilen tu código?. ¿Tan
secreto es?. Microsoft no ha hecho nada para ofuscar las librerías de la
.NET Framewok y le va muy bien. Incluso ha hecho público gran parte de su
código fuente.


"DarthSidious" escribió en el
mensaje news:
buenos dias, he visto un post de hace unos dias donde se habla de
decompilar
el codigo .net, de hecho consegui un programa y comprobe que se decompila
todo el codigo perfectamente.
Ahora mi pregunta es, si se usa un obfuscador para impedir esto, por lo
que
estuve leyendo los obfuscadores agregan rutinas, saltos, bytes no usados,
etc, pero esto no contribuye a que baje la performance o rendimiento de un
codigo? o Sea, yo me rompo la cabeza tratando de hacer un codigo lo mas
reducido y optimizado posible, para despues obfuscarlo y que se
desperdicie?
Es asi esto? La verdad que no sabia esto, y me ha dejado desconcertado, no
entiendo como Microsoft puede permitir algo asi.

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