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
sharem — SHAREM é uma framework de análise de shellcode, capaz de emular mais de 45.000 WinAPIs e virtualmente todas as syscalls do Windows. Também contém seu próprio desmontador personalizado, com muitos recursos inovadores, como ser capaz de mostrar a desmontagem desofuscada de um shellcode codificado, ou integrar dados de emulação para aprimorar a desmontagem. | Kitploit
Ferramentas/GitHubGitHub/bw3ll/sharem
Análise Dinâmica (Sandboxing)Engenharia ReversaShellcodeDepuradoresFuzzingAnálise de MalwareAnálise de BináriosSegurança de IA
GitHubbw3ll/sharem

sharem

Ver Repositório
49168há 5 mesesRevisado 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 →

Sobre

SHAREM é uma framework de análise de shellcode, capaz de emular mais de 45.000 WinAPIs e virtualmente todas as syscalls do Windows. Também contém seu próprio desmontador personalizado, com muitos recursos inovadores, como ser capaz de mostrar a desmontagem desofuscada de um shellcode codificado, ou integrar dados de emulação para aprimorar a desmontagem.

Compartilhar

SHAREM

Bem-vindo ao SHAREM!

O SHAREM foi apresentado na DEFCON 31 em "Game-Changing Advances in Windows Shellcode Analysis" e no Black Hat USA Arsenal. Um plugin companheiro para Ghidra foi disponibilizado (separadamente) pela Trellix, cortesia de Max Kersten. Assim, você pode estender o poder do SHAREM para o Ghidra, se desejar.

O SHAREM tem a intenção de ser a ferramenta definitiva para shellcode do Windows, com suporte para emular mais de 45.000 WinAPIs, praticamente todas as syscalls do Windows em modo usuário, e o SHAREM oferece inúmeros novos recursos. O SHAREM contém um emulador, um desassemblador, depuração atemporal, desofuscação por força bruta e muitos outros recursos. O emulador do SHAREM também pode exibir estruturas completas (ou até estruturas dentro de estruturas) e pode permitir que shellcode codificado se desofusque. O SHAREM registra a saída de todas as WinAPIs e syscalls do Windows analisadas, e também divide cada uma em muitas categorias e subcategorias. A cobertura completa de código do SHAREM também permite descobrir funcionalidades inalcançáveis.

O desassemblador do SHAREM é capaz de integrar funções descobertas na desmontagem, rotulando cada uma no desassemblador. O SHAREM também exibirá a forma decifrada do shellcode codificado no desassemblador, então não é necessário depurar o shellcode.

Criamos uma Wiki do SHAREM que fornece algumas informações instrucionais sobre o uso do SHAREM, embora existam partes e recursos significativos atualmente não documentados. O SHAREM foi desenvolvido ao longo de dois anos com várias pessoas trabalhando nele. O desassemblador do SHAREM é significativamente mais preciso do que os principais desassembladores. Além disso, o SHAREM pode integrar dados de emulação no desassemblador, permitindo obter uma desmontagem quase perfeita.

Esteja ciente de que, como o SHAREM acaba de ser lançado, a documentação aqui é um pouco escassa. Atualizaremos o GitHub com mais informações nas próximas semanas.

Se você é novo no SHAREM, sinta-se à vontade para conferir um breve vídeo de demonstração, mostrando algumas de suas capacidades. Clique na imagem para ver a demonstração: Watch the video

Atualizações Recentes

Março de 2026: O SHAREM carregará até 61 DLLs ao iniciar, mas com a atualização mais recente, agora pode suportar 369 DLLs e 45538 WinAPIs únicas. Além disso, as DLLs são carregadas sob demanda conforme necessário. Recursos internos do Windows (como listas de módulos, flinks, blinks, etc.) serão atualizados automaticamente se DLLs adicionais precisarem ser carregadas, por exemplo, via LoadLibraryA. Houve inúmeras outras atualizações para melhorar a funcionalidade. Foram feitas alterações para ajudar a simplificar alguns problemas que me foram relatados sobre desafios de instalação.

22 de março de 2026: A lógica para sair de loops foi refinada com mais nuances. Grande parte disso foi reescrita e retestada. Não recomendamos geralmente alterar o padrão no config.cfg, se você decidir usar esse recurso.

2024/2025: O SHAREM pode opcionalmente usar IA para analisar resultados, com uma chave OpenAI (fornecida pelo usuário). Observe que o SHAREM foi feito antes dos avanços recentes em IA, e seu uso de IA ocorre apenas após a análise inicial do SHAREM estar completa. Esse recurso opcional pode permitir examinar o que foi encontrado e aplicá-lo à estrutura MITRE ATT&CK e muito mais.

Instruções de Instalação

Windows

O SHAREM é instalado como um pacote Python local, para que tenhamos acesso a ele em outros projetos. Isso permite que partes do SHAREM sejam importadas. Portanto, deve ser instalado como um pacote. Nota: ouvi relatos de alguns problemas de instalação. Mudanças recentes devem corrigir esse problema.

  1. Git é necessário para a instalação do sharem. Pode ser instalado em https://git-scm.com/download/win. Após a instalação, reinicie o computador e continue com a instalação do SHAREM. O Git é para automatizar a instalação do Windows SSDeep. Você também pode fazer isso manualmente e modificar o .bat para excluir o SSDeep, se você mesmo fizer. Instalar manualmente evita a necessidade de usar o Git. Nota: para Windows, estamos migrando para um fork do SSDeep na conta Bw3ll que corrige alguns problemas de instalação com a versão anterior. Esta versão e a anterior eram wrappers para o SSDeep.

  2. Execute o arquivo .bat. Ele chamará o arquivo setup.py. Dependendo de como você chama o Python, pode ser necessário chamar o arquivo .bat alternativo ou até mesmo modificá-lo ligeiramente, se estiver usando algo não padrão.

  3. Execute py -m pip list ou python3 -m pip list para verificar se o SHAREM está instalado localmente como um pacote. Ele deve ser instalado como um pacote para funcionar. O que acontece se você NÃO o vir? Então NÃO está instalado como um pacote, e o SHAREM NÃO funcionará. Certifique-se de estar usando o(s) arquivo(s) .bat e fazendo isso no prompt de comando do Windows a partir do diretório installers. Se não funcionar, procure por mensagens de erro. Se houver alguma, tente corrigi-las. Você pode tentar algumas vezes. Se ainda assim não funcionar, abra uma issue e tente incluir todas essas informações, para que possamos tentar descobrir o que há de errado. Normalmente, não será necessário, mas ocasionalmente pode ser. Se você o desinstalou uma vez e decidiu instalá-lo novamente, é possível que precise executar o script de instalação novamente. Assim que você vir sharem aparecer ao executar py -m pip list, saberá que está instalado corretamente como um pacote local.

Após o SHAREM estar instalado, quando você executar um shellcode pela primeira vez, você deve estar dentro da pasta sharem_cli. Por exemplo, quando estiver nesse diretório, você pode executar py main.py -r32 shellcode.bin. Sem shellcode? Tudo bem, você pode encontrar algumas amostras no repositório de amostras de shellcode que hospedo em um repositório separado.

Nota: Na primeira vez que você tentar emular um shellcode no Windows, ele tentará coletar e inflar DLLs do Windows. Esse processo começa automaticamente ao tentar emular um shellcode pela primeira vez. Ele as copiará, movendo as DLLs copiadas (e posteriormente infladas) para um diretório do SHAREM. Existem etapas adicionais, mas todo esse processo inicial pode levar vários minutos, ou até 10-15 minutos, se for uma CPU muito antiga. Após a conclusão, você não deve precisar fazer isso novamente. Isso deve ser feito separadamente tanto para shellcode de 32 quanto de 64 bits. Você pode navegar até sharem/sharem/sharem/sharem/DLLs/x86 - e você verá DLLs aparecerem lentamente. Elas estão sendo retiradas do sistema operacional, modificadas para emular o que o SO faria com elas e salvas neste diretório. Haverá um pouco mais de 60. Se você vir cerca desse número de DLLs e não houver mais DLLs sendo salvas, isso significa que provavelmente está apenas travado. Apenas pressione Enter novamente. Se isso falhar, simplesmente reinicie e tente emular novamente. Depois que as DLLs forem salvas, você não deve precisar fazer isso novamente; é apenas na primeira vez que pode levar tempo, dependendo da velocidade da CPU. Você verá os resultados da emulação quando terminar, como a enumeração de diferentes WinAPIs ou syscalls do Windows.

Se o arquivo terminar em .txt, ele assumirá que o shellcode é uma representação ASCII de HEX (em vez de hexadecimal puro) e o interpretará como tal. Isso funciona com algo encontrado online. Se estiver usando uma representação ASCII do hexadecimal, o nome do arquivo terminando em .txt é um requisito.

Linux

  1. chmod +x linux_installer.sh Habilite a Execução do Instalador
  2. sudo ./linux_installer.sh Execute o Instalador
  3. Adicione os Arquivos DLL

Você precisará adicionar os arquivos DLL do Windows. Atualmente, não os disponibilizamos como download separado para usuários Linux. Neste momento, os usuários precisariam coletá-los instalando via Windows. (Nota: Essas DLLs DEVEM ser infladas pelo SHAREM. DLLs não podem ser usadas se não forem infladas. A maioria, embora talvez não todas, falhará se não forem infladas na quantidade adequada.) Posteriormente, podemos fornecê-los como download separado nas próximas semanas. Mas, enquanto isso, o usuário pode seguir as etapas do Windows para gerá-los e movê-los para o Linux, colocando-os em sharem\sharem\sharem\DLLs\x64 e sharem\sharem\sharem\DLLs\x86. Você também precisará dos arquivos foundDLLAddresses32.json e FoundDLLAddresses64.json, que devem ir em sharem\sharem\sharem.

OpenAI

O SHAREM em 2024 adicionou suporte para OpenAI, para que possamos aproveitar a IA para automatizar algumas tarefas de análise. Isso pode ser ativado via A no menu principal - "leverage AI". Para fazer isso, você deve ter uma chave OpenAI e colocá-la no arquivo config.cfg, que está em sharem/sharem/sharem/sharem/config.cfg. Além disso, você deve emular um shellcode antes de permitir usar a IA. Atualmente, esta é a única maneira de usar a IA - ela não funciona de forma headless - mas se alguém precisar disso, por favor, abra uma issue e adicionarei suporte para isso, como outra opção que pode ser selecionada via config. Se você já instalou o SHAREM e obteve a versão atualizada, pode querer instalar manualmente o OpenAI, por exemplo, pip install openai. Eu o adicionei também aos requisitos do arquivo setup.py que é ativado ao executar os scripts de instalação iniciais.

Script Ghidra

O excelente Script Ghidra de Max Kersten, mostrado no Black Hat e DEFCON em agosto de 2023, pode ser encontrado aqui: https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Algumas instruções de Max estão aqui: https://github.com/advanced-threat-research/GhidraScripts/ Este plugin Ghidra é cortesia da Trellix! Você ainda precisa usar o SHAREM. Ele consome a saída JSON produzida pelo SHAREM e a converte em um formato útil para o Ghidra. Mais sobre o próprio Max pode ser encontrado em https://maxkersten.nl/.

Documentação

A documentação pode ser encontrada na Wiki do SHAREM, que fornece algumas informações instrucionais sobre o uso do SHAREM, embora existam partes e recursos significativos atualmente não documentados.

Atualizações

  • 29 de setembro de 2022: Fizemos uma atualização muito pequena no setup.py em relação ao numpy, que pode afetar algumas pessoas com a versão mais recente do Python.
  • 25 de novembro de 2022: Há muito tempo atrasada, fizemos algumas alterações para suportar o estilo de syscalls do ShellWasp. Embora já tivéssemos implementado suporte para syscalls, o estilo ShellWasp não funcionava, apenas SSNs (valores de syscall) codificados. O OSMajorVersion, OSMinorVersion e OSBuild foram inicializados para 32 e 64 bits. Qualquer versão do sistema operacional que o usuário tenha no config ou via UI agora será refletida internamente - por exemplo, selecionar Windows 10 20H2 faria com que os valores corretos fossem preenchidos, permitindo que a técnica ShellWasp funcionasse, conforme mostrado por esta saída de exemplo. Apenas Windows 7, 10 e 11 são suportados para emulação da técnica ShellWasp no momento.
  • 29 de novembro de 2022: Adicionado suporte de emulação para os novos OSBuilds, 22H2 para Windows 10 e 11. Isso é relevante apenas para emular syscalls do Windows. Muitas correções de bugs e melhorias de qualidade de vida. Melhor distinção de recursos para quando o SHAREM é usado para shellcode (seu foco principal) e quando usado para analisar arquivos PE.
  • 1 de dezembro de 2022: Alterado o local padrão do arquivo para saída de bins/ASCII - movido para logs. Adicionada a capacidade de gerar bins/ASCII desofuscados com este comando. O ASCII desofuscado foi adicionado aos logs - o ASCII do bin também parecia estar faltando nos logs - isso foi corrigido.
  • 29 de dezembro de 2022: Adicionei um recurso opcional de depuração atemporal para a pilha. Anteriormente, a depuração atemporal capturava apenas instruções executadas e valores de registradores antes e depois. Agora podemos ver +/- 0xA0 de ESP. Infelizmente, é um pouco lento. Isso deve ser ativado separadamente. Além disso, descobri alguns bugs que davam resultados incorretos ao sair de loops, o que em alguns casos podia causar a terminação prematura de uma emulação. Corrigi isso. Agora também fiz o SHAREM gerar saída quando sai de loops, indicando para onde vai, depois que sai de um loop.
  • 4 de janeiro de 2023: Reformulei bastante a cobertura completa de código, melhorando seu desempenho. Também expus vários recursos opcionais que podem ser ajustados por usuários especializados caso a caso através da UI ou do arquivo de configuração. Mais informações na página da wiki sobre cobertura completa de código.
  • 5 de janeiro de 2023: Adicionado atalho de teclado para o submenu de cobertura completa de código a partir do menu Emulator. Para aqueles com a atualização de ontem já baixada, o atalho é a letra "o".

Capturas de Tela

O SHAREM é uma estrutura muito poderosa com inúmeras capacidades, algumas bem documentadas e outras não. Esta seção mostrará um pequeno número dessas capacidades.

O SHAREM pode pegar um shellcode codificado e desofuscá-lo por meio de emulação. Não apenas captura todas as informações de WinAPI ou syscall, mas se você optar por visualizá-lo no desassemblador, ele mostra a forma decodificada do shellcode:

image

O SHAREM não apenas pode enumerar mais de 12.000 funções WinAPI, mas também pode fazer isso com praticamente todas as syscalls do Windows em modo usuário. Além disso, para algumas exibe informações de estrutura. Para aqueles que lidam com o registro, ele extrairá informações do registro e as adicionará ao nosso Gerenciador de Registro:

image

O SHAREM também tem a capacidade de baixar arquivos via UrlDownloadToFileA, se existirem. Eles são baixados na memória do emulador - não salvos em disco. Se bem-sucedido, capturará o hash. Há também um sistema de pseudo arquivos limitado, então você pode ver correlações, como um arquivo sendo baixado como uma coisa e renomeado para outra. Se o download necessário não estiver disponível, ele será simplesmente simulado como um download bem-sucedido. O download ao vivo é uma opção que pode ser ativada ou desativada no config.

image

Coautores e Colaboradores

Dr. Bramwell Brizendine, Austin Babcock, Jake Hince, Shelby VandenHoek, Sascha Walker, Evan Read, Dylan Park, Kade Brost, James Tate Forcella, William Lochte, Hunter Murphy, and Tarek Abdelmotaleb.

Agradecimentos

Esta pesquisa e alguns coautores foram apoiados pela NSA Grant H98230-20-1-0326.

Baixar ferramenta
  • 16 de janeiro de 2023: Adicionados três novos campos aos arquivos JSON de desmontagem gerados. Esta atualização NÃO é necessária para quem não está usando esses JSONs, o que é uma forma não padrão de usar o SHAREM.
  • 3 de agosto de 2023: Aproximadamente 5000-6000 APIs foram adicionadas de cerca de 30 DLLs adicionais. Outros aprimoramentos em apoio a isso.
  • 2024/2025: O SHAREM pode opcionalmente usar IA para analisar resultados, com uma chave OpenAI (fornecida pelo usuário). Observe que o SHAREM foi feito antes dos avanços recentes em IA, e seu uso de IA ocorre apenas após a análise inicial do SHAREM estar completa. Esse recurso opcional pode permitir examinar o que foi encontrado e aplicá-lo à estrutura MITRE ATT&CK e muito mais.
  • Março de 2026: O SHAREM carregará até 61 DLLs ao iniciar, mas com a atualização mais recente, agora pode suportar 369 DLLs e 45538 WinAPIs únicas. Houve inúmeras outras atualizações para melhorar a funcionalidade. Foram feitas alterações para ajudar a simplificar alguns problemas que me foram relatados sobre desafios de instalação.
  • 22 de março de 2026: A lógica para sair de loops foi refinada com mais nuances.