Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sherloq — Um conjunto de ferramentas forenses de imagem digital de código aberto | Kitploit
Ferramentas/GitHubGitHub/guidobartoli/sherloq
Análise ForenseEsteganografiaForensia DigitalCriptografiaAprendizado de MáquinaPapers e PesquisaAprendizado e Educação
GitHubguidobartoli/sherloq

sherloq

Um conjunto de ferramentas forenses de imagem digital de código aberto

Ver Repositório
3.2k305há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Sherloq
Um conjunto de ferramentas forenses de imagem digital open source

Introdução

"Análise Forense de Imagem é a aplicação da ciência da imagem e expertise no domínio para interpretar o conteúdo de uma imagem e/ou a própria imagem em questões legais. As principais subdisciplinas da Análise Forense de Imagem com aplicações na aplicação da lei incluem: Fotogrametria, Comparação Fotográfica, Análise de Conteúdo e Autenticação de Imagem." (Scientific Working Group on Imaging Technologies)

Sherloq é um projeto de pesquisa pessoal sobre implementação de um ambiente totalmente integrado para forense de imagem digital. Não é destinado como uma ferramenta automática que decide se uma imagem é falsificada ou não (essa ferramenta provavelmente nunca existirá...), mas como um companheiro na experimentação de vários algoritmos encontrados em artigos de pesquisa e workshops recentes.

Embora muitas soluções comerciais tenham preços de varejo altos e muitas vezes reservadas apenas para agências de aplicação da lei e governamentais, este conjunto de ferramentas visa ser um framework extensível e um ponto de partida para qualquer pessoa interessada em fazer experimentos nesta aplicação particular de processamento digital de sinais.

Acredito firmemente que segurança por obscuridade é a maneira errada de oferecer qualquer tipo de serviço forense (ou seja, "Usando este software proprietário, garanto que esta foto é pura... e você tem que confiar em mim!"). Seguindo a filosofia open-source, todos deveriam ser capazes de experimentar várias técnicas por conta própria, adquirir conhecimento e compartilhá-lo com a comunidade... ainda melhor se contribuírem com melhorias de código! :)

  • História
  • Funcionalidades
  • Capturas de Tela
  • Instalação
  • Estrutura do Projeto
  • Atualizações
  • Bibliografia

História

A primeira versão foi escrita em 2015 usando C++11 para construir um utilitário de linha de comando com muitas opções, mas logo se tornou muito pesado e pouco interativo. Essa versão podia ser compilada com CMake após instalar as bibliotecas OpenCV, Boost e AlgLib. Esta primeira prova de conceito oferecia cerca de 80% das funcionalidades planejadas (veja abaixo a lista completa).

Embora também incluísse novos algoritmos, a versão de 2017 adicionou principalmente uma GUI multi-janela baseada em Qt para fornecer uma melhor experiência do usuário. Múltiplas análises podiam ser exibidas na tela e um visualizador rápido de zoom/rolagem foi implementado para facilitar a navegação na imagem. Esse projeto podia ser compilado com Qt Creator com Qt 5 e OpenCV 3 e cobria cerca de 70% das funcionalidades planejadas.

Avançando para 2020, quando decidi portar tudo para Python (PySide2 + Matplotlib + OpenCV) para facilitar o desenvolvimento e a implantação. Embora esta iteração esteja apenas começando e eu ainda tenha que portar todo o código anterior para a nova plataforma, acredito que esta será a forma final do projeto (desde que alguém não se voluntarie para desenvolver uma bela aplicação web!).

Estou feliz em compartilhar meu código e entrar em contato com qualquer pessoa interessada em melhorá-lo ou testá-lo, mas lembre-se de que este repositório não se destina a distribuir um produto final, meu objetivo é apenas acompanhar publicamente o desenvolvimento de uma ferramenta educacional despretensiosa, então espere bugs, código não polido e funcionalidades faltando! ;)

Funcionalidades

Esta lista contém as funções que o kit de ferramentas (esperançosamente) fornecerá quando o estágio beta for alcançado (NOTA: funções exibidas em itálico no programa ainda não foram implementadas!).

Interface

  • GUI moderna baseada em Qt com gerenciamento de múltiplas janelas de ferramentas
  • Suporte a muitos formatos (JPEG, PNG, TIFF, BMP, WebP, PGM, PFM, GIF)
  • Visualizador de imagens altamente responsivo com pan e zoom em tempo real
  • Muitos algoritmos de última geração para experimentar interativamente
  • Exportar resultados visuais e textuais da análise
  • Ajuda online extensa com explicações e tutoriais

Ferramentas

Geral

  • Imagem Original: exibir a imagem de referência inalterada para inspeção visual
  • Resumo do Arquivo: recuperar informações físicas do arquivo, hashes criptográficos e perceptuais
  • Editor Hex: abrir um editor hexadecimal externo para mostrar e editar bytes brutos
  • Pesquisa Similar: navegar em serviços de busca online para encontrar imagens visualmente semelhantes

Metadados

  • Estrutura do Cabeçalho: despejar a estrutura do cabeçalho do arquivo e exibir uma visualização interativa
  • Dump Completo EXIF: escanear os metadados do arquivo e reunir todas as informações disponíveis
  • Análise de Miniatura: extrair miniatura incorporada opcional e comparar com o original
  • Dados de Geolocalização: recuperar dados de geolocalização opcionais e exibi-los em um mapa-múndi

Inspeção

  • Lupa de Aprimoramento: lupa com aprimoramentos para melhor identificar falsificações
  • Histograma de Canal: exibir histograma interativo de canais de cor individuais ou composto RGB
  • Ajustes Globais: aplicar ajustes padrão de imagem (brilho, matiz, saturação, ...)
  • Comparação de Referência: abrir uma visualização dupla sincronizada para comparação com outra imagem

Detalhes

  • Gradiente de Luminância: analisar variações de brilho horizontais/verticais na imagem
  • Filtro de Borda Eco: usar filtros derivativos para revelar regiões artificiais fora de foco
  • Limiar Wavelet: reconstruir imagem com diferentes limiares de coeficientes wavelet
  • Divisão de Frequência: dividir a luminância da imagem em componentes de alta e baixa frequência

Cores

  • Gráficos RGB/HSV: exibir gráficos 2D e 3D interativos dos valores de pixel RGB e HSV
  • Conversão de Espaço: converter canais RGB em espaços HSV/YCbCr/Lab/Luv/CMYK/Cinza
  • Projeção PCA: usar PCA de cor para projetar pixel nos componentes mais salientes
  • Estatísticas de Pixel: calcular valores RGB mínimo/máximo/médio para cada pixel

Ruído

  • Separação de Ruído: estimar e extrair diferentes tipos de componentes de ruído de imagem
  • Desvio Mín/Máx: destacar pixels que se desviam das estatísticas mín/máx baseadas em blocos
  • Valores de Planos de Bits: mostrar planos de bits individuais para encontrar padrões de ruído inconsistentes
  • Bloqueio Wavelet: mostra níveis médios de ruído em uma imagem para encontrar inconsistências de ruído
  • Identificação PRNU: explorar ruído de padrão de sensor introduzido por diferentes câmeras

JPEG

  • Estimativa de Qualidade: extrair tabelas de quantização e estimar a qualidade JPEG salva por último
  • Análise de Nível de Erro: mostrar diferença em nível de pixel contra níveis fixos de compressão
  • Compressão Múltipla: usar um modelo de aprendizado de máquina para detectar compressão múltipla
  • Mapas Fantasmas JPEG: destacar vestígios de diferentes níveis de compressão em imagens de diferença

Falsificação

  • Aprimoramento de Contraste: analisar distribuição de cores para detectar aprimoramentos de contraste
  • Falsificação Copiar-Mover: usar descritores de características invariantes para detecção de áreas clonadas
  • Composição (Splicing): explorar estatísticas DCT para detecção automática de zonas de splicing
  • Reamostragem de Imagem: estimar interpolação 2D de pixels para detectar vestígios de reamostragem

Vários

  • Filtragem Mediana: detectar vestígios de processamento deixados por filtragem mediana não linear
  • Mapa de Iluminante: estimar direção local da luz da cena em superfícies 3D estimadas
  • Pixels Mortos/Quentes: detectar e corrigir pixels mortos/quentes causados por imperfeições do sensor
  • Decodificador de Estereograma: decodificar imagens 3D ocultas em autoestereogramas de olho cruzado

Capturas de Tela

General
Geral: Imagem Original, Editor Hex, Resumo do Arquivo, Pesquisa Similar

Metadata
Metadados: Dump Completo EXIF, Estrutura do Cabeçalho

Inspection
Inspeção: Lupa de Aprimoramento, Histograma de Canal, Comparação de Referência

Detail
Detalhes: Gradiente de Luminância, Filtro de Borda Eco, Limiar Wavelet, Divisão de Frequência

Colors
Cores: Gráficos RGB/HSV, Conversão de Espaço, Projeção PCA, Estatísticas de Pixel

Noise
Ruído: Separação de Sinal, Desvio Mín/Máx, Valores de Plano de Bits

JPEG
JPEG: Estimativa de Qualidade, Análise de Nível de Erro

Tampering
Falsificação: Aprimoramento de Contraste, Falsificação Copiar/Mover, Composição (Splicing), Filtragem Mediana

Instalação

[1/4] Baixar código-fonte

Clone o repositório atual para uma pasta local e mude o diretório atual para ele.

[2/4] Criar ambiente virtual

Sherloq usa Python 3.11. A configuração recomendada usa uv porque fornece o mesmo fluxo de trabalho no Linux, macOS e Windows, pode instalar Python quando necessário e mantém o ambiente do projeto na pasta local .venv.

Instale o uv seguindo o guia de instalação oficial, depois crie o ambiente a partir da pasta raiz do Sherloq:

root@kitploit:~
$ uv venv --python 3.11

O repositório também inclui um arquivo .python-version, então os futuros comandos uv usarão Python 3.11 por padrão.

[3/4] Instalar dependências

root@kitploit:~
$ uv pip install -r gui/requirements.txt

Algumas ferramentas experimentais baseadas em IA precisam de pacotes adicionais. Instale-os apenas se planeja usar essas ferramentas:

root@kitploit:~
$ uv pip install -r gui/requirements_ai_solutions.txt

[4/4] Iniciar o programa

O Sherloq pode ser iniciado a partir da raiz do repositório. O pacote da aplicação resolve ícones, modelos e ferramentas empacotadas através de caminhos centralizados do projeto.

Linux/macOS

root@kitploit:~
$ source .venv/bin/activate
$ python -m gui.sherloq_app

Windows PowerShell

root@kitploit:~
> .venv\Scripts\Activate.ps1
> python -m gui.sherloq_app

Você também pode usar o lançador de compatibilidade da raiz do repositório:

root@kitploit:~
$ python sherloq.py

NOTA para usuários Linux: se este erro for exibido:

root@kitploit:~
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Execute este comando no terminal: sudo apt install -y libxcb-cursor-dev

Estrutura do Projeto

A aplicação Python Qt agora reside no pacote importável gui/sherloq_app:

  • main.py: ponto de entrada da aplicação Qt e janela principal.
  • core/: auxiliares compartilhados de processamento de imagem, como utilitários JPEG e carregamento de arquivos.
  • ui/: widgets Qt reutilizáveis, visualizadores, tabelas e a árvore de ferramentas.
  • tools/: widgets de análise agrupados por categoria de caixa de ferramentas (general, metadata, inspection, detail, colors, noise, jpeg, tampering, various).
  • paths.py: acesso centralizado a ícones, modelos e auxiliares nativos empacotados, para que o código não dependa mais de ser iniciado a partir de .

Ativos empacotados grandes e componentes de pesquisa de terceiros permanecem em gui/icons, gui/models, gui/noiseprint, gui/pyexiftool, gui/butteraugli, gui/ssimulacra e o opcional gui/TruFor_main.

Veja docs/project-structure.md para um mapa orientado a contribuidores.

Atualizações

Quando uma nova versão for lançada, atualize a cópia de trabalho local com Git ou baixando o código-fonte mais recente, depois atualize o ambiente a partir da pasta raiz do Sherloq:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements.txt

Se você instalou as dependências opcionais de IA, atualize-as também:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements_ai_solutions.txt

Recursos Recomendados para Começar

  • Paper com exemplos práticos e análise cuidadosa das técnicas que foram implementadas no Sherloq: "A Picture's Worth: Digital Image Analysis and Forensics" (Neal Krawetz) [paper]
  • Tese com exemplos práticos e análise cuidadosa do uso das ferramentas "JPEG Ghosts", "Image Resampling" e "Noise Wavelet Blocking" implementadas no Sherloq. Este trabalho também oferece insights sobre o uso e a confiabilidade de abordagens orientadas por IA em Forense de Imagem Digital. (UHstudent) [paper]

Referências para Algoritmos Implementados no Sherloq

  • Reamostragem de Imagem: "Exposing Digital Forgeries by Detecting Traces of Re-sampling" (Alin C. Popescu and Hany Farid) [paper]
  • Fantasmas JPEG: "Exposing Digital Forgeries from JPEG Ghosts" (H. Farid) [paper]
  • Bloqueio Wavelet de Ruído: "Using noise inconsistencies for blind image forensics" (Babak Mahdian and Stanislav Saic) [paper]

Bibliografia

  • "Noiseprint: a CNN-based camera model fingerprint" (Davide Cozzolino, Luisa Verdoliva) [website]
  • "Two Improved Forensic Methods of Detecting Contrast Enhancement in Digital Images" (Xufeng Lin, Xingjie Wei and Chang-Tsun Li) [paper]
Baixar ferramenta
gui