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
Shinigami — Uma ferramenta dinâmica de descompactação | Kitploit
Ferramentas/GitHubGitHub/buzzer-re/shinigami
Análise Dinâmica (Sandboxing)Engenharia ReversaShellcodeAnálise de MalwareAnálise de Binários
GitHubbuzzer-re/shinigami

Shinigami

Uma ferramenta dinâmica de descompactação

Ver Repositório
152127há 2 anosRevisado 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

Shinigami

Build Release

descrição da imagem

Shinigami é uma ferramenta experimental projetada para detectar e desempacotar implantes de malware que são injetados via process hollowing ou rotinas genéricas de empacotadores.

Como isso funciona

A ferramenta opera fazendo hook de funções NT relacionadas ao Process Hollowing e marcando páginas de memória recém-executáveis com o bit page guard. Essa técnica permite que o Shinigami detecte mudanças indiretas de fluxo, normalmente causadas por shellcode ou código desempacotado, que muitas vezes são indicativas de malware. O Shinigami cria o executável alvo em estado suspenso e injeta uma biblioteca DLL chamada "Ichigo". Essa biblioteca automaticamente aplica hook em todas as funções necessárias para detectar e extrair o implante. Assim que o artefato é totalmente extraído, a ferramenta encerra o processo.

A eficácia do Shinigami pode variar dependendo do malware específico que ele está mirando. No entanto, é uma adição valiosa a qualquer kit de ferramentas de análise de malware e pode ser útil para detectar e analisar malware que usa process hollowing ou rotinas genéricas de empacotadores.

Importante: Esta é uma ferramenta de desempacotamento dinâmico e não deve ser executada em sua máquina pessoal ou em um laboratório de análise estática

Métodos atuais de desempacotamento

Baixar ferramenta

Process Hollowing

O método principal do Shinigami para extrair implantes injetados usando process hollowing envolve o hook de duas funções NT: NtResumeThread e NtWriteVirtualMemory. Veja como funciona:

  • NtResumeThread Hook

    • O Shinigami percorre toda a memória previamente alocada via NtAllocateVirtualMemory para verificar se ela contém a assinatura do cabeçalho DOS. Se encontrada, ele extrai o arquivo PE remoto, aplica um patch para que as seções fiquem alinhadas e o salva em disco com o formato filename_dumped.bin.
  • NtWriteVirtualMemory Hook

    • O Shinigami detecta se o executável está tentando gravar um arquivo PE no processo remoto ao fazer hook de NtWriteVirtualMemory. Se um arquivo PE for encontrado, ele é extraído usando o ponteiro Buffer e salvo em disco como filename_before_written.bin; essa opção só é usada se a flag --stop-at-write for passada.

Desempacotador genérico

O módulo desempacotador genérico do Shinigami marca áreas de memória recém-alocadas com o bit PAGE_GUARD; ele também aplica esse bit se qualquer área de memória existente tiver suas proteções substituídas por algo executável. Ao usar guard pages, ele consegue rastrear qual área de memória será usada para alocar shellcode ou imagens PE.

Para cada shellcode detectado, o Shinigami salva o próprio shellcode bruto em disco. Ele também varre essa região de memória para encontrar quaisquer arquivos PE e os salva também. O Shinigami trata cada execução diferente de shellcode como um novo estágio; ao final, você terá em seu diretório de trabalho arquivos chamados filename_shellcode_STAGENUM.bin ou .exe.

Uso

A ferramenta tem algumas opções:

root@kitploit:~
Usage: Shinigami [--help] [--version] [--output VAR] [--stop-at-write] [--verbose] [--only-executables] [--exported VAR] program_name

Positional arguments:
  program_name                  Name of the program to execute

Optional arguments:
  -h, --help                    shows help message and exits
  -v, --version                 prints version information and exits
  -o, --output                  Directory to dump artefacts
  --stop-at-write               Unhollow: Stop the execution when the PE file is being to be written
  --verbose                     Display a verbose output
  -p, --only-executables        Only extract PE artefacts
  -e, --exported                Exported Function: Choose a exported function to execute if the target is a DLL (rundll will be used)

Algumas opções importantes são:

-o, --output: Especifica o diretório para despejar os artefatos extraídos. Por padrão, os artefatos extraídos serão salvos em um diretório chamado output no diretório de trabalho atual. Você pode especificar um diretório diferente passando o caminho dele como argumento.

--stop-at-write: Este argumento é usado durante o desempacotamento de um processo hollowed. Quando o Shinigami detecta que o arquivo PE está sendo gravado no processo hollowed, ele interrompe a execução e salva o arquivo PE extraído. Essa opção pode ser útil se você quiser evitar executar todo o processo hollowed e precisar apenas extrair o código desempacotado.

--verbose: Exibe uma saída detalhada (verbose). Isso pode ser útil para depurar ou entender o funcionamento interno do Shinigami.

Exemplo de uso:

Unhollow

Testando contra o Dridex

Após a extração, o processo é encerrado e você terá (espero) o PE extraído:

Implante extraído

O implante detectado será extraído seguindo o formato descrito na seção métodos de detecção

Desempacotamento

Desempacotando um loader aleatório descrito aqui

No exemplo acima, o Shinigami detectou automaticamente o comportamento de um loader genérico e extraiu todos os shellcodes e imagens executados dentro dele, sem exigir nenhuma opção específica para habilitar ou desabilitar a rotina de desempacotamento. Isso foi possível porque o Shinigami compartilha algumas funções com o módulo unhollow, usando hooks compartilhados fornecidos pela biblioteca Gancho.

Emotet

Desempacotando a DLL do Emotet

O Shinigami também tem suporte a DLL e a capacidade de reconstruir binários injetados usando cabeçalhos DOS destacados (detached). Notavelmente, amostras de malware como o Emotet usam essa técnica para evadir scanners de PE em memória. O Shinigami detecta essas partes ausentes (cabeçalho DOS) e emprega heurísticas para reconstruí-las.

Instalação

Baixe a sua versão preferida na página de Release.

Compilando e contribuindo

Seria incrível se você ajudasse neste projeto; então, se quiser, aqui estão as dependências e os passos

  • Instale o Visual Studio >= 2019 com a carga de trabalho de C++.
  • Instale o Zydis, um desmontador x86/x86-64 rápido e leve; recomendo usar o método vcpkg.
    • O Zydis é usado para garantir que o hook de API seja mais preciso e para assegurar que nenhum opcode seja perdido durante a cópia.
  • Abra o arquivo de solução Shinigami.sln no Visual Studio e compile/edite o projeto.

Por favor, abra uma issue ou pull request para quaisquer alterações que você queira fazer.

Conclusão

Esta imagem de mascote legal foi inspirada em Bleach e gerada por Dall-E.