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
thematrix — um PE Loader e rastreador de API do Windows. Útil em análise de malware. | Kitploit
Ferramentas/GitHubGitHub/enkomio/thematrix
Análise Dinâmica (Sandboxing)Engenharia ReversaDepuradoresAnálise de MalwareSegurança de API
GitHubenkomio/thematrix

thematrix

um PE Loader e rastreador de API do Windows. Útil em análise de malware.

Ver Repositório
14319há 3 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

TheMatrix

Este projeto foi criado para facilitar o processo de análise de malware. O objetivo é criar um binário ativador cujo propósito é carregar um binário definido pelo usuário e monitorar a execução usando hooks da API Win32. Os dados relevantes são então salvos em disco. O código suporta binários tanto x86 quanto x64.

Documentação

Escrevi uma postagem no blog explicando como funciona: http://antonioparata.blogspot.com/2022/06/thematrix-process-inspection-tool-aimed.html

Uso

Para monitorar um novo binário, é necessário criar um ativador. O ativador carregará e monitorará um binário de entrada do usuário. Para criar um ativador, use a opção -add. Um exemplo de uso é o seguinte:

root@kitploit:~
c:\>TheMatrix.exe -add c:\path\to\my\binary.dll
Activator file created
c:\>regsvr32.exe TheMatrix.build.dll

Este comando criará um novo arquivo PE representando o ativador. O ativador terá o mesmo formato (DLL ou EXE) do binário de entrada.

Uma vez criado, você pode simplesmente executá-lo da maneira preferida (para DLL, a maneira sugerida é usar o utilitário rundll32.exe).

Durante a execução, os dados gerados pelas funções monitoradas são salvos em ./Desktop/thematrix/[process ID]/ (isso depende da função log_data implementada em utility.c).

Limitação:

  • O projeto modifica a estrutura PEB.Ldr para permitir que APIs específicas funcionem corretamente (como GetModuleHandle, ...). Se você executar o ativador em um sistema WOW64 (binário x86 em um SO x64), apenas o PEB.Ldr x86 é modificado (processos WOW64 possuem tanto PEB x86 quanto x64). Quando a CPU muda para x64, as APIs nativas do Windows (ntdll.dll) usarão a versão x64 do PEB.Ldr. Isso implica que o ativador pode não funcionar corretamente. Para garantir que o x86 funcione, execute o binário em um SO x86.

  • O arquivo recém-criado não exporta todos os métodos e não contém os recursos do arquivo original. Isso causará possíveis erros, por exemplo, se uma DLL chamar GetModuleFileName -> LoadLibrary -> FindResource. Esse caminho de código carregará a DLL TheMatrix original que não contém o recurso desejado.

Personalização

Adicionar novas funções ao monitor é uma tarefa fácil; dê uma olhada no arquivo hooks.c para alguns exemplos de hooks de Kernel32.dll e bcrypt.dll. Para adicionar um novo hook, basta chamar a função hook_add. Abaixo é mostrado um exemplo de criação de hook:

root@kitploit:~
LPVOID __stdcall hook_BCryptEncrypt(BCRYPT_KEY_HANDLE hKey, PUCHAR pbInput, ULONG cbInput, VOID* pPaddingInfo, PUCHAR pbIV, ULONG cbIV, PUCHAR pbOutput, ULONG cbOutput, ULONG* pcbResult, ULONG dwFlags)
{
   // save plain data
   if (cbInput) {
   	char name[MAX_PATH] = { 0 };
   	snprintf(name, sizeof(name), "BCryptEncrypt_%llx_%d", (uint64_t)pbInput, cbInput);
   	log_data(cbInput, pbInput, name);
   }	

   LPVOID ret = call_original(
   	hKey,
   	pbInput,
   	cbInput,
   	pPaddingInfo,
   	pbIV,
   	cbIV,
   	pbOutput,
   	cbOutput,
   	pcbResult,
   	dwFlags
   );
   return ret;
}
 
hook_add("Bcrypt.dll", "BCryptEncrypt", hook_BCryptEncrypt);

A função deve ter a mesma assinatura da função com hook. A função call_original é usada para chamar a função original. Basta chamar esta função com os parâmetros de entrada da função original; o framework fará todo o trabalho pesado para você chamar a função correta ;) A chamada para a função call_original deve ser executada na mesma thread que executa o hook, caso contrário o processo irá travar.

TODO

  • Hook CreateProcessInternalW em vez de CreateProcessW
  • Modificar o PEB64 quando o processo está sendo executado em WOW64
Baixar ferramenta