16
Introduccion Primeramente decir que este tutorial está encaminado principalmente a saber modificar los recursos del programa que queremos analizar. Sin embargo, a veces modificar un recurso requiere tener conocimientos de ingeniería inversa... pero no siempre... Hace ya bastante tiempo, en otro foro, hice un sencillo tutorial del manejo de un programa para editar recursos: Resource Hacker 3.4.0.79. (si ponéis en el buscador: “tutorial resource hacker” lo encontraréis). Nada más publicar aquél tute, recibí muchos mensajes de gente que me pedía ayuda para modificar los recursos de algunos programas, cosa que a veces era muy complicada y muchas veces imposible (desde un editor de recursos, sin usar debugger). Ese tutorial lo modifiqué con el tiempo guardándolo en mi ordenador, agregando información también de otros programas y de la experiencia que iba adquiriendo, y hoy después de todo este tiempo, y después de que varias personas hace poco me hayan pedido que les envíe el tutorial vuelvo a reeditarlo para colgarlo aquí. Todos estos programas son muy parecidos en su manejo, así que con este tutorial lo que pretendo es: 1) Saber qué son los recursos de un programa. 2) Por qué es interesante poder modificarlos. 3) Explicaré con bastante detalle el manejo de un programa y posteriormente explicaré algunas características muy interesantes, de otros dos programas que también utilizo mucho. ¿QUÉ SON LOS RECURSOS DE UN PROGRAMA? Los recursos son elementos de la interfaz que proporcionan información al usuario. Los mapas de bits, los iconos, las barras de herramientas, los cursores son ejemplos de recursos. Con estos programas pues, lo que podemos hacer es ver, modificar, renombrar, añadir, borrar y extraer recursos de ejecutables EXE (algunos a 32 bits otros a 16), (DLL y OCX). Se pueden ver los cursores, iconos, bitmaps, imágenes GIF, AVI y JPG. También se pueden escuchar los recursos de audio WAV y MIDI y ver o modificar los Menús, Diálogos, Mensajes, Strings, etc. A veces estos programas no encuentran todos los recursos, y por lo tanto estas veces será imposible modificarlo. Otras veces un programa reconoce un recurso que otro programa no encuentra. Seguro que habrá alguno que todavía no entiende qué es un recurso, voy a poner el primer ej.: Imaginemos un programa que tiene un menú y al pulsar en File vemos lo siguiente:

Res Hacker

Embed Size (px)

Citation preview

Page 1: Res Hacker

Introduccion

Primeramente decir que este tutorial está encaminado principalmente a saber modificar los

recursos del programa que queremos analizar. Sin embargo, a veces modificar un recurso

requiere tener conocimientos de ingeniería inversa... pero no siempre...

Hace ya bastante tiempo, en otro foro, hice un sencillo tutorial del manejo de un programa

para editar recursos: Resource Hacker 3.4.0.79. (si ponéis en el buscador: “tutorial resource

hacker” lo encontraréis).

Nada más publicar aquél tute, recibí muchos mensajes de gente que me pedía ayuda para

modificar los recursos de algunos programas, cosa que a veces era muy complicada y muchas

veces imposible (desde un editor de recursos, sin usar debugger).

Ese tutorial lo modifiqué con el tiempo guardándolo en mi ordenador, agregando información

también de otros programas y de la experiencia que iba adquiriendo, y hoy después de todo

este tiempo, y después de que varias personas hace poco me hayan pedido que les envíe el

tutorial vuelvo a reeditarlo para colgarlo aquí.

Todos estos programas son muy parecidos en su manejo, así que con este tutorial lo que

pretendo es:

1) Saber qué son los recursos de un programa.

2) Por qué es interesante poder modificarlos.

3) Explicaré con bastante detalle el manejo de un programa y posteriormente explicaré

algunas características muy interesantes, de otros dos programas que también utilizo mucho.

¿QUÉ SON LOS RECURSOS DE UN PROGRAMA?

Los recursos son elementos de la interfaz que proporcionan información al usuario. Los mapas

de bits, los iconos, las barras de herramientas, los cursores son ejemplos de recursos.

Con estos programas pues, lo que podemos hacer es ver, modificar, renombrar, añadir, borrar

y extraer recursos de ejecutables EXE (algunos a 32 bits otros a 16), (DLL y OCX). Se pueden ver

los cursores, iconos, bitmaps, imágenes GIF, AVI y JPG. También se pueden escuchar los

recursos de audio WAV y MIDI y ver o modificar los Menús, Diálogos, Mensajes, Strings, etc.

A veces estos programas no encuentran todos los recursos, y por lo tanto estas veces será

imposible modificarlo. Otras veces un programa reconoce un recurso que otro programa no

encuentra.

Seguro que habrá alguno que todavía no entiende qué es un recurso, voy a poner el primer ej.:

Imaginemos un programa que tiene un menú y al pulsar en File vemos lo siguiente:

Page 2: Res Hacker

Vemos que el menú File consta solamente de Open…

Podemos hacer una cosa sencilla por ej. que es modificar el idioma a nuestro gusto y queda

por ejemplo así:

Ahora ya se entiende mejor, ¿verdad?

¿Dónde se guardan normalmente los recursos?

Normalmente se guardan en la sección de recursos. Si se examinan las secciones, veremos

normalmente una sección llamada .rsrc

Ahí es donde los programas editores de recursos buscan los mismos.

¿QUÉ FINALIDAD TIENE MODIFICAR UN RECURSO?

La finalidad que más he oído repetida es para modificar el idioma a un programa. Es una idea

interesante. Mi experiencia y la de otras personas que se lo han llegado a tomar también en

serio es que es un trabajo muy pero que muy costoso..

El que haya traducido un programa entero y luego haya visto recién sacada una versión

posterior a la traducida, sabe de lo que hablo.

Pero hay muchísimas otras finalidades:

-Imaginemos un programa que cada vez que lo abrimos nos aparece una ventana que dice:

Bastará que podamos encontrar dicha ventana y la suprimamos (y que se pueda claro..).

-Podemos dar a nuestros programas nuestro toque personal.. podemos insertarle alguna

imagen que nos guste, nuestro nombre etc…

-Hay gente también muy lista (y muy vaga) que se dedica a modificar la interfaz de un

programa y luego hacen suyo el trabajo de los demás..

Voy a explicar esto último con un ej. muy sencillo:

Por ej. tengo este programa:

Page 3: Res Hacker

Muy sencillo que pone que introduzca una password..

Voy a modificarlo rápidamente y queda esto otro:

Impresionante y es el mismo programa de arriba..

-En fin, podéis hacer las cosas que vuestra imaginación proponga y la limitación de estos

programas tengan.

Vamos a empezar con el primer programa!.

Toda la información de este tutorial es personal y de mi experiencia con los programas,

también he añadido algunas cosas de los archivos de ayuda.

Antes de comenzar:

“Como todos sabemos, los programas son propiedad de sus desarrolladores y éstos conceden

autorización para el uso de sus aplicaciones bajo unas condiciones o términos que,

normalmente, vienen reflejados en la Licencia del programa. Si en la citada licencia viene

expresamente prohibido la traducción del programa, debemos de abstenernos de

confeccionarla, salvo que solicitemos (y obtengamos) la pertinente autorización de aquellos

que legalmente estén capacitados para concederla.”

RESOURCE HACKER versión 3.4.0.79

Bueno, antes de todo decir que este editor de recursos ya tiene varios bugs que el autor no

quiere solucionar, pero que para explicar el funcionamiento de los editores de recursos, pues

es una herramienta muy fácil de utilizar.

Su página oficial es:

http://www.angusj.com/resourcehacker/

Un programa que seguro que va a quitar muchas horas de sueño a muchos.

Page 4: Res Hacker

Lo podéis descargar del siguiente enlace traducido al español (el tutorial lo he realizado con

esta versión):

http://hispanicoweb.net/index.htm

La primera ventaja que tiene el programa es que no hay que instalarlo (Delphi).

Para que todo el mundo pueda seguir este tutorial, se me ha ocurrido la idea de trabajar con el

mismo ejecutable de este programa. Así pues, lo primero que haremos y es lo que hay que

hacer siempre es copiar el archivo a modificar, en este caso “ResHacker.exe” y lo pegamos por

ejemplo en el escritorio. Yo le he cambiado el nombre para no equivocarme: “copia.exe”.

GENERALIDADES:

Ejecutamos el programa “ResHacker.exe”.

Vamos a echar un vistazo general a su ventana de inicio:

Observamos primeramente que la pantalla está dividida en dos:

Izquierda en blanco, derecha en un color crema.

Vemos también una sencilla barra de herramientas:

Archivo, Editar, Ver, Acción, Ayuda.

Esto no merece más explicación, no voy a adentrarme en todos sus submenús, ya se irán

viendo.

El programa puede abrir archivos .exe .dll .ocx .cpl .scr y .res. Archivos ejecutables win32. Las

limitaciones vienen bien explicadas en su página oficial.

Vamos a darle a abrir y seleccionamos el programa “copia.exe”:

Page 5: Res Hacker

Nos han salido a la izquierda 9 carpetas. Esas carpetas dependen del archivo y del programa

con que ha sido compilado el archivo: Visual Basic, C++ , Delphi, etc., aunque normalmente

algunas suelen ser similares.

Estas carpetas contienen lo que el programa llama recursos. (Resource).

Podemos encontrar algunas de las siguientes carpetas con los siguientes recursos:

GIF o AVI: Aquí encontraremos como su nombre indica los archivos .gif o .avi que

encontraremos en el programa. Como ejemplo, en el programa que hemos abierto, vamos a

ayuda --> acerca de… y encontraremos un .gif (Un martillo golpeando las letras Resource

Hacker).

Cursor y Cursor Group: Son los cursores que hay en el programa. Como ejemplo, pon el

puntero del ratón entre la línea que separa la parte de color blanca y la parte de color crema.

Icon e Icon Group: Son los iconos del programa. Como ejemplo, el icono del ejecutable y el

icono que vemos en la esquina superior izquierda de la ventana.

Bitmap: Como su nombre indica son los archivos en mapa de bits. Son las imágenes que el

programa utiliza. Como ejemplo abrimos la carpeta Bitmap y vamos a SMALLICONS y pulsamos

en 0. Ahí encontramos las imágenes de carpeta cerrada, abierta y la imagen de color amarilla o

blanca de si estamos viendo un recurso o no.

String Table: Son las frases que aparecen cuando el programa identifica algún error, problema

o indica algún aviso. Como ejemplo vamos a String Table y a 4077. A la derecha veremos en

65219: "Los recursos han sido modificados, ¿desea guardar los cambios?". Ésta es la frase que

aparecerá cuando modifiquemos un recurso y por ejemplo cerremos el programa sin haberlo

guardado.

RCData: Aquí están los cuadros de diálogo. Este apartado es característico de los programas

realizados con Delphi (como el Resource Hacker). Como ejemplo vamos a RCData y a

Page 6: Res Hacker

TABOUTFORM. Ahí encontraremos en la 6º línea Caption = 'Acerca de'. Este “acerca de” es el

título de la ventana que hay en ayuda --> acerca de…

Versión Info: Seguro que se os habrá escapado algún detalle… Cuando pulsáis en el icono del

ejecutable con el botón derecho y seleccionáis propiedades o cuando dejáis el icono del ratón

sobre el icono del ejecutable, veis que muchas veces se indica nombre del programador

versión… etc…pues aquí las tenéis para modificarlas a gusto.

Hasta aquí se ha descrito el contenido de las 9 carpetas, pero como he señalado en el

“Resource Hacker” pueden aparecer otras carpetas:

Dialog: En esta carpeta encontraremos los cuadros del diálogo del programa. Pero lo bueno

que tiene esto es que en nuestro programa “Resource Hacker” aparecerá al lado del botón

“Compilar Script” otro que dice “Mostrar (u ocultar) Diálogo”. De esta forma para modificar el

tamaño de las ventanas, botones etc… podremos hacerlo gráficamente.

Hay algunas carpetas más que aparecen, algunas con valores hexadecimales que no contienen

información aparente. Otras carpetas contienen también información importante, pero

explicando las ya descritas yo creo que es más que suficiente para adentrarnos en el programa

¡VAMOS A COMENZAR!

Lo primero ejecutamos de nuevo el programa “ResHacker.exe”.

Vamos a archivo --> abrir y abrimos el “copia.exe” que teníamos en el escritorio.

GIF y AVI

La primera carpeta que vemos a la izquierda es GIF (o AVI). Aquí aparecen los archivos .gif y

.avi como he señalado más arriba.

La abrimos al máximo: GIF, 128 y pulsamos en el 0, veremos que el recurso es un .gif de

Resource Hacker en el que un martillo golpea a las letras.

Este gif aparece en ayuda --> acerca de… (Comprobarlo).

-Podemos guardar el .gif en nuestro disco duro para, por ejemplo, editarlo:

Pulsamos con el botón derecho en el recurso (0) y en el menú que sale, la tercera opción es:

Guardar [GIF : 128 : 0], pulsamos y la guardamos donde queramos.

[GIF : 128 : 0] (esto nos indica el nombre “128”, el tipo “GIF” y el lenguaje “0” del recurso).

-Una vez retocada o cuando tengamos otro .gif que queramos usar, volvemos a pulsar con el

botón derecho y damos a “reemplazar recurso”, en la siguiente ventana señalamos “abrir

archivo con nuevo recurso”, elegimos el archivo .gif que queremos insertar y después debemos

rellenar los dos primeros campos tal y como lo tenemos nombrado a la izquierda, es decir, en

tipo de recurso escribiremos GIF y en nombre de recurso escribiremos 128. Le damos a

reemplazar y ya lo tenemos. Para comprobarlo podemos “guardar como” ejemplo.exe

Page 7: Res Hacker

(acordarse de poner la extensión .exe) y ejecutamos el nuevo ejemplo.exe.

Vamos a Ayuda --> acerca de… y veremos cómo ha cambiado el dibujo... ¿curioso verdad?

Problemas que he encontrado: dará fallos en la ejecución si se cambia el tipo, nombre o

lenguaje del recurso.

En este ejemplo que he puesto, el archivo que tiene que reemplazarse tiene que ser .gif y da

igual el número de píxeles y el tamaño. Pero es aconsejable que sean similares para poder

verlos correctamente. Yo lo que he hecho ha sido crear una imagen con un programa editor

gráfico (podéis si no retocar la imagen del programa o utilizar una vuestra) y después grabarla

como .gif.

ICONOS Y CURSORES

En los iconos y cursores la información del recurso está dividida en dos tipos:

“Cursor” y “Cursor group” por un lado e “Icon” e “Icon group” por otro lado.

Se puede observar perfectamente esto en la parte de la izquierda.

Cada icono o cursor puede contener varias imágenes relacionadas. Ej.

16 píxeles x 16 píxeles (16 colores)

32 píxeles x 32 píxeles (256 colores) dependiendo del tamaño y resolución del color se utilizará

un icono u otro. Por ejemplo, el icono para ejecutar el programa no tiene el mismo tamaño ni

resolución que el que hay en la esquina superior izquierda de la ventana.

-El “Icon group” contiene la información de un icono: nombre de la imagen, tamaño de la

imagen y resolución del color.

-El “Icon” contiene la imagen real.

Para cambiar un icono: Vamos p.ej. a Icon Group --> MAINICON--> 3081 pulsamos con el botón

derecho y seleccionamos reemplazar recurso. No tiene más complicación. Elegimos el que

queremos (veis que se pueden seleccionar .exe etc…). Ahora podemos ver cómo se ha

Page 8: Res Hacker

modificado “Icon” e “Icon Group”.

Para ver los resultados “guardar como” y veréis ya primeramente cómo ha cambiado el icono

para ejecutar la aplicación.

Para cambiar el“Cursor” hacemos lo mismo. Lo que pasa es que aquí he encontrado algún que

otro problema. Alguna vez he intentado cambiar algún cursor por otro que contenía algún

programa .exe, y al ejecutarlo, me ha dado error en la aplicación. Así que si cambiáis algún

cursor ¡probar que os funcione!.

Tenéis bastantes cursores en Windows --> cursores y cursor. Hay también muchas utilidades

para crear vuestros propios .cur y utilizarlos.

Os dejo una:

http://www.aha-soft.com/spanish/iconutils/

Bitmap:

Puedes igualmente reemplazar las imágenes. El mejor consejo aquí es que pruebes por

ejemplo en Bitmap --> SMALLICONS y cambies la bmp por otra (botón derecho, reemplazar

recurso). Estos iconos son de 16 x 16 pixels. En total el dibujo es de 64 x 16 pixels. Así que

aunque sea complicado, para hacerlo bien hay que hacerlo en ese tamaño.

Puedes sino editar esa .bmp. Para esto tienes que guardarla en el disco duro. Botón derecho y

guardar. A mi no me ha dado ningún problema incluso insertándole imágenes de mucho mayor

tamaño y resolución.

En mi ejemplo he “jugado” con unas palabras, tú puedes intentar cualquier otra cosa que se te

ocurra. Este es el resultado:

String Table:

Para modificar la información vamos a hacer un ejemplo:

Abrimos String Table --> 4077 y pulsamos en 0. Vemos que a la derecha en 65218 sale “¿Está

seguro que quiere borrar recursos?”, todo lo que hay entre comillas se puede cambiar y variar

el tamaño.

Poner lo que queráis. Yo he puesto: “Soy karmany”. Ahora le damos al botón de arriba

“Compilar Script”.

Si no da ningún error ya lo tenemos. Para comprobarlo vamos a “guardar como”, ponemos por

ej. ejemplo.exe y lo guardamos. Lo abrimos desde su icono ejemplo.exe y vamos a archivo

abrir y abrimos “copia.exe”. Abrimos GIF --> 128 -->0, pulsamos con el botón derecho y

decimos borrar recurso. Veréis lo que sale…

Page 9: Res Hacker

Esto sólo lo hace la primera vez que intentamos borrar un recurso, si aceptamos después ya no

sale.

Hay que saber que:

-No cambiar nada que no haya entre comillas.

-Los símbolos % no hay que borrarlos ni cambiarlos de sitio ni borrar la coma que hay detrás ni

las letras que van detrás pegadas.(%A0)

-El símbolo & significa que la letra que va detrás de este símbolo es el acceso rápido para el

programa. En un mismo menú no puede ir la misma letra. La letra va subrayada.

-Como habréis podido observar hay mucha información que no deja cambiarla al pulsar en

Compilar Script, y abajo sale error, ya explicaré más adelante cómo se puede intentar cambiar.

También hay muchísima información que probablemente no veamos nunca, así que si queréis

traducir un programa mi consejo es que traduzcáis lo imprescindible solamente.

-Para buscar recursos tenemos en el menú ver --> buscar texto. La verdad que a mi me resulta

muy útil.

RCData:

Aquí aparte de cambiar el texto, puedes cambiar el color, subrayado etc…este es el apartado

que más me gusta.

Vamos a por el primer ejemplo:

Vamos a RCData --> TABOUTFORM y pulsamos sobre el 0. Ya os he explicado en el apartado

anterior cómo cambiar el texto, así que podéis cambiar el “acerca de“ que hay en la sexta línea

y que es el título de la ventana de ayuda --> acerca de. Pulsáis después Compilar Script,

(siempre que cambiéis algo hay que pulsar Compilar Script) guardar cómo, no olvidar la

extensión .exe y probar la aplicación.

Para variar otras características hay que entender un poco más:

Cada ventana, recurso etc… en este ejemplo empieza por object y termina por end. Si os fijáis

arriba del todo (en RCData --> TABOUTFORM y pulsamos sobre el 0) pone: “object AboutForm:

TAboutForm” que significa que va a empezar a definir la ventana de ayuda. El end lo tiene

abajo del todo (es el último), es decir, que todo lo que hay entre “object AboutForm:

Page 10: Res Hacker

TAboutForm” y end corresponde a los datos que hay en la ventana de ayuda “acerca de”.

Desde arriba todos los datos que veis hasta “TextHeight = 14” definen las características de la

ventana, algunas de ellas como:

Left = 209, Top = 251, ClientHeight = 205, ClientWidth = 296 que indican respectivamente la

posición en la horizontal, posición en la vertical, anchura y longitud de la ventana.

A veces es posible cambiar estos valores, pero mi experiencia dice que suelen dar bastantes

errores. Para evitar estos errores yo lo que hago es compilar “programando” los textos yo

mismo (esto está explicado un poco más abajo). Un valor de ejemplo que podéis compilar es

ClientHeight=2 y veréis cómo cambia la ventana. Si ponéis otros valores y compiláis, el error os

lo dará al intentar ejecutar la aplicación:

Error… no es una aplicación win32 válida…

Vamos a por otro objeto, el siguiente:

object Label3: TLabel

Left = 27

Top = 128

Width = 241

Height = 15

Cursor = crHandPoint

Caption = 'http://rpi.net.au/~ajohnson/resourcehacker'

Font.Charset = DEFAULT_CHARSET

Font.Color = clBlue

Font.Height = -12

Font.Name = 'Arial'

Font.Style = [fsBold, fsUnderline]

ParentFont = False

OnClick = Label3Click

End

-El “object Label3: TLabel” nos dice que va a definir un control Label (es un texto que no puede

ser modificado por el usuario, cuando se ejecuta el programa).

-Las 4 siguientes líneas indican la posición como he explicado antes. (Aquí no me deja

cambiarlas).

- Cursor = crHandPoint indica el cursor que va a tener cuando pasas el icono del ratón sobre el

texto.(En este caso es una mano, indicando que es interactivo).

-Caption = es el mensaje.

-Font.Color = clBlue indica el color del texto. Color azul.

-Font.Height = -12 indica el tamaño. Mayor número mayor tamaño.

-Font.Name = ‘Arial’ es el tipo de letra.

-Font.Style = [fsBold, fsUnderline], indica las características del texto: Bold es negrita y

underline es subrayado.

-OnClick = Label3Click activa para que cuando pulsemos (hagamos clic) sobre el texto haga una

determinada función.

Page 11: Res Hacker

Bueno pues viendo lo que tenemos aquí, vamos a hacer nuestra pequeña programación en

texto!! Así podremos poner el texto que queramos y donde queramos sin que nos dé ese error

tan molesto de “no es una aplicación win32 válida..!!”:

Lo primero es definir un texto:

“object Label9: TLabel” y ahora le pongo las características que yo quiero y en total me queda

así:

object Label9: TLabel

Left = 0

Top = 0

Width = 241

Height = 15

Cursor = crDrag

Caption = 'Esto es una prueba'

Font.Charset = DEFAULT_CHARSET

Font.Color = clred

Font.Height = -20

Font.Name = 'Verdana'

Font.Style = [fsItalic]

ParentFont = False

End

Ahora lo que tenéis que hacer es insertar todo esto. Yo lo he insertado detrás de “TextHeight =

14”. Como si trabajarais en Word. Luego lo compiláis y probáis la aplicación.

¡Impresionante verdad!.

En este punto yo sé que más de uno se va a animar haciendo muchísimas cosas más, pero lo

dejo en vuestra imaginación.

Dialog:

Es muy curioso cómo actúa el programa Resource Hacker con los recursos de Dialog.

Como ejemplo voy a intentarlo con un archivo que espero tenga todo el mundo.

Primeramente haremos una copia de seguridad. Vamos a:

-Disco duro --> archivos de programa --> Windows Media Player --> y hacemos una copia del

archivo ejecutable: “setup_wm.exe”.

Abrimos la copia con el Resource Hacker.

-Vamos a Dialog --> 51 y pulsamos en 3082. ¿Veis el botón que os he dicho antes?: “mostrar u

ocultar diálogo”. En este caso ocultar diálogo:

Page 12: Res Hacker

Pulsadlo para que veáis lo que hace. Pues esa ventana que pone Iniciando descarga, la podéis

modificar a vuestro gusto. Podéis pinchar sobre las dos barras de descarga y sobre las letras

iniciando descarga y ponerlas donde vosotros queráis.

Aquí porque no salen botones (botones de aceptar, cancelar etc…), pero podéis pinchar

igualmente sobre ellos y modificar la posición como queráis.

Esta es una de las maneras para modificar los recursos, pero podemos hacerlo de otras formas.

Otra forma es variar el código que en este caso es:

51 DIALOGEX 0, 0, 399, 134

STYLE DS_NOFAILCREATE | WS_CHILD

EXSTYLE WS_EX_RTLREADING | WS_EX_CONTROLPARENT

CAPTION ""

LANGUAGE LANG_SPANISH, 0x3

FONT 8, "Tahoma"

{

CONTROL "Progress1", 8000, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE |

WS_BORDER, 64, 40, 286, 9

CONTROL "Progress1", 8001, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE |

WS_BORDER, 64, 88, 286, 9

CONTROL "", 1028, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 311, 25, 36, 8 ,

0x00001020

CONTROL "", 1021, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 311, 74, 36, 8 ,

0x00001020

CONTROL "Iniciando descarga...", 1022, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE |

WS_GROUP, 64, 66, 222, 16 , 0x00000020

Page 13: Res Hacker

CONTROL "", 1023, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 64, 17, 222, 16 ,

0x00000020

CONTROL "", -1, "NativeFontCtl", 0x50000010, 0, 0, 0, 0

}

Así a primera vista parece complicado, pero se entenderá todo este código en el siguiente

párrafo.

Una manera más de variar aquí los recursos es pulsando con el botón derecho (Cuando está

mostrado el diálogo). Sale un menú y podéis insertar control, editar control, borrar control,

editar diálogo y ocultar diálogo. Es una forma muy fácil de editar.

Voy a poner un ejemplo sencillo para entender también cómo se modifica el código.

Nos encontramos aquí de nuevo:

Pulsamos sobre la ventana que pone Dialog – 51 con el botón derecho y seleccionamos

insertar control. Como en los ejemplos que hemos puesto arriba, vamos aquí también a

insertar un texto label que diga por ejemplo: Espere.

Para ello en el menú desplegable seleccionamos STATIC:

Page 14: Res Hacker

O bien pulsamos sobre la palabra label. Si dejamos el puntero del ratón sobre cada icono nos

dice a qué control corresponde.

En leyenda poner: Espere.

Por lo demás, he cambiado lo que se ve(podéis ver cómo se modifica el valor Style): 54020101

Y queda así:

Page 15: Res Hacker

Hay que darse cuenta que al modificar esto de esta forma, hemos cambiado el código que

parecía tan complicado al principio. Acabamos de insertar en la ventana un control label.

Vamos a ver cómo se ha puesto en el código:

CONTROL "Espere", 0, STATIC, SS_CENTER | SS_NOTIFY | WS_CHILD | WS_VISIBLE |

WS_CLIPSIBLINGS | WS_GROUP, 134, 112, 74, 14 , 0x00020201

Ahora ya se entiendo todo... ¿verdad?

Ya se ve que no es nada complicado todo esto, simplemente es experimentar un poco.

Llegados a este punto he de decir una de las muchas utilidades del Resource Hacker. ;o)

Algunas veces al abrir un programa, nos podemos encontrar con alguna “pesada” e incomoda

ventana de información, como la que he puesto al inicio, que nos puede avisar o comunicar

cualquier cosa: desde la versión del programa hasta.... los días que nos quedan para utilizar el

programa. ¿Qué se hace para evitar esta desagradable ventana de información?, pues, ya

veréis pero no siempre, que borrando la carpeta con todos sus recursos ya no vuelve a salir. En

el ejemplo anterior sería borrar por completo la carpeta 51.

Insertar Imagen

Por último antes de acabar voy a poner un ejemplo que vi en el archivo ayuda de cómo

insertar una imagen o un icono en programas que tengan la carpeta Dialog. Lo primero es

buscar un programa que contenga la carpeta Dialog, así que buscando he encontrado uno muy

conocido el emule 0,47a (compilado en C/C++ si no me equivoco).

Vamos a ir a Disco duro --> archivos de programa --> emule y copiamos el archivo “eMule.exe”

y lo pegamos en el escritorio, lo utilizaremos como copia de seguridad.

Abrimos la copia del emule 0,47a con el Resource Hacker.

Ahora lo que vamos a hacer es insertar el icono que queremos que aparezca en la ventana.

Para esto seleccionamos en Acción --> Añadir un nuevo recurso. Abrir archivo con nuevo

recurso y vamos a buscar el icono.ico. Elegir el que queráis, yo he elegido uno de color verde.

Seleccionarlo.

En tipo de recurso ya se tendrá que haber puesto ICONGROUP y en nombre de recurso ponéis

el que queráis: NUEVOICONO he puesto yo. Le dais a añadir recurso. Para ver si está bien

insertado nos vamos a Icon Group y tiene que aparecer nuestro NUEVOICONO (por orden

alfabético).

Ahora nos vamos a ir a la ventana donde queremos insertarlo que en este caso está en: Dialog

--> 315 por ej.

Pulsáis sobre el 0 y en la parte de la derecha arriba en ocultar diálogo (o cerrar la ventana). Y

ahora vamos a insertar la orden oportuna, insertándola donde queráis, yo la he puesto la

última:

Page 16: Res Hacker

CONTROL "NUEVO ICONO", -1, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 171, 173, 21, 20

Sobre todo tened cuidado de no borrar el {. Si la copiáis directamente tal vez os de error de

sintaxis las comillas. Deberéis cambiarlas vosotros escribiéndolas de nuevo.

Tras todo esto pulsamos en Compilar Script y ya tenemos el icono. Lo ponemos donde

queramos, volvemos a compilar y guardamos.