Depois de um ano Explorando e Aprendendo muuuuito, várias vezes recorremos aqui ao software Resource Hacker, um editor de recursos freeware. Fiz então este novo tutorial, muito mais didático e abrangente. Uso nos exemplos o Resource Hacker em português, numa tradução feita por mim. O programa foi descontinuado pelo autor, não vejo nada demais em soltar a versão em português. Me ofereci para distribuir uma tradução oficial e simplesmente não obtive resposta. Não publico ela por respeito a ele e para evitar encrencas.
TUTORIAL DO RESOURCE HACKER
por Marcos Elias
O que é o Resource Hacker?
É um editor de recursos de programas no formato win32/pe. Vamos entender rapidamente o que são esses "recursos". Os programas para Windows mantém uma estrutura interna com determinadas características comuns na plataforma Windows. Entre essas características está a possibilidade de armazenamento de arquivos e informações dentro de programas executáveis ou bibliotecas (DLLs). O conteúdo armazenado de uma forma especial é chamado de "recurso", "resource", em inglês. Isso tem muitas vantagens, pois traz meio fácil de alterar esses recursos depois. Produtores de software, por exemplo, podem armazenar os textos do programa como um recurso, e então facilitar a tradução do mesmo, sem precisar recompilar o programa. Além disso, outros programas podem exibir recursos de um executável ou DLL, desde que saibam o nome do mesmo. Exemplos de recursos possíveis? Textos, imagens, ícones, telas de programas, enfim, qualquer tipo de arquivo. O Resource Hacker é um software que abre um arquivo que contenha recursos, e permite visualizar, salvar, renomear, adicionar ou excluir determinados recursos, ou ainda editá-los.
O que dá para fazer com o Resource Hacker?
Editar recursos! Um exemplo: dá para trocar o texto do botão "Iniciar" do Windows, pois esse texto fica num recurso de texto dentro do arquivo "explorer.exe", na pasta do Windows. Basta abrir o explorer.exe no Resource Hacker, localizar o ponto que contém o texto "Iniciar", trocar pelo que você quiser e salvar. E mais: dá para trocar imagens. Dá para excluir recursos também. Raramente dará para crackear programas, pois o Resource Hacker permite editar os recursos, que são dados num formato específico, e não o código em si. Para crackear programas normalmente se usam os chamados diassemblers, que tentam interpretar o programa e exibir as instruções em Assembler, uma linguagem de programação. Ou editores hexadecimais, que editam diretamente os bytes do arquivo (um bom e gratuito é o Hex Editor XVI 32). Mas isso não é para qualquer um, Assembler é uma linguagem de baixo nível, quase que incompreensível para os humanos normais rsrs. E para editar os bytes diretamente é preciso muita paciência e ter idéia de onde mexer...
O Resource Hacker é um programa hacker?
O que você consideraria um "programa hacker"? O Resource Hacker permite "hackear" recursos, modificar programas. Normalmente não podemos redistribuir os arquivos modificados, pois isso violaria a licença de uso dos mesmos, e não é legal para o produtor. Mas o Resource Hacker é uma ferramenta, dependendo do uso que se fará dele, você pode ser considerado do mal ou do bem. Programadores como eu, por exemplo, podem se beneficiar muito de um programa como ele. Desenvolvo software em Delphi, é um tanto chato adicionar recursos pela linha de comando nos meus arquivos. Eu crio então um arquivo de recurso apenas (sem ser um programa, de extensão ".res"), adiciono e altero esse arquivo usando o Resource Hacker. Depois, adiciono esse arquivo já pronto ao meu programa, usando para isso o próprio Resource Hacker, ou o compilador do Delphi. Isso vale para outros ambientes de programação também, apenas citei o Delphi como exemplo porque é o que eu uso.
Como usar o Resource Hacker?
Você deve saber mais ou menos o que você quer fazer. Se não sabe, pode ir fuçando nos programas, certamente você encontrará coisas interessantes, como imagens e ícones usados internamente por eles, além de vídeos AVI, como aquelas pastinhas da cópia de arquivos do Windows, por exemplo. E poderá salvar ou trocar essas imagens, entre outras coisas.
Basta abrir o Resource Hacker e carregar nele o arquivo que você quer explorar ou modificar. Arraste o arquivo para a tela do Resource Hacker, ou então vá ao menu "Arquivo > Abrir" e localize o arquivo desejdo.
Vamos ver como salvar alguns ícones do Windows. O arquivo "shell32.dll", na pasta "system32", contém muitos ícones. Você pode salvá-los :)
Abra o Resource Hacker, clique em "Arquivo > Abrir" e localize o arquivo "shell32.dll". No Windows 9x/Me ele fica na pasta "system", e esta fica dentro da pasta do Windows; no 2000/XP ou superior, o "shell32.dll" está na "system32" (ou "system64", se seu sistema for de 64 bits).
Ele mostra no painel esquerdo diversas "pastinhas", com os grupos de recursos disponíveis: textos, menus, imagens em bitmap, cursores, ícones, etc. Ao selecionar um item no lado esquerdo, o mesmo será exibido no painel direito. Os ícones ficam melhor visualizados no grupo "Icon Group". Abra essa "pastinha", como você faria no Windows Explorer, se fosse uma pasta de arquivos. Ela terá "subpastas", com o nome que o autor do programa deu. Abra alguma delas e veja o ícone:
Para salvá-lo, clique com o botão direito no número da linguagem (no exemplo da imagem acima, é no "1046"), e escolha "Salvar...". Veja as diferenças entre os três itens "Salvar":
- Salvar todos os recursos: Salva todos os recursos do arquivo aberto na pasta definida, e salva o "índice do recurso", um arquivo de texto de extensão ".rc". Seria algo como um arquivo de lista de reprodução de músicas, ele lista o nome do arquivo, o nome do recurso, e outras informações. Compiladores de recursos poderiam utilizá-lo para gerar um novo arquivo ".res". Isso normalmente só interessa a programadores.
- Salvar recursos [Icon Group]: Salva todos os recursos do grupo selecionado, no caso, os ícones. De forma semelhante ao item anterior, ele criará o arquivo ".rc". Ideal para usuários pegarem todos os ícones de um executável, todas as imagens, etc. Ou programadores mesmo, dependendo do que se quer fazer.
- Salvar [Icon Group : 7 : 1046]: Salva apenas o recurso selecionado. Ideal para salvar uma única imagem, vídeo ou ícone... Entenda o que aparece entre colchetes: "Icon group" é o grupo do recurso, no caso, o grupo dos ícones. "7" é o nome do recurso, isso poderia variar de recurso para recurso, claro. No caso dos ícones, normalmente eles são numerados. E o último número, no caso "1046", é a linguagem do recurso. Tecnicamente um arquivo pode armazenar versões diferentes de recursos, em diversos idiomas, com os mesmos nomes (mas separados pelo código do idioma; 1046 é o código do "Português do Brasil"). O programa carrega ao ser executado o recurso do mesmo idioma da versão de Windows utilizada pelo usuário, e carrega outro padrão se não tiver um recurso definido para o idioma usado.
Para salvar apenas o ícone selecionado, então, escolha a terceira opção "Salvar". Teste com as outras e veja a diferença! Nota: mandar salvar todos os recursos pode demorar um pouco, em arquivos grandes.
Veja que o Resource Hacker não é para qualquer um, apesar de ser relativamente simples de ser usado. Você deve saber "o que você quer fazer", ou no mínimo seguir um tutorial, como os diversos já publicados aqui no Explorando.
O item "Substituir recurso" do menu pop-up (ou do menu "Ação", que possui mais comandos) permite trocar um recurso por outro. Ele foi usado, por exemplo, na dica de como trocar os ícones das pastas do Windows.
O Resource Hacker tem uma característica interessante. Ele permite localizar textos, palavras, frases ("strings", falando tecnicamente), dentro do arquivo. Faça isso pelo menu "Visualizar > Localizar texto ou string". Isso foi usado para encontrar o texto do botão "Iniciar", e então alterá-lo (veja aqui).
Ao alterar textos em geral, deve-se clicar no botão "Compilar script" que aparecerá acima do quadro de edição. Isso é necessário para criar a estrutura do script, e então depois o arquivo pode ser salvo. Cuidado com as aspas e chaves, para não estragar (corromper) o arquivo.
Ao salvar, o Resource Hacker cria na primeira vez um backup do arquivo, com o trecho "_original" depois do nome. Você não pode salvar arquivos em uso ou bloqueados pelo sistema, pois de qualquer forma não haveria como sorescrevê-los. Nesses casos, prefira usar o "Salvar como", defina então outro nome ou salve em outro local. Depois, com o Windows desligado você substitui os arquivos (por exemplo, logado em outro sistema se tiver dual boot, ou com um disquete de boot, ou com um sistema que rode do CD, como o Linux ou até mesmo com o Windows que roda do CD). Isso se faz necessáiro, por exemplo, ao alterar o "shell32.dll" do Windows. No caso do "explorer.exe", para trocar o texto do botão Iniciar, você pode fechá-lo pelo gerenciador de tarefas (guia "Processos"), e então salvar e depois reabrir o explorer (no gerenciador de tarefas, escolha "Arquivo > Executar nova tarefa" e digite "explorer.exe").
É isso. Use com responsabilidade e sabedoria. E lembre-se, o Resource Hacker não faz milagres, ele é uma ferramenta, útil ferramenta. Existem outros exploradores de recursos, é claro, como o open source XN Resource Editor.
Veja como obter o Resource Hacker em português e também o XN Resource Editor (este em inglês) em geek.mepsites.cjb.net.
NOTA IMPORTANTE: modificar executáveis prontos pode ser considerado uma violação aos termos de licença de uso do software. Você pode fazer isso para uso pessoal, mas nunca distribuir um executável modificado sem a expressa autorização do seu produtor. Se não houver indicação do produtor, aí a história é outra... Ao adquirir uma música, um bem imaterial, vc pode ouvi-la de trás pra frente, mais rápido, mais devagar... Como quiser, e até misturada com outras músicas. Com os softwares você pode agir basicamente da mesma forma, portanto, não é pecado algum fazer o que eu fiz e que tantas outras pessoas fazem e mostrar as imagens. Você usa um software como bem quiser, modificado ou não, funcionando pra você está bom. Não pirateie nem distribua cópias modificadas, por você mesmo. Agora, se quiser... aí o problema e a responsabilidade são todos seus.