Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Monica_Barcelona en 24 Abril 2010, 22:38 pm



Título: Cambiar icono a exe por codigo ASM
Publicado por: Monica_Barcelona en 24 Abril 2010, 22:38 pm
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


Título: Re: Cambiar icono a exe por codigo ASM
Publicado por: [Zero] en 25 Abril 2010, 00:31 am
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:

Código
  1. format PE GUI 4.0
  2. entry start
  3.  
  4. include 'C:\fasm\include\win32ax.inc'
  5. include 'C:\fasm\include\api\kernel32.inc'
  6. include 'C:\fasm\include\api\user32.inc'
  7.  
  8. struct GRPICONDIRENTRY
  9.        Reserved1               dw ?
  10.        ResourceType            dw ?
  11.        ImageCount              dw ?
  12.        iWidth                  db ?
  13.        iHeight                 db ?
  14.        Colors                  db ?
  15.        Reserved2               db ?
  16.        Planes                  dw ?
  17.        BitsPerPixel            dw ?
  18.        ImageSize               dd ?
  19.        ResourceID              dw ?
  20. ends
  21.  
  22.  
  23. section '.data' data readable writeable
  24. ;Proc ChangeIcon
  25. hFileIcon           dd                          ?
  26. hUpdateRes          dd                          ?
  27. FileIconSize        dd                          ?
  28. Buffer              dd                          ?
  29. grIcon              GRPICONDIRENTRY             ?
  30. BufferSize          dd                          ?
  31.  
  32.  
  33.  
  34.  
  35. section '.code' code readable executable
  36.  
  37. start:
  38.       ;stdcall ChangeIcon,szExeFileName,szIconFileName
  39.       ret
  40.  
  41. proc ChangeIcon,nExeFile,nIconFile
  42.     invoke BeginUpdateResource,[nExeFile],TRUE
  43.     mov [hUpdateRes],eax
  44.  
  45.     invoke CreateFile,[nIconFile],GENERIC_READ,0,0,OPEN_EXISTING,0,0
  46.     mov [hFileIcon],eax
  47.  
  48.     invoke GetFileSize,[hFileIcon],0
  49.     mov [FileIconSize],eax
  50.  
  51.     invoke GlobalAlloc,GPTR,[FileIconSize]
  52.     mov [Buffer],eax
  53.  
  54.     invoke ReadFile,[hFileIcon],[Buffer],[FileIconSize],dwBytes,0
  55.     invoke CloseHandle,[hFileIcon]
  56.  
  57.     add [Buffer],22
  58.     sub [FileIconSize],22
  59.  
  60.     invoke UpdateResource,[hUpdateRes],RT_ICON,1,0,[Buffer],[FileIconSize]
  61.     invoke RtlZeroMemory,grIcon,22
  62.  
  63.     mov [grIcon.ResourceType],1
  64.     mov [grIcon.ImageCount],1
  65.     mov [grIcon.iWidth],32
  66.     mov [grIcon.iHeight],32
  67.     mov [grIcon.Planes],2
  68.     mov [grIcon.BitsPerPixel],32
  69.     push [BufferSize]
  70.     pop [grIcon.ImageSize]
  71.     mov [grIcon.ResourceID],1
  72.  
  73.     invoke UpdateResource,[hUpdateRes],RT_GROUP_ICON,1,0,grIcon,22
  74.     invoke EndUpdateResource,[hUpdateRes],FALSE
  75.     invoke GlobalFree,[Buffer]
  76.     ret
  77. endp                      
  78.  
  79. section '.idata' import data readable writeable
  80.  
  81.  library kernel32,   'KERNEL32.DLL',\
  82.                  user32,     'USER32.DLL'
  83.  
  84.  

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.


Título: Re: Cambiar icono a exe por codigo ASM
Publicado por: Monica_Barcelona en 25 Abril 2010, 18:30 pm
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)


Título: Re: Cambiar icono a exe por codigo ASM
Publicado por: [Zero] en 25 Abril 2010, 21:49 pm
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


Título: Re: Cambiar icono a exe por codigo ASM
Publicado por: Monica_Barcelona en 25 Abril 2010, 21:52 pm
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


Título: Re: Cambiar icono a exe por codigo ASM
Publicado por: [Zero] en 26 Abril 2010, 15:28 pm
Nada  ;)


Título: Re: Cambiar icono a exe por codigo ASM
Publicado por: Riki_89D en 26 Abril 2010, 21:29 pm
Bine eshoo