cantonada cantonada

Modificar menús i altres de programari compilat en Visual Basic 6.0

Exemple pràctic utilitzant EquacionsCAT v2.3.32 Trdv1.3 Disponible aquí.

Per modificar aquest fitxer, el primer que cal fer es descomprimir-lo. Com al menú "Quant a..." explica, el programari està comprimit utilitzant UPX1.24w (estable).

Això es pot necessitar, quan, per exemple has perdut el codi font del programari que has realitzat o disposses d'una versió més antiga...

Eines: UPX 1.24w disponible aquí. Un editor hexadecimal com el ICY Hexplorer que pots trobar aquí. Un editor de recursos com el ResourceHacker que podeu trobar aquí.

Primer hem de descomprimir el paquet. Per a fer-ho realitzem el següent:

 

Command.com

X:\MISDOC~1\UPX124W>upx
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
UPX 1.24w Markus F.X.J. Oberhumer & Laszlo Molnar Nov 7th 2002

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
-1 compress faster -9 compress better
-d decompress -l list compressed file
-t test compressed file -V display version number
-h give more help -L display software license
Options:
-q be quiet -v be verbose
-oFILE write output to `FILE'
-f force compression of suspicious files
-k keep backup files
file.. executables to (de)compress

This version supports: dos/exe, dos/com, dos/sys, djgpp2/coff, watcom/le,
win32/pe, rtm32/pe, tmt/adam, atari/tos, linux/386

UPX comes with ABSOLUTELY NO WARRANTY; for details type `upx -L'.

X:\MISDOC~1\UPX124W>upx -d equCATv2.3.32Trdv1.4.exe <-aquí intentem descomprimir un fitxer previament modificat. Fixeu-vos que he canviat el nom del fitxer per a no confondre versions a "equCATv2.3.32Trdv1.4.exe"
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
UPX 1.24w Markus F.X.J. Oberhumer & Laszlo Molnar Nov 7th 2002

File size Ratio Format Name
-------------------- ------ ----------- -----------
upx: equCATv2.3.32Trdv1.4.exe: internal error: unhandled exception!<-aquí ens dona un error

upx: equCATv2.3.32Trdv1.4.exe: this file has possibly been modified/hacked;
Take care!
<-aquí ens diu que la possible causa es la modificació del fitxer.

X:\MISDOC~1\UPX124W> upx -d equCATv2.3.32Trdv1.4.exe<-ho tornem a intentar amb un fitxer original...
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
UPX 1.24w Markus F.X.J. Oberhumer & Laszlo Molnar Nov 7th 2002

File size Ratio Format Name
-------------------- ------ ----------- -----------
159744 <- 40448 25.32% win32/pe equCATv2.3.32Trdv1.4.exe

Unpacked 1 file.<-aquí ens diu que tot ha anat bé.

X:\MISDOC~1\UPX124W>

 

Un cop descomprimit L'obrim amb el ICY Hexplorer.

Suposem que volem canviar el menú &Arxiu per &Fitxer. Escrivim Ctrl+F i busqueu la paraula Arxiu.

D'acord; fixem-nos en la cadena Arxiu i els seus octets

00 13 03 06 00 26 41 72 78 69 75 00 07 ->Hexadecimal

?? ?? ?? ?? ?? & A r x i u ?? ?? ->Octets

Bé, el primer que apreciem es que la cadena de text està entre 00 00 amb la qual cosa aquests octets són com delimitadors.

El segon que t'has de fixar és en el 06, indica que la cadena que ve a continuació ocupa 6 octets.

el 13 03 són uns indicadors de recursos que especifiquen que es tracta d'un menú i de l'estat del menú (si es visible o no) 03->format de menú normal 02->format de menú extés bé, no ho se del cert. Tot i això modificar aquests recursos és una mica més complicat. Per exemple, per ocultar aquest menú s'hauria de possar:

00 13 02 00 03 04 00 72 78 69 75 00 07

?? ?? ?? ?? ?? ?? ?? r x i u ?? ?? on com abans, l'octet abans del delimitador de la cadena indica la grandària de la cadena. Abans hi ha un 00 que indica no visible, per a fer-lo visible utilitzar 01. Aquesta tècnica es pot utilitzar quan volem reduir en nom del menu ja que ens ocupa dos octets.

El problema que ens presenta la modificació que volem fer es que &Fitxer ocupa un octet més...per sort, el següent menú es diu &Calcular i no crec que hi hagi cap problema per anomenar-lo &Calcula així podem aconseguir un octet. Així doncs modifiquem el fitxer movent els octets un lloc a la dreta i modificant l'octet de grandària del menu Calcula per 08 i ens queda així:

També he aprofitat per traduir un tooltip que s'havia quedat sense traduir...el que surt quan ets sobre la X. Ho he fet sense modificar la seva grandària.

Després he buscat aquesta cadena hexadecimal: 4500710075 que equival a E?q?u i he canviat la versió de la traducció de la 3 a 4.

Un cop fet això modifico les propietats del programa. Per a fer-ho utilitzo l'editor de recursos ResourceHacker.

Canvio la llengua a Català ( change resource language) (1027) i tradueixo les propietats:

Per a que a la propietat idioma surti català heu de canviar també on possa BLOCK "040304B0" el 403 és el codi d'idioma Català. També heu de canviar VALUE "Translation", 0x0403 0x04B0 ; C0A és per Espanyol Internacional.

Un cop fet això torno a comprimir el programa:

X:\MISDOC~1\UPX124W> upx -9 EquCATv2.3.32Trdv1.4.exe

i ja està tot llest.

Imaginem ara que volem canviar l'aspecte del botó Sortir. Tornem a descomprimir el programa i busquem la cadena "&Sortir"

Trobem això:

43 6D 64 53 61 6C 00 04 01 07 00 26 53 6F 72 74 69 72 00 04 58 20 5F 0A BF 04 77 01 11

C m d s a l ?? ?? ?? ?? ?? ?? & S o r t i r ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Observem just abans de la cadena, la grandària i el delimitador.

D'acord, fixem-nos en la part de la dreta del text del botó:

Deprés de la cadena de text, com sempre hi ha el delimitador 00.

A continuació hi ha un 04 que no hem de tocar.

Després un 58 20, això és la posició de la part esquerra del botó. En aquest tipus de dades podem considerar l'octet de la dreta com les desenes i el de l'esquerra com unitats.

5F 0A, això és la posició de la part superior del botó.

BF 04, amplada del botó.

77 01 alçada del botó.

I això es tot per avui.

El resultat els pots trobar a la pàgina d'EquacionsCAT, tot i que només he traduit dues cadenes i ha canviat la traducció d'una altre a més de modificar les propietats i possar l'idioma català.

Has trobat un error? Posa't en contacte en mi utilitzant la secció Contacte.

Anar a Pàgina Principal

Imprimeix la web / Enviar a:
Google