Cómo modificar programas III
¿Qué son los recursos de un programa?
Es importante que conozcas a qué llamamos recursos. Los recursos son elementos de la interfaz que proporcionan información al usuario. Cuando un programador realiza un software, tiene que (si quiere) diseñar la interfaz, los menús, las imágenes, el texto, el título de su programa entre otros y cuando compila su programa, esta interfaz, menú, imágenes, texto, título se guardan también dentro del ejecutable.
Hay muchos tipos de recursos como: cursores, iconos, bitmaps, imágenes, audio, menús, diálogos, mensajes, cadenas de texto, ventanas, controles etc.y esto es lo que vamos a intentar modificar en un principio. Vamos a ver una simple imagen de la interfaz de un programa cualquiera:
¿Qué recursos hay ahí? Pues fíjate: menú, botones, la imagen del cuadrado amarilla... todo lo que ves. Como Add PE bytes lo he programado yo, pues simplemente te voy a mostrar una imagen de cómo programé los recursos y verás todos los que usé:
Por ejemplo, DialogoPrueba es la ventana general de Add PE bytes, la primera imagen que he puesto. Cuando se programan los recursos, muchos programas te permiten hacerlo de una forma visual muy sencilla. Mira:
Por ejemplo, si quieres añadir un botón, sólo tienes que pulsar a la derecha en "Button" y seguidamente dibujas el botón en el diálogo.
¿Dónde se guardan los recursos?
Como dije antes, cuando un programador compila su software y usa recursos, éstos se guardan dentro del archivo ejecutable. Como sabes existen cientos de compiladores y cada uno trabaja de un modo diferente: no es lo mismo un programa hecho en Visual Basic 6 que uno hecho en Delphi 6 ya que cada uno guarda determinados recursos en sitios diferentes. Un programa ejecutable para Windows tiene un formato denominado PE (Portable Executable) y se compone de secciones. Hay muchos programas que te permiten ver las secciones, por ejemplo, voy a usar uno propio llamado File Location Calculator v0.3.2 y voy a abrir con él un programa cualquiera para ver sus secciones:
Observa la sección .rsrc que he pintado en azul. ¡Ahí se suelen guardar los recursos de un programa generalmente! Y te dirás... ¿por qué se que están ahí? Primero por la experiencia pero para asegurarme voy a mirar en la sección que ves como Header (lo miro desde OllyDBG):
00400160 00C00200 DD 0002C000 ;Resource Table address = 2C000
00400164 48130000 DD 00001348 ;Resource Table size = 1348 (4936.)
Ya te habrá quedado claro ¿no?.
Otros formatos
Este simple ejemplo es un programa con formato PE, pero existen otros formatos diferentes (en Java, Flash etc...) que verás que no se corresponde con esto que acabamos de ver e incluso sin ir muy lejos, los recursos en un programa realizado con tecnología NET tampoco es exactamente así y modificarlo nos puede llevar mucho más trabajo. Sin embargo, vamos a ir poco a poco y empezaré con lo más básico. Poco a poco nos iremos adentrándo en otros formatos.
Cómo modificar los recursos
Como te puedes imaginar existen muchos programas que te permiten ver, modificar, renombrar, borrar, extraer y añadir recursos. Todos estos programas se denominan editores de recursos. Como ya dije, podemos encontrarnos con muy diversos programas y lo que un editor de recursos puede modificar otro tal vez no.
Antes de seguir con el tema de los editores de recursos es necesario que sepas que es posible que un programa sea modificado, comprimido, protegido (que veremos y explicaremos más adelante) y por tanto los recursos no se podrán editar tan fácilmente.
En el siguiente tutorial veremos los distintos editores de recursos.
Mira a ver primero cómo ha sido compilado y luego echa un vistazo a los tutes de Ricardo Narvaja.
Un saludo.
Lo primero de todo es ver con qué ha sido compilado y programado, ya que de ese modo se puede saber qué herramientoas utilizar para su edición.
Un saludo.
Observa la placa electrónica, tal vez te muestre quién la hizo y puedas llamar, si existe, a la empresa y preguntarles directamente.