Skip to content

Gill3s0x01/forenPDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ForenPDF

ForenPDF Logo

PDF Forensic Data Extractor

Uma ferramenta Python para coleta forense de metadados, conteúdo de texto, imagens, links e informações estruturadas de arquivos PDF, com geração de hashes de integridade e informações do sistema de arquivos.

📑 Sumário

📌 Descrição

O ForenPDF realiza extração forense detalhada de informações de arquivos PDF para uso em investigações digitais e perícia, incluindo:

  • file_size — tamanho do arquivo em bytes.
  • created_time / modified_time — datas de criação e modificação do arquivo no sistema.
  • hashes — MD5, SHA1, SHA256 para validação de integridade.
  • pdf_version — versão do PDF extraída do cabeçalho.
  • pages — lista com URLs, IPs e e-mails extraídos por página.
  • images — informações das imagens extraídas (com hashes e OCR opcional).
  • links — links identificados no texto e anotações.
  • suspicious — referências a objetos suspeitos (JavaScript, arquivos embutidos).
  • extracted_files — lista de arquivos embutidos extraídos.

📦 Dependências

  • Python 3.8+
  • PyMuPDF (fitz)
  • Pillow (opcional, para OCR)
  • pytesseract (opcional, para OCR)
  • Bibliotecas nativas:
    • hashlib
    • datetime
    • os
    • re
    • json
    • argparse
    • logging

Instalação

pip install PyMuPDF Pillow pytesseract

🛠️ Como Usar

Execute o script pelo terminal ou CMD:

python forenpdf.py arquivo.pdf --out ./saida

Parâmetros principais:

Parâmetro Descrição
pdf Caminho do PDF a analisar
--out Pasta base para saída (opcional)
--no-ocr Desativa OCR mesmo se disponível
--max-xref Máximo de objetos XREF a inspecionar (padrão: 200)
--no-embedded Não extrai arquivos embutidos
--quiet Reduz a verbosidade do log

📋 Relatório Gerado

O relatório JSON (*_manifest.json) gerado inclui:

{
  "file_size": 123456,
  "created_time": "2025-08-11 14:35:21",
  "modified_time": "2025-08-11 14:35:21",
  "hashes": {
    "MD5": "...",
    "SHA1": "...",
    "SHA256": "..."
  },
  "pdf_version": "1.7",
  "pages": [
    {
      "page_number": 1,
      "urls": ["https://exemplo.com"],
      "ips": ["192.168.0.1"],
      "emails": ["contato@exemplo.com"]
    }
  ],
  "images": [
    {
      "page": 1,
      "file": "extracted_images/p1_xref12.png",
      "hash": "sha256...",
      "size": 54321,
      "xref": 12,
      "ocr_snippet": "Texto OCR..."
    }
  ],
  "links": ["https://exemplo.com/link"],
  "suspicious": {
    "javascript_xrefs": [5, 20],
    "embeddedfile_xrefs": [33]
  },
  "extracted_files": ["embedded_files/planilha.xls"]
}

📁 Estrutura de Saída

.
├── evidence_1691768483/
│   ├── original.pdf
│   ├── extracted_images/
│   │   ├── p1_xref12.png
│   │   └── ...
│   ├── embedded_files/
│   │   ├── arquivo_embutido.docx
│   └── reports/
│       ├── original_report.txt
│       └── original_manifest.json

📊 Exemplo de Uso

python forenpdf.py "F:/Investigacao/Amostra.pdf" --out "./caso_amostra"

Saída esperada:

✅ Evidência copiada para ./caso_amostra/original.pdf
✅ Manifest salvo em ./caso_amostra/reports/original_manifest.json
✅ Relatório TXT salvo em ./caso_amostra/reports/original_report.txt
✅ Imagens extraídas em ./caso_amostra/extracted_images

⚠️ Avisos e Boas Práticas

  • Sempre gere e registre hashes antes e depois de manipular arquivos.
  • Mantenha uma cópia imutável do arquivo original.
  • Use ambiente controlado para processamento de PDFs potencialmente maliciosos.
  • O OCR pode extrair texto sensível; revise antes de compartilhar.
  • A extração de arquivos embutidos pode conter malware; analise com segurança.

📚 Referências Técnicas


📖 Licença

MIT License. Uso livre para fins acadêmicos, profissionais e periciais.

👨‍💻 Autor

Gilles Perito Digital | OSINT & Security Developer Specialist GitHub: @Gill3s0x01

About

🕵️‍♂️ Ferramenta Python para extração forense de metadados, texto, imagens, links e informações estruturadas de arquivos PDF, com geração de hashes e relatório detalhado.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages