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
patchkit — patching binário a partir do Python | Kitploit
Ferramentas/GitHubGitHub/lunixbochs/patchkit
Engenharia ReversaAnálise de BináriosExploração de Binários
GitHublunixbochs/patchkit

patchkit

patching binário a partir do Python

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

patchkit

Corrige um binário ELF usando um ou mais scripts Python simples.

Uso:

root@kitploit:~
patch <binário> <dirdepatch|arquivo> [dirdepatch|arquivo...]

patchdir

Contém um ou mais arquivos de patch Python, que serão executados em ordem alfabética contra um binário.

Exemplos de Patch

Nopping um endereço, injetando uma função de assembly e hookando o ponto de entrada:

root@kitploit:~
def simple_patch(pt):
    # nop out a jump at the entry point
    pt.patch(pt.entry, hex='90' * 5)

    # inject assembly into the binary and return the address
    addr = pt.inject(asm='mov eax, 1; ret')

    # hook the entry point to make it call addr (ret will run the original entry point)
    pt.hook(pt.entry, addr)

Substituindo uma função C:

root@kitploit:~
def replace_free(pt):
    # pretend free() is at this address:
    old_free = 0x804fc4

    # inject a function to replace free()
    new_free = pt.inject(c=r'''
    void free_stub(void *addr) {
        printf("stubbed free(%p)\n", addr);
    }
    ''')

    # patch the beginning of free() with a jump to our new function
    pt.patch(old_free, jmp=new_free)

API

root@kitploit:~
addr = search(data)
hook(addr, new_addr)
patch(addr, *arg de compilação*)
addr = inject(*arg de compilação*)

*arg de compilação* é qualquer um dos seguintes:
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (apenas suportado em inject, não em patch)

Scripts do IDA

Alguns scripts estão no caminho ida/. Execute-os assim:

root@kitploit:~
/Applications/IDA\ Pro\ 6.8/idaq.app/Contents/MacOS/idaq64 -A -Sida/allfuncs.py a.out

Quando invocado assim, allfuncs.py gerará a.out.funcs que é usado por scripts de hardening.

Ferramentas

Estes são um tanto específicos para CGC e x86 agora, mas serão portados para uso geral no futuro.

  • explore: usa um CFG Python e um emulador de retrocesso recursivo para encontrar blocos básicos em um executável
  • bindiff: usa os limites de bloco de uma execução do explore, bem como análises adicionais para encontrar e gerar diferenças de blocos básicos entre dois binários

Dependências

  • Execute ./deps.sh para instalar automaticamente estes.
    • Capstone Engine - https://github.com/aquynh/capstone.git
    • Keystone Engine - https://github.com/keystone-engine/keystone.git
    • Unicorn Engine - https://github.com/unicorn-engine/unicorn.git
Baixar ferramenta