Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JP-Linux/descompactador

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

8 Commits

Repository files navigation

🔓 Descompactador de Arquivos Avançado

GitHub Pages Python License: MIT

Uma ferramenta profissional para descompactação segura de arquivos com proteção contra vulnerabilidades e tratamento robusto de erros.

🛡️ Novos Recursos de Segurança

  • Proteção contra Path Traversal Attacks
  • Verificação rigorosa de permissões
  • Sanitização de caminhos durante extração
  • Limpeza automática em caso de falha
  • Manutenção de permissões seguras (0700)
  • Detecção de arquivos maliciosos
  • Logs detalhados em arquivo (descompactador.log)

📋 Recursos

  • Formatos suportados: .zip, .tar, .tar.gz, .tar.bz2, .tar.xz
  • Detecção automática de formato com prioridade para combinações
  • Validação de integridade de arquivos (teste ZIP completo)
  • Prevenção contra extração de arquivos perigosos
  • Códigos de saída diferenciados para cada tipo de erro
  • Mensagens intuitivas com emojis visuais
  • Suporte a permissões originais (quando seguras)

📦 Pré-requisitos

  • Python 3.8+
  • Nenhuma dependência externa necessária

⚙️ Instalação

git clone https://github.com/JP-Linux/descompactador.git
cd descompactador
chmod +x descompactador.py # Tornar executável

🚀 Como Usar

Descompactação básica:

./descompactador.py arquivo_compactado.extensao

Especificando diretório de saída:

./descompactador.py arquivo_compactado.zip saida/

Exemplos:

# Descompactar .tar para diretório específico
./descompactador.py backup.tar backup/
# Descompactar .tar.gz mantendo permissões
./descompactador.py backup.tar.gz documentos/
# Tentar extrair arquivo malicioso (será bloqueado)
./descompactador.py arquivo_perigoso.zip

🛑 Possíveis Erros e Códigos de Saída

Código Erro Descrição
0 Sucesso Extração concluída com êxito
1 Erros conhecidos Arquivo inválido/formato não suportado
2 Erro inesperado Exceção não tratada (verifique logs)
130 Interrupção usuário Processo cancelado (Ctrl+C)

Exemplos de mensagens:

# Tentativa de path traversal
❌ Erro de processamento: Tentativa de path traversal detectada: ../../etc/passwd
# Permissão negada
❌ Erro de processamento: Permissão negada para ler o arquivo: secreto.zip
# Arquivo corrompido
❌ Erro de processamento: Arquivo ZIP corrompido: documento.docx

🧩 Como Funciona (Arquitetura Segura)

graph TD
 A[Início] --> B[Validar arquivo]
 B --> C{Arquivo válido?}
 C -->|Não| D[Erro: Arquivo inválido]
 C -->|Sim| E[Detectar formato]
 E --> F{Formato suportado?}
 F -->|Não| G[Erro: Formato não suportado]
 F -->|Sim| H[Criar diretório seguro]
 H --> I[Extrair arquivos]
 I --> J[Sanitizar cada caminho]
 J --> K{Path traversal?}
 K -->|Sim| L[Abortar e limpar]
 K -->|Não| M[Escrever arquivo]
 M --> N[Aplicar permissões seguras]
 N --> O[Log de sucesso]
Loading

🔒 Medidas de Segurança Implementadas

  1. Path Traversal Prevention: Verifica cada caminho extraído
  2. Safe Permissions:
    • Diretórios criados com 0700
    • Permissões de arquivos filtradas (remove setuid/sticky bits)
  3. Secure Cleanup: Remove arquivos parciais em caso de erro
  4. Corruption Checks: Teste de integridade completo em arquivos ZIP
  5. Input Validation: Verificação rigorosa de formatos e permissões
  6. Activity Logging: Auditoria completa em arquivo de log

👤 Autor

Jorge Paulo Santos
GitHub Email

💝 Suporte ao Projeto

Se este projeto foi útil para você, considere apoiar meu trabalho através do GitHub Sponsors:

Sponsor

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

About

Este código pode ser útil para usuários que precisam automatizar o processo de descompactação de arquivos em seus sistemas.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /