Cómo obtener el código fuente de cualquier aplicación de Windows

Bartosz Wójcik de PELock LLC.

Nuestra empresa se especializa en recuperación de código fuente, puedo ayudarlo a recuperar el código fuente, los algoritmos y los recursos de las aplicaciones binarias compiladas escritas en:

  • C y C ++
  • Java
  • C # aka C Sharp
  • Visual Basic y VB .NET
  • Delphi y Pascal
  • Visual FoxPro
  • AutoIt
  • Flash SWF

La recuperación del código fuente no es una tarea fácil y requiere tiempo, herramientas especializadas y habilidades de ingeniería inversa.

En primer lugar, el software debe analizarse para determinar el compilador y el lenguaje de programación en el que se escribió. En esta etapa, sé qué bibliotecas se utilizaron, qué tecnologías han estado involucradas (como controladores de bases de datos, bibliotecas gráficas, etc.).

Otro paso es el desmontaje y descompilación del software (si es posible). En este punto, sé cómo se ve el código compilado y el trabajo puede continuar. Con el conocimiento adecuado de la estructura del código, la ingeniería inversa y la programación, cada función se analiza y su código binario se traduce a mano o por el descompilador al lenguaje de programación de alto nivel de salida deseado.

¿Qué se puede recuperar?

La recuperación del código fuente es un trabajo tedioso y puede llevar tanto tiempo como un día, pero en algunos casos puede llevar incluso unos pocos meses, dependiendo del tamaño del proyecto y su complejidad. Entonces, ¿qué se puede recuperar?

  • base de código completo
  • recursos de aplicaciones (archivos, imágenes, bases de datos) de contenedores cifrados o comprimidos
  • funciones y algoritmos específicos
  • algoritmos de encriptación y compresión
  • claves de cifrado
  • contraseñas de inicio de sesión (para conexiones de bases de datos, etc.)

Si tiene alguna pregunta sobre la recuperación del código fuente o sobre los precios, contácteme. Describa su problema con tanta información técnica como pueda. Estaré encantado de responder a todas sus preguntas.

Probablemente no pueda obtener el código fuente de ninguna aplicación de Windows legalmente (porque son software propietario). Algunas personas podrían leer un código fuente de este tipo después de haber firmado un NDA (y probablemente, después de haber pagado mucho). O si eres increíblemente rico -con muchos miles de millones de euros de activos-, podrías comprar Microsoft (pero tal vez incluso no).

Si el acceso al código fuente es importante para usted, cambie a un sistema de software libre como Linux.

Nunca usé Windows, estoy usando Linux desde aproximadamente 1994, y estoy bastante contento con eso.

Además de lo que dijo Basile Starynkevitch, si realmente necesita ver cómo funciona algo, puede usar un desensamblador como IDA Pro. Hay algunas formas de intentar generar el código fuente a partir de un desensamblaje, pero generalmente son muy fáciles de evitar y siempre es imposible recuperar cosas como nombres de variables . ¿Por qué? No se guardan en primer lugar. Si usted tiene

int variable = 50000;

en C ++, y la variable no se usa fuera de ese alcance, probablemente obtendrá

mov eax, C350h; o…
mov [ebp-someoffset], C350h

Algunas cosas más: a menudo va en contra de ToS, los programas de empaque como VMProtect hacen que sea una tarea extremadamente desalentadora obtener la información más básica, etc.

Usted no

Algunas aplicaciones de Windows son de código abierto, en cuyo caso, puede descargar el código fuente de GitHub o donde sea que esté.

Sin embargo, la mayoría no es de código abierto, y solo obtienes los archivos .exe y .dll. Puede desmontar eso en el código asm, pero eso no le dará el código fuente original.

Tendría mejor suerte quizás con una aplicación .NET.