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
libpeconv — Biblioteca personalizada de carregamento e manipulação de PE para mapeamento manual, hooking de IAT, dump de memória e reconstrução de imports para análise de malware e engenharia reversa. | Kitploit
Ferramentas/GitHubGitHub/hasherezade/libpeconv
Forensia de MemóriaEngenharia ReversaAnálise de MalwareUtilitários e FrameworksAnálise de BináriosDesenvolvimento de Payloads
GitHubhasherezade/libpeconv

libpeconv

Biblioteca personalizada de carregamento e manipulação de PE para mapeamento manual, hooking de IAT, dump de memória e reconstrução de imports para análise de malware e engenharia reversa.

Ver Repositório
1.4k207há 4 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 →
Compartilhar
Site

libPeConv

Build status Codacy Badge Commit activity Last Commit

License Platform Badge

Uma biblioteca para carregar e manipular arquivos PE.

Objetivos

O objetivo do libPEConv foi criar um "canivete suíço" para carregamento personalizado de arquivos PE. Ele reúne várias funções auxiliares que você pode integrar rapidamente ao seu próprio loader. Por exemplo: remapear seções, aplicar realocações, carregar imports, analisar recursos.

Ele não apenas permite carregar arquivos PE, mas também personalizar algumas etapas, como hooking de IAT (fornecendo resolvedores de IAT personalizados) e redirecionamento de funções. No entanto, ele NÃO é focado em inline hooking e não deve ser confundido com bibliotecas como MS Detours ou MinHook.

O LibPeConv pode ser usado para criar binders de PE, pois permite carregar um PE diretamente do recurso e integrá-lo como se fosse um código local.

Ele também pode ajudá-lo a despejar PEs da memória e reconstruir seus IATs.

AVISO: aplicações que usam MUI não são suportadas.

Exemplo básico

O caso de uso mais simples: use o libPeConv para carregar e executar manualmente um EXE de sua escolha.

root@kitploit:~
#include <Windows.h>
#include <iostream>

#include <peconv.h> // include libPeConv header

int main(int argc, char *argv[])
{
    if (argc < 2) {
        std::cout << "Args: <path to the exe>" << std::endl;
        return 0;
    }
    LPCSTR pe_path = argv[1];

    // manually load the PE file using libPeConv:
    size_t v_size = 0;
#ifdef LOAD_FROM_PATH
    //if the PE is dropped on the disk, you can load it from the file:
    BYTE* my_pe = peconv::load_pe_executable(pe_path, v_size);
#else
    size_t bufsize = 0;
    BYTE *buffer = peconv::load_file(pe_path, bufsize);

    // if the file is NOT dropped on the disk, you can load it directly from a memory buffer:
    BYTE* my_pe = peconv::load_pe_executable(buffer, bufsize, v_size);
#endif
    if (!my_pe) {
        return -1;
    }
	
    // if the loaded PE needs to access resources, you may need to connect it to the PEB:
    peconv::set_main_module_in_peb((HMODULE)my_pe);
    
    // load delayed imports (if present):
    const ULONGLONG load_base = (ULONGLONG)my_pe;
    peconv::load_delayed_imports(my_pe, load_base);
  
    // if needed, you can run TLS callbacks before the Entry Point:
    peconv::run_tls_callbacks(my_pe, v_size);
	
    //calculate the Entry Point of the manually loaded module
    DWORD ep_rva = peconv::get_entry_point_rva(my_pe);
    if (!ep_rva) {
        return -2;
    }
    ULONG_PTR ep_va = ep_rva + (ULONG_PTR) my_pe;
    //assuming that the payload is an EXE file (not DLL) this will be the simplest prototype of the main:
    int (*new_main)() = (int(*)())ep_va;

    //call the Entry Point of the manually loaded PE:
    return new_main();
}

Veja também: https://github.com/hasherezade/libpeconv_tpl/blob/master/project_template/main.cpp

Leia mais

  • Wiki
  • Documentação
  • Exemplos
  • Tutoriais
  • Modelo de projeto
Baixar ferramenta