Cómo modificar programas II

Tamaño de letra:

Cómo modificar un programa desde cero II

Estos tutoriales van dirigidos para saber (principalmente en un entorno Windows) modificar un programa ya compilado: modificar un ejecutable, un software, una dll, un ocx, un control ActiveX. Aprenderás a traducir un programa a tu propia lengua. Sabrás modificar los recursos de un software: las imágenes, los menús, los botones, los títulos, los labels y un largo etc... Conocerás (desde toda legalidad) a qué se llama "crackear un programa" o "crackear un software", cómo se crean los cracks y qué son. Veremos qué herramientas se utilizan actualmente y cómo usarlas, cómo usar un desensamblador y un depurador, cómo injertar código ensamblador en cualquier programa, cómo modificar una función o crearla y cualquier duda o pregunta que sugieras.

 

Acuerdo. Marco de la legalidad

Nunca he hecho ni subido ningún crack ilegal a la red ni tengo pensado hacerlo, así que no me preguntes por esto porque verás que no te contestaré. Voy a trabajar siempre siguiendo el marco de la legalidad. Todas las descargas están libre de virus, spyware, malware y/o cualquier otro tipo de amenazas. Este tema que voy a tratar suele ser considerado avanzado y algo complejo, todos los ejercicios que te voy a proponer los realizarás bajo tu propia responsabilidad, ten cuidado en todo lo que hagas porque puedes incluso dañar tu Sistema Operativo. No hagas nada ilegal y respeta la propiedad intelectual. Si no estás de acuerdo con algo de lo que acabo de comentar te ruego que no sigas leyendo.
Hecho los preparativos vamos a comenzar este (espero) largo camino.

 

Modificar un programa ya compilado

¿Qué es un programa ya compilado? Sobre este tema ya hablé en un tutorial que recomiendo que leas primero porque este artículo voy a intentar hacerlo lo más sencillo y entendible posible a cualquier persona sin conocimientos: Enlace tutorial lenguaje ensamblador por karmany


Imagina simplemente que escribes en Visual Basic (VB) lo siguiente:
*Nota: Visual Basic es tan sencillo de entender que lo considero oportuno para comprender lo que intento explicar. No pretendo que lo instales, simplemente intenta entender el contenido. Esta primera parte es muy elemental y he obviado muchos detalles para que gente sin ningún conocimiento pueda entenderlo. En tutoriales posteriores iremos explicando conceptos de forma más precisa y adecuada.

a = 1
a = a + 1

Eso que has escrito es código fuente hecho para Visual Basic que es un lenguaje de programación (vamos a olvidarnos en este momento de compilador y enlazador). Si tú quieres crear un programa para Windows que ejecute esas dos líneas anteriores, simplemente tienes una opción desde un menú del mismo VB para generar el ejecutable. Mira esta opción:

 

Generar exe en VB6

 

Nada más que pulses la opción "Generar ejemplo_karmany.exe", Visual Basic a partir del código fuente te creará un archivo con extensión .exe.  A grandes rasgos, te quedarán dos archivos:

1.- Un archivo de texto que contiene las dos líneas anteriores y que denominamos código fuente
2.- Un archivo con extensión .exe que es un ejecutable para Windows.

Si por cualquier motivo quieres modificar tu programa, lo más lógico y que hace todo el mundo es modificar el código fuente. Imagina que quieres modificar la segunda línea: a = a + 1 por a = a + 2, pues simplemente lo modificas en el archivo de texto para que quede lo siguiente:

a = 1
a = a + 2

Ahora simplemente vuelves a generar el ejecutable desde Visual Basic y se vuelve a crear otro ejecutable (.exe) para Windows.
Como ves es muy sencillo pero ¿y si no dispones del código fuente? Cómo puedes modificar lo que acabo de comentar. ¿Cómo se puede modificar ese archivo ejecutable (.exe)? También podemos extrapolar a otros rasgos, por ejemplo, imagina que quieres modificar una imagen o un color o una función. De esto va a tratar estos tutoriales, de modificar programas, librerías, controles ActiveX ya compilados que no disponen de código fuente y solamente tenemos el exe, dll, ocx etc...

 

Diferencias entre ejecutables

Como sabes, existen muchísimos lenguajes y entornos de programación y los ejecutables finales pueden ser muy distintos unos de otros. Iremos conociendo los más utilizados y en distintos niveles de dificultad. La idea es que cuando tengas en tus manos por ejemplo una librería dll, sepas si está comprimida, empacada, protegida, sepas con qué lenguaje de programación ha sido compilada y qué debes hacer para modificarla.

Ya hemos dado el primer paso, vamos a empezar por lo que considero más básico: saber qué son los recursos de un programa, dónde están y cómo se pueden modificar...

Última actualización: Domingo, 10 Julio 2011
Comentarios  
0 # ivan 21-06-2022 19:43
hola buenas tardes necesito ayuda tengo un programa hace unos años que es de un juego de rol lienage2
el programa se basa en fundamentos de craftear(hacer las cosas del juego) pero el problema es que esta en ruso y lamentablemente no entiendo nada de ruso. y estuve buscando programas para intentar cambiarle el idioma nada mas pero no he encontrado nada.y si ustedes me podrian ayuda les estaria eternamente agradecido ,desde ya muchas gracias....atte ;ivan
+1 # Javier 10-12-2020 15:04
karmadmin, hola gracias por el tutorial. Tengo un programa al cual solo quiero editarle una función, sera que me guías a hacerlo please ? Gracias.
+1 # Editor 10-12-2020 15:20
Hola Javier.
Modificar un programa requiere tiempo y ahora no tengo mucho, tendría que ser más adelante.
Pero podrían echarte una mano en el foro elhacker en el apartado "ingeniería inversa", a ver si alguien puede ayudarte allí.
Si no yo te ayudaré pero ahora no puedo.
Enlace foro: https://foro.elhacker.net/ingenieria_inversa-b26.0/
+1 # karmany 10-12-2020 15:24
Lo anterior (Editor) lo he escrito yo.
Lo primero que tendrías que ver es con qué ha sido programado/empa cado. Eso puede definir la complejidad (puedes usar RDG Packer Detector). Y según la protección del programa o la compilación se usará una u otra herramienta.
0 # Javier 14-12-2020 23:45
Gracias por reponder, ya he iniciado la lectura relacionada con ingenieria inversa. Buscare informacion sobre el programa que me sugieres. Te contare sobre mis avances. Muchas gracias.
0 # Javier 15-12-2020 03:03
Hola Karmany, descargue el RDG Packer Detector y obtuve estos resultados tildando M-A:
Compiler : Microsoft Visual C++ 6.0
Detected : Willer Installer Stub (Tutorial decia que este era conque se habia compilado )
Possible : no arrojo nada.
Y tildando M-B
Compiler : Microsoft Visual C++ 6.0
Detected : GLS Install Stub 32 - bit Wise
Possible : no arrojo nada.
0 # Javier 15-12-2020 03:11
Utilice otra herramienta que vi en otro tutorial de nombre PEID 0.95 y obtuve estos resultados :
Entrypoint : 000021AF
File offset : 000015AF
Linker info : 6.0
Ep Section : .text (Tutorial decía que este era conque se había compilado )
First bits :55,8B,EC,81
Subsystem : Win32 Gui
Mi EXE ya no posee soporte tecnico, prácticamente lo abandonaron por eso quiero Crackearlo, modificarlo y seguir usandolo.
Te agradecería si puedes darme otro tips para seguir avanzando. Algún post que pueda leer. Gracias de antemano.
0 # Editor 15-12-2020 19:43
Envíame un email al correo de esta web con el programa y le echo un vistazo
0 # Javier 16-12-2020 03:09
Buenas noches Karmany, seguro.
Muchas gracias.
0 # lionymous 25-09-2012 03:55
que paso con el resto del tutorial no lo saben ????
-1 # karmadmin 25-09-2012 18:26
Sobre el tema de como modificar programas, en este sitio de momento solo se han escrito (a fecha de hoy) 4. El enlace principal: www.karmany.net/index.php/ingenieria-inversa/21-como-modificar-programas
No sé si te refieres a esto. Si no coméntalo.
Se tiene previsto continuar, aunque como estamos en varios proyectos a la vez, no hay una fecha pensada.

No tiene privilegios para responder a los comentarios.


 

También te puede interesar. Relacionados:

Visitas: 8567589