Analisando propostas

Modificação no algoritmo do compressor Upx

Publicado em 11 de Outubro de 2025 dias na TI e Programação

Sobre este projeto

Aberto

Estou procurando por um programador mais experiente que eu em C/C++ para modificar o compressor UPX para que ele suporte encriptação AES256. O objetivo é criar uma versão personalizada do UPX que possa compactar e encriptar arquivos executáveis com segurança.

Segundo o site oficial do compressor (https://upx.github.io/), o upx é um empacotador de executáveis seguro, portátil, extensível e de alta performance para diversos formatos de arquivos executáveis. Ele é compatível com arquivos executáveis de Windows, Linux e MacOS, também funciona em DLLs. Esse empacotador diminui o tamanho de arquivos executáveis em mais de 50% do tamanho original (em alguns casos).

IMPORTANTE: Quero que a modificação do compressor seja feita apenas em Windows, para ser usado nesse sistema operacional e em programas desse mesmo sistema. Existe a possibilidade de eu futuramente solicitar a modificação para Linux e MacOS, mas aí eu farei outra proposta financeira em outro momento.

Sobre o UPX:
-Acesse o site https://upx.github.io
-O código fonte pode ser baixado ao clicar em "View source on GitHub";
-A última versão já compilada pode ser baixada ao clicar em "Download latest release".

Ou você pode baixar o arquivo anexado, que já possui uma implementação de AES256.

Contexto Geral do Projeto

Tarefas: 1. Estudar o código-fonte do UPX e entender sua arquitetura; 2. Implementar a encriptação AES256 no UPX, garantindo que os arquivos compactados sejam seguros e possam ser descompactados corretamente; 3. Testar e depurar a implementação para garantir que ela seja estável e segura; 4. Documentar as modificações realizadas e fornecer instruções para compilação e uso; 5. Entregar o código-fonte modificado e compilado. OBS: Eu já tenho uma implementação em C do algoritmo AES256. Sobre o uso do UPX e a modificação desejada: O UPX comprime arquivos executáveis mantendo todas as suas funcionalidades e características, até mesmo o ícone do arquivo original. Na hora de comprimir um arquivo executável, um novo arquivo executável é criado contendo o método de descompactação do upx junto ao conteúdo integral (compactado) do arquivo original, quando esse novo arquivo é executado, o método de descompactação é invocado e ele descompacta o conteúdo do arquivo diretamente na memória ram, sem passar pelo hd. Eu desejo que seja feita uma modificação para que antes de compactar o arquivo executável seja solicitada uma senha, que será usada para encriptar o arquivo original antes da compactação, e quando esse novo arquivo for gerado, ao executa-lo ele deve me pedir a senha, que será usada para decriptar o conteúdo do arquivo antes de descompacta-lo diretamente na memória. Resumindo (a parte da compactação de executáveis): 1- Eu abro o programa (nosso UPX modificado) e ele me pede o arquivo que quero compactar e uma senha; 2- O nosso programa encripta com a senha e compacta o arquivo gerando um outro executável. Resumindo (a parte da execução do arquivo executável gerado com o nosso UPX modificado): 1- Eu executo o arquivo gerado anteriormente com o nosso UPX modificado e ele me pede uma senha; 2- Ele decripta usando a senha e descompacta o arquivo diretamente na memória.

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho uma ideia geral
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: Não estabelecido

Habilidades necessárias