FORUM DARKERS

Tecnologia & Informática => Programação => C/C#/C++ => Topic started by: Rafael93 on 02 de July , 2008, 10:54:28 PM

Title: Como salvar ícones (HICON)
Post by: Rafael93 on 02 de July , 2008, 10:54:28 PM
tipo como salvo os HICON da winapi to fazendo um programa
meio instalador eu consegui "ler" o ícone dos resources sem a função
padrão LoadIcon, LoadImage, etc. fiz uma LPVOID aki e deu certo
porém eu queria salvar o ícone eu consegui somente se o ícone no .rc
for RT_ICON mas se for assim eu já não consegui transformá-lo em HICON

maas então como salvo um ícone num arquivo?
eu já tentei salvar o código lido pelo LockResource
mas o programa não salva o ícone =/
Title: Re: Como salvar ícones (HICON)
Post by: blackwinner on 03 de July , 2008, 12:58:49 AM
como assim, num executavel ou em um .ico?

Você já tentou por beginupdate~ e updateresource?
Title: Re: Como salvar ícones (HICON)
Post by: Rafael93 on 03 de July , 2008, 02:02:32 AM
eu tenho um executável
que foi compilado com o arquivo de resource

IconInstaller.ico ICON "IconInstaller.ico"

resumindo.. eu quero salvar um HICON
para um arquivo *.ico como faço isso?

já tentei assim:

HICON Icon = LoadIcon(0,"IconInstaller.ico");
FILE* IconFile = fopen("Icon.ico","wb");
fwrite(Icon,sizeof Icon,1,IconFile);
fclose(IconFile);

mas não deu certo =/ ele salva um arquivo
mas não é o meu ícone...
Title: Re: Como salvar ícones (HICON)
Post by: blackwinner on 03 de July , 2008, 02:09:14 AM
Acredito que pra isso você vai ter que salvar o código to arquivo *.ico, não como um icone no resource mas como um RCData que é justamente para transferencia de executaveis, dlls e afins em apenas um executavel.. o código fica todo la.

Você abre, pega o código e escreve em um arquivo normalmente.

Normalmente se usa isso em trojans e keyloggers que criam servidores.
Title: Re: Como salvar ícones (HICON)
Post by: Rafael93 on 03 de July , 2008, 02:20:42 AM
guardar tudo que o executável precisa em seus resources...
já fiz isso uma fez testar essa função, imagina seu pc não
tem a dll para meu programa rodar então vc o abre e ele copia
a dll dos resources para a pasta dele... xD

eu tentei fazer assim no resource

IconInstaller.ico 3 "IconInstaller.ico" // 3 = RT_ICON

já assim ele extraía normalmente como os outros
usando uma função que fiz aki CopyResourceToFile(...);

mas na hora de fazer a conversão de resource
para HICON eu não consegui o programa dava akele erro
que precisa ser fechado

eu pensei eu ia consegui fazer isso se eu extraísse primeiro
e o carregasse usando uma função q eskeci o nome agora
soh q ai se o usuário iniciasse o programa clicando no botão direito
"executar como..." e marca proteger o computador
simplesmente a função do ícone não iria funcionar e tlvz
o programa até retornaria um erro por causa do ícone =/

e tb outra coisa é que se eu tentar usar código que eu recebi
da função LockResource(); para salvar no arquivo se o IconInstaller
for ICON
Title: Re: Como salvar ícones (HICON)
Post by: Rafael93 on 03 de July , 2008, 02:24:57 AM
desculpa por postar de novo... ¬¬.. to sem tempo
ateh eskeci do resto...
tipo
se o LockResource for de RT_ICON ele salva de um jeito
se eu achar o RT_ICON_GROUP e depois o LockResource no ICON
o código retornado é outro.
Title: Re: Como salvar ícones (HICON)
Post by: blackwinner on 03 de July , 2008, 02:43:34 AM
kkkk, cara, pra te falar a verdade.. eu to viajando no que tu fala..
Tu consegue ser mais complicado explicando algum problema do que eu. :)
Title: Re: Como salvar ícones (HICON)
Post by: Rafael93 on 03 de July , 2008, 07:05:27 PM
resumindo então... responda apenas a essa pergunta...

como salvo um HICON pro arquivo??
Title: Re: Como salvar ícones (HICON)
Post by: blackwinner on 03 de July , 2008, 10:39:58 PM
Pra te falar a verdade.. eu não tenho certeza se um .ico tem os mesmos headers quem um arquivo bitmap como um .jpeg.. essa madrugada, eu vo tenta ver se consigo pra você, blz?
Title: Re: Como salvar ícones (HICON)
Post by: Rafael93 on 03 de July , 2008, 10:41:49 PM
blz
tipo eu tentei salvá-lo usando os bitmap header
mais me enrolei aki ¬¬

ai tentei de novo msm assim não consegui
na hora q eu falei .. pronto akbei não vai da errado...

o programa dá erro e fecha ¬¬