Me decompilan mis programas

Iniciado por boy-ka, 16 Julio 2015, 02:53 AM

0 Miembros y 1 Visitante están viendo este tema.

boy-ka

Hola amigos, joder yo ya sabia que se podian decompilar programas creados en .NET y en otros lenguajes lo que me molesta es que he ofuscado un programa con NET reactor licencia de pago y con otros ofuscadores, y lo desofuscan y luego lo decompilan, ya se que algunos me dirán:

"Hagas lo que hagas siempre podrán decompilarlo si el atacante tiene mucha habilidad".

Claro que sí!, ya lo se pero mi pregunta es, si pueden decompilar un programa creado en C++?

Porque si no pueden, me cambio desde ahora mismo a C++ y me olvido de C# y de VB ya que me decompilan el programa aunque esté ofuscado, cambian algunas cosas y luego dicen que es su programa, en fin esto no lo sabia hasta ahora, asi que me gustaria saber si C++ no se puede decompilar o al menos no tan facil.

33boy33

no soy ningun experto en el tema para ser honesto asi que mire por internet para confirmar lo que pensaba y parece y creo que estoy en lo cierto, es muy muy complicado, si es que es posible, decompilar un programa en c++, si no estoy en un error el cmopilador lo traduce a assembler directamente, como mucho con un debugger puedes entender parte del funcionamiento e incluso modificiar este pero no llegar al codigo inicial.

engel lex

#2
en todo lenguaje el programa puede descompilarse (por "descompilarse" entendamos "ver el codigo maquina") ... lo que creo que te refieres es obtener el código fuente...

con c++ (no si si el de visual estudio aplica) no se puede tener el código fuente de vuelta, esto es porque los compiladores hacen un trabajo eficiente e "inteligente" donde códigos similares no tendrán código maquina iguales, y códigos diferentes pueden tener un código maquina similar, siempre en pro de buscar que el programa sea de máxima eficiencia, eso hace casi imposible obtener el código fuente de vuelra
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

no se obtendrá el código fuente, pero no quiere decir que no se pueda modficar! cualquiera con conocimientos mínimos podría cambiar las strings, recursos, etc. Depende del programador complicar el programa para que no sea tan fácil para cualquiera, y es independiente del lenguaje en si.

boy-ka

Cita de: engel lex en 16 Julio 2015, 05:38 AM
en todo lenguaje el programa puede descompilarse (por "descompilarse" entendamos "ver el codigo maquina") ... lo que creo que te refieres es obtener el código fuente...

Vale, yo pensé que ver el codigo maquina se le llamaba desensamblar, y que, decompilar, era ver el código fuente.

engel lex

Cita de: boy-ka en 16 Julio 2015, 10:47 AM
Vale, yo pensé que ver el codigo maquina se le llamaba desensamblar, y que, decompilar, era ver el código fuente.

si, en parte es eso, pero en general es llevarlo a un lenguaje "humano"... pero creo que en el contexto correcto, si aplica como indicas  :P

la cosa es que en ese contexto, c++ simplemente no se puede descompilar... como mucho se pueden tener secciones menores de código... pero nada útil o detallado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

user-marcos

Personalmente he decompilado varios programas y te puedo decir que es muy muy complicado y sólo se accede al código máquina, bajo mi punto de vista lo máximo que consigues es ver el flujo del programa, pero de hay ha conseguir el código fuente hay un mundo, te de hablo c++.

boy-ka

Muchisimas gracias a todos, ya mismo me dedico a programar en C++ obviamente es un poco complicado al principio pero que le vamos a hacer, solo necesito que no vean el código fuente de mi programa, y si por ello tengo que aprender un nuevo lenguaje me parece bien!, gracias a todos muy amable por las explicaciones y tal :D, saludos.

Orubatosu

Una pregunta un poco "tonta"

Entiendo que un programa escrito en VB se puede "sacar" ya que es interpretado, pero no me acaba de cuadrar que se pueda "descompilar" un programa escrito en C#, que al fin y al cabo no es mas que una versión de C++ con librerías para windows .NET
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

joecarl

Cita de: Orubatosu en 27 Julio 2015, 14:30 PM
Una pregunta un poco "tonta"

Entiendo que un programa escrito en VB se puede "sacar" ya que es interpretado, pero no me acaba de cuadrar que se pueda "descompilar" un programa escrito en C#, que al fin y al cabo no es mas que una versión de C++ con librerías para windows .NET

C# no es una version de C++ con libs para .NET
Es un lenguaje nuevo basado en C++, al igual que Java, además es ejecutado a través de una máquina virtual, en general se asemeja más  a Java que a C++.
Tratando de responder a tu pregunta, no sé 100% porque se puede "sacar" pero supongo que será porque no se compìla de forma tan eficiente como C++.