Hola chikos(K) como andan?
pues bueno estoy buscando como cambiar el icono de une exe (exe que programo yo en masm32) pero por código,lo e encontrado pero me dicen que utilicé programas tipo ResourceHack etc etc yo quiero hacerlo por código
salu2
Bueno, he estado buscando en una partición vieja éste code que daba por hecho que había perdido :P. Es una traducción de un code en C de Tughack para FASM que hice hace tiempo:
format PE GUI 4.0
entry start
include 'C:\fasm\include\win32ax.inc'
include 'C:\fasm\include\api\kernel32.inc'
include 'C:\fasm\include\api\user32.inc'
struct GRPICONDIRENTRY
Reserved1 dw ?
ResourceType dw ?
ImageCount dw ?
iWidth db ?
iHeight db ?
Colors db ?
Reserved2 db ?
Planes dw ?
BitsPerPixel dw ?
ImageSize dd ?
ResourceID dw ?
ends
section '.data' data readable writeable
;Proc ChangeIcon
hFileIcon dd ?
hUpdateRes dd ?
FileIconSize dd ?
Buffer dd ?
grIcon GRPICONDIRENTRY ?
BufferSize dd ?
section '.code' code readable executable
start:
;stdcall ChangeIcon,szExeFileName,szIconFileName
ret
proc ChangeIcon,nExeFile,nIconFile
invoke BeginUpdateResource,[nExeFile],TRUE
mov [hUpdateRes],eax
invoke CreateFile,[nIconFile],GENERIC_READ,0,0,OPEN_EXISTING,0,0
mov [hFileIcon],eax
invoke GetFileSize,[hFileIcon],0
mov [FileIconSize],eax
invoke GlobalAlloc,GPTR,[FileIconSize]
mov [Buffer],eax
invoke ReadFile,[hFileIcon],[Buffer],[FileIconSize],dwBytes,0
invoke CloseHandle,[hFileIcon]
add [Buffer],22
sub [FileIconSize],22
invoke UpdateResource,[hUpdateRes],RT_ICON,1,0,[Buffer],[FileIconSize]
invoke RtlZeroMemory,grIcon,22
mov [grIcon.ResourceType],1
mov [grIcon.ImageCount],1
mov [grIcon.iWidth],32
mov [grIcon.iHeight],32
mov [grIcon.Planes],2
mov [grIcon.BitsPerPixel],32
push [BufferSize]
pop [grIcon.ImageSize]
mov [grIcon.ResourceID],1
invoke UpdateResource,[hUpdateRes],RT_GROUP_ICON,1,0,grIcon,22
invoke EndUpdateResource,[hUpdateRes],FALSE
invoke GlobalFree,[Buffer]
ret
endp
section '.idata' import data readable writeable
library kernel32, 'KERNEL32.DLL',\
user32, 'USER32.DLL'
Creo recordar de funcionaba :-\.
Saludos
Edito: Revisando el mensaje me di cuenta de que no es lo que querías :xD. Para cambiar el icono de TU exe basta con meterlo en un resource. Yo utilizo Radasm o Masmed como IDE's, que tienen editor de recursos incorporado y cambias el icono con un par de clicks.
Hola Hacker (K) ^^ gracias por tu respesuta,el rpoblema es que nose como incrustar recursos i otra cosa,me gustarica hacerlo por codigo,es para desde un ejecutable cambiar el icono de otro ejecutable :P
un saludo (K)
Si quieres hacerlo por code puedes utilizar el código que te puse arriba, debería funcionar. No te llevará demasiado trabajo pasarlo a MASM :P.
Saludos
Vale,voi a probar aver que tal sale
un beso y gracias Hacker_zero ya te contare como me a ido
EI: juntando mensajes.
Hei hacker_Zero,alfinal me decidi por no hacerlo por codigo y lo hice con recursor,me salio uy bien ^^ pero me surje una duda a rraiz de eso,si por ejemplo en el recurso pongo un RCDATA por ejemplo un exe,despues como pueod estraer ese exe desde el ejecutable en que este incrustado??
salu2
EI: juntando mensajes, la proxima borro.
Bueno ya no hace falta,encontre un codigo que hace eso en ASM,de todas formas gracias por tu ayuda (K)
saludos
Nada ;)
Bine eshoo