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
143195há 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