Está en la página 1de 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 ingeniera 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 ponis en el buscador: tutorial resource hacker lo encontraris). Nada ms publicar aqul tute, recib muchos mensajes de gente que me peda 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 guardndolo en mi ordenador, agregando informacin tambin de otros programas y de la experiencia que iba adquiriendo, y hoy despus de todo este tiempo, y despus de que varias personas hace poco me hayan pedido que les enve 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 caractersticas muy interesantes, de otros dos programas que tambin utilizo mucho. QU SON LOS RECURSOS DE UN PROGRAMA? Los recursos son elementos de la interfaz que proporcionan informacin 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, aadir, borrar y extraer recursos de ejecutables EXE (algunos a 32 bits otros a 16), (DLL y OCX). Se pueden ver los cursores, iconos, bitmaps, imgenes GIF, AVI y JPG. Tambin se pueden escuchar los recursos de audio WAV y MIDI y ver o modificar los Mens, Dilogos, 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 todava 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:

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? Dnde se guardan normalmente los recursos? Normalmente se guardan en la seccin de recursos. Si se examinan las secciones, veremos normalmente una seccin llamada .rsrc Ah es donde los programas editores de recursos buscan los mismos. QU FINALIDAD TIENE MODIFICAR UN RECURSO? La finalidad que ms he odo 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 tambin en serio es que es un trabajo muy pero que muy costoso.. El que haya traducido un programa entero y luego haya visto recin sacada una versin posterior a la traducida, sabe de lo que hablo. Pero hay muchsimas 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 tambin muy lista (y muy vaga) que se dedica a modificar la interfaz de un programa y luego hacen suyo el trabajo de los dems.. Voy a explicar esto ltimo con un ej. muy sencillo: Por ej. tengo este programa:

Muy sencillo que pone que introduzca una password.. Voy a modificarlo rpidamente y queda esto otro:

Impresionante y es el mismo programa de arriba.. -En fin, podis hacer las cosas que vuestra imaginacin proponga y la limitacin de estos programas tengan. Vamos a empezar con el primer programa!. Toda la informacin de este tutorial es personal y de mi experiencia con los programas, tambin he aadido algunas cosas de los archivos de ayuda. Antes de comenzar: Como todos sabemos, los programas son propiedad de sus desarrolladores y stos conceden autorizacin para el uso de sus aplicaciones bajo unas condiciones o trminos que, normalmente, vienen reflejados en la Licencia del programa. Si en la citada licencia viene expresamente prohibido la traduccin del programa, debemos de abstenernos de confeccionarla, salvo que solicitemos (y obtengamos) la pertinente autorizacin de aquellos que legalmente estn capacitados para concederla.

RESOURCE HACKER versin 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 fcil de utilizar. Su pgina oficial es: http://www.angusj.com/resourcehacker/ Un programa que seguro que va a quitar muchas horas de sueo a muchos.

Lo podis descargar del siguiente enlace traducido al espaol (el tutorial lo he realizado con esta versin): 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 tambin una sencilla barra de herramientas: Archivo, Editar, Ver, Accin, Ayuda. Esto no merece ms explicacin, no voy a adentrarme en todos sus submens, ya se irn viendo. El programa puede abrir archivos .exe .dll .ocx .cpl .scr y .res. Archivos ejecutables win32. Las limitaciones vienen bien explicadas en su pgina oficial. Vamos a darle a abrir y seleccionamos el programa copia.exe:

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 ratn entre la lnea 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 imgenes que el programa utiliza. Como ejemplo abrimos la carpeta Bitmap y vamos a SMALLICONS y pulsamos en 0. Ah encontramos las imgenes 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 algn error, problema o indica algn 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 estn los cuadros de dilogo. Este apartado es caracterstico de los programas realizados con Delphi (como el Resource Hacker). Como ejemplo vamos a RCData y a

TABOUTFORM. Ah encontraremos en la 6 lnea Caption = 'Acerca de'. Este acerca de es el ttulo de la ventana que hay en ayuda --> acerca de Versin Info: Seguro que se os habr escapado algn detalle Cuando pulsis en el icono del ejecutable con el botn derecho y seleccionis propiedades o cuando dejis el icono del ratn sobre el icono del ejecutable, veis que muchas veces se indica nombre del programador versin etcpues aqu las tenis para modificarlas a gusto. Hasta aqu se ha descrito el contenido de las 9 carpetas, pero como he sealado en el Resource Hacker pueden aparecer otras carpetas: Dialog: En esta carpeta encontraremos los cuadros del dilogo del programa. Pero lo bueno que tiene esto es que en nuestro programa Resource Hacker aparecer al lado del botn Compilar Script otro que dice Mostrar (u ocultar) Dilogo. De esta forma para modificar el tamao de las ventanas, botones etc podremos hacerlo grficamente. Hay algunas carpetas ms que aparecen, algunas con valores hexadecimales que no contienen informacin aparente. Otras carpetas contienen tambin informacin importante, pero explicando las ya descritas yo creo que es ms 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 tenamos 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 sealado ms arriba. La abrimos al mximo: 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 botn derecho en el recurso (0) y en el men que sale, la tercera opcin 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 botn derecho y damos a reemplazar recurso, en la siguiente ventana sealamos abrir archivo con nuevo recurso, elegimos el archivo .gif que queremos insertar y despus 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

(acordarse de poner la extensin .exe) y ejecutamos el nuevo ejemplo.exe. Vamos a Ayuda --> acerca de y veremos cmo ha cambiado el dibujo... curioso verdad?

Problemas que he encontrado: dar fallos en la ejecucin 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 nmero de pxeles y el tamao. Pero es aconsejable que sean similares para poder verlos correctamente. Yo lo que he hecho ha sido crear una imagen con un programa editor grfico (podis si no retocar la imagen del programa o utilizar una vuestra) y despus grabarla como .gif.

ICONOS Y CURSORES En los iconos y cursores la informacin 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 imgenes relacionadas. Ej. 16 pxeles x 16 pxeles (16 colores) 32 pxeles x 32 pxeles (256 colores) dependiendo del tamao y resolucin del color se utilizar un icono u otro. Por ejemplo, el icono para ejecutar el programa no tiene el mismo tamao ni resolucin que el que hay en la esquina superior izquierda de la ventana. -El Icon group contiene la informacin de un icono: nombre de la imagen, tamao de la imagen y resolucin del color. -El Icon contiene la imagen real. Para cambiar un icono: Vamos p.ej. a Icon Group --> MAINICON--> 3081 pulsamos con el botn derecho y seleccionamos reemplazar recurso. No tiene ms complicacin. Elegimos el que queremos (veis que se pueden seleccionar .exe etc). Ahora podemos ver cmo se ha

modificado Icon e Icon Group. Para ver los resultados guardar como y veris ya primeramente cmo ha cambiado el icono para ejecutar la aplicacin. Para cambiar elCursor hacemos lo mismo. Lo que pasa es que aqu he encontrado algn que otro problema. Alguna vez he intentado cambiar algn cursor por otro que contena algn programa .exe, y al ejecutarlo, me ha dado error en la aplicacin. As que si cambiis algn cursor probar que os funcione!. Tenis bastantes cursores en Windows --> cursores y cursor. Hay tambin muchas utilidades para crear vuestros propios .cur y utilizarlos. Os dejo una: http://www.aha-soft.com/spanish/iconutils/ Bitmap: Puedes igualmente reemplazar las imgenes. El mejor consejo aqu es que pruebes por ejemplo en Bitmap --> SMALLICONS y cambies la bmp por otra (botn 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 tamao. Puedes sino editar esa .bmp. Para esto tienes que guardarla en el disco duro. Botn derecho y guardar. A mi no me ha dado ningn problema incluso insertndole imgenes de mucho mayor tamao y resolucin. 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 informacin 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 tamao. Poner lo que queris. Yo he puesto: Soy karmany. Ahora le damos al botn de arriba Compilar Script. Si no da ningn 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 botn derecho y decimos borrar recurso. Veris lo que sale

Esto slo lo hace la primera vez que intentamos borrar un recurso, si aceptamos despus ya no sale. Hay que saber que: -No cambiar nada que no haya entre comillas. -Los smbolos % no hay que borrarlos ni cambiarlos de sitio ni borrar la coma que hay detrs ni las letras que van detrs pegadas.(%A0) -El smbolo & significa que la letra que va detrs de este smbolo es el acceso rpido para el programa. En un mismo men no puede ir la misma letra. La letra va subrayada. -Como habris podido observar hay mucha informacin que no deja cambiarla al pulsar en Compilar Script, y abajo sale error, ya explicar ms adelante cmo se puede intentar cambiar. Tambin hay muchsima informacin que probablemente no veamos nunca, as que si queris traducir un programa mi consejo es que traduzcis 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 etceste es el apartado que ms 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 cmo cambiar el texto, as que podis cambiar el acerca de que hay en la sexta lnea y que es el ttulo de la ventana de ayuda --> acerca de. Pulsis despus Compilar Script, (siempre que cambiis algo hay que pulsar Compilar Script) guardar cmo, no olvidar la extensin .exe y probar la aplicacin. Para variar otras caractersticas hay que entender un poco ms: Cada ventana, recurso etc en este ejemplo empieza por object y termina por end. Si os fijis 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:

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 caractersticas de la ventana, algunas de ellas como: Left = 209, Top = 251, ClientHeight = 205, ClientWidth = 296 que indican respectivamente la posicin en la horizontal, posicin 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 ms abajo). Un valor de ejemplo que podis compilar es ClientHeight=2 y veris cmo cambia la ventana. Si ponis otros valores y compilis, el error os lo dar al intentar ejecutar la aplicacin: Error no es una aplicacin win32 vlida 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 lneas indican la posicin como he explicado antes. (Aqu no me deja cambiarlas). - Cursor = crHandPoint indica el cursor que va a tener cuando pasas el icono del ratn 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 tamao. Mayor nmero mayor tamao. -Font.Name = Arial es el tipo de letra. -Font.Style = [fsBold, fsUnderline], indica las caractersticas del texto: Bold es negrita y underline es subrayado. -OnClick = Label3Click activa para que cuando pulsemos (hagamos clic) sobre el texto haga una determinada funcin.

Bueno pues viendo lo que tenemos aqu, vamos a hacer nuestra pequea programacin en texto!! As podremos poner el texto que queramos y donde queramos sin que nos d ese error tan molesto de no es una aplicacin win32 vlida..!!:

Lo primero es definir un texto: object Label9: TLabel y ahora le pongo las caractersticas 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 tenis que hacer es insertar todo esto. Yo lo he insertado detrs de TextHeight = 14. Como si trabajarais en Word. Luego lo compilis y probis la aplicacin. Impresionante verdad!. En este punto yo s que ms de uno se va a animar haciendo muchsimas cosas ms, pero lo dejo en vuestra imaginacin.

Dialog: Es muy curioso cmo acta 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 botn que os he dicho antes?: mostrar u ocultar dilogo. En este caso ocultar dilogo:

Pulsadlo para que veis lo que hace. Pues esa ventana que pone Iniciando descarga, la podis modificar a vuestro gusto. Podis pinchar sobre las dos barras de descarga y sobre las letras iniciando descarga y ponerlas donde vosotros queris. Aqu porque no salen botones (botones de aceptar, cancelar etc), pero podis pinchar igualmente sobre ellos y modificar la posicin como queris. Esta es una de las maneras para modificar los recursos, pero podemos hacerlo de otras formas. Otra forma es variar el cdigo 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

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 cdigo en el siguiente prrafo. Una manera ms de variar aqu los recursos es pulsando con el botn derecho (Cuando est mostrado el dilogo). Sale un men y podis insertar control, editar control, borrar control, editar dilogo y ocultar dilogo. Es una forma muy fcil de editar. Voy a poner un ejemplo sencillo para entender tambin cmo se modifica el cdigo. Nos encontramos aqu de nuevo:

Pulsamos sobre la ventana que pone Dialog 51 con el botn derecho y seleccionamos insertar control. Como en los ejemplos que hemos puesto arriba, vamos aqu tambin a insertar un texto label que diga por ejemplo: Espere. Para ello en el men desplegable seleccionamos STATIC:

O bien pulsamos sobre la palabra label. Si dejamos el puntero del ratn sobre cada icono nos dice a qu control corresponde. En leyenda poner: Espere. Por lo dems, he cambiado lo que se ve(podis ver cmo se modifica el valor Style): 54020101

Y queda as:

Hay que darse cuenta que al modificar esto de esta forma, hemos cambiado el cdigo que pareca tan complicado al principio. Acabamos de insertar en la ventana un control label. Vamos a ver cmo se ha puesto en el cdigo: 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 informacin, como la que he puesto al inicio, que nos puede avisar o comunicar cualquier cosa: desde la versin del programa hasta.... los das que nos quedan para utilizar el programa. Qu se hace para evitar esta desagradable ventana de informacin?, pues, ya veris pero no siempre, que borrando la carpeta con todos sus recursos ya no vuelve a salir. En el ejemplo anterior sera 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 cmo 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 Accin --> Aadir un nuevo recurso. Abrir archivo con nuevo recurso y vamos a buscar el icono.ico. Elegir el que queris, yo he elegido uno de color verde. Seleccionarlo. En tipo de recurso ya se tendr que haber puesto ICONGROUP y en nombre de recurso ponis el que queris: NUEVOICONO he puesto yo. Le dais a aadir recurso. Para ver si est bien insertado nos vamos a Icon Group y tiene que aparecer nuestro NUEVOICONO (por orden alfabtico). Ahora nos vamos a ir a la ventana donde queremos insertarlo que en este caso est en: Dialog --> 315 por ej. Pulsis sobre el 0 y en la parte de la derecha arriba en ocultar dilogo (o cerrar la ventana). Y ahora vamos a insertar la orden oportuna, insertndola donde queris, yo la he puesto la ltima:

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 copiis directamente tal vez os de error de sintaxis las comillas. Deberis cambiarlas vosotros escribindolas de nuevo. Tras todo esto pulsamos en Compilar Script y ya tenemos el icono. Lo ponemos donde queramos, volvemos a compilar y guardamos.