Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
hal — HAL – हार्डवेयर विश्लेषक | Kitploit
उपकरण/GitHubGitHub/emsec/hal
एम्बेडेड सिस्टम सुरक्षारिवर्स इंजीनियरिंगहार्डवेयर हैकिंगहार्डवेयर सुरक्षाहार्डवेयर और IoT सुरक्षाबाइनरी विश्लेषणपेपर और शोधलर्निंग और शिक्षाफर्मवेयर विश्लेषण
GitHubemsec/hal

hal

HAL – हार्डवेयर विश्लेषक

814952421घं 22मि पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

HAL में आपका स्वागत है!

Ubuntu 22.04 Ubuntu 24.04 macOS Deploy Documentation Doc: C++ Doc: Python

HAL [/hel/] एक व्यापक नेटलिस्ट रिवर्स इंजीनियरिंग और हेरफेर फ्रेमवर्क है।

HAL Screenshot

नेविगेशन

  1. परिचय
  2. निर्माण निर्देश
  3. त्वरित आरंभ गाइड
  4. शैक्षणिक संदर्भ

परिचय

HAL क्या है?

नेटलिस्ट विश्लेषण पर उपलब्ध लगभग सभी शोध निरीक्षण के तहत नेटलिस्ट के ग्राफ-आधारित प्रतिनिधित्व पर काम करते हैं। इसके मूल में, HAL वही प्रदान करता है: एक फ्रेमवर्क जो मनमाने स्रोतों, जैसे FPGA या ASIC, से नेटलिस्ट को पार्स करके ग्राफ-आधारित नेटलिस्ट प्रतिनिधित्व में बदलता है और शामिल गेट्स और नेट्स के ट्रैवर्सल और विश्लेषण के लिए आवश्यक अंतर्निहित उपकरण प्रदान करता है।

हमारी दृष्टि यह है कि HAL IDA या Ghidra जैसे उपकरणों के हार्डवेयर-रिवर्स-इंजीनियरिंग समकक्ष बन जाए। हम चाहते हैं कि HAL शोधकर्ताओं और विश्लेषकों के लिए एक सामान्य आधार रेखा सक्षम करे, ताकि शोध परिणामों की पुनरुत्पादनशीलता में सुधार हो और नेटलिस्ट पार्सिंग जैसे आवर्ती बुनियादी कार्यों को दूर किया जा सके।

  • उच्च प्रदर्शन अनुकूलित C++ कोर के कारण
  • लचीलापन अंतर्निहित Python बाइंडिंग के माध्यम से
  • मॉड्यूलरिटी C++ प्लगइन सिस्टम के माध्यम से
  • स्थिरता समृद्ध परीक्षण सूट के माध्यम से सुनिश्चित की जाती है

HAL को सक्रिय रूप से मैक्स प्लैंक इंस्टीट्यूट फ़ॉर सिक्योरिटी एंड प्राइवेसी के एम्बेडेड सिक्योरिटी समूह द्वारा विकसित किया जा रहा है। कई शोध परियोजनाओं के अलावा, इसका उपयोग रूहर यूनिवर्सिटी बोखुम (RUB) में हमारे विश्वविद्यालय व्याख्यान "Einführung ins Hardware Reverse Engineering" (हार्डवेयर रिवर्स इंजीनियरिंग का परिचय) में भी किया जाता है।

ध्यान दें कि हमारे पास एक अलग रिपॉजिटरी में नेटलिस्ट रिवर्स इंजीनियरिंग तकनीकों के मूल्यांकन के लिए आधुनिक अत्याधुनिक बेंचमार्क सर्किट का एक सेट भी उपलब्ध है।

शामिल प्लगइन्स

इस रिपॉजिटरी में चयनित प्लगइन्स का एक संग्रह है:

  • GUI: एक सुविधा संपन्न GUI जो दृश्य नेटलिस्ट निरीक्षण और इंटरैक्टिव विश्लेषण की अनुमति देता है
    • HAL Python बाइंडिंग तक पहुंच के साथ Python शेल का मूल एकीकरण
    • अव्यवस्था-मुक्त निरीक्षण के लिए विशिष्ट गेट्स या मॉड्यूल का अलगाव
    • नेटलिस्ट का इंटरैक्टिव ट्रैवर्सल
    • निरीक्षण किए गए नेटलिस्ट के सभी पहलुओं पर जानकारी के साथ विस्तृत विजेट
  • नेटलिस्ट सिम्युलेटर: लोडेड नेटलिस्ट के मनमाने भागों के लिए एक सिम्युलेटर
  • डेटा प्रवाह विश्लेषण: हमारा डेटा प्रवाह विश्लेषण प्लगइन DANA जो एक असंरचित नेटलिस्ट में उच्च-स्तरीय रजिस्टरों को पुनर्प्राप्त करता है
  • ग्राफ एल्गोरिदम: ग्राफ-थ्योरी से सामान्य एल्गोरिदम तक सीधी पहुंच के लिए igraph एकीकरण
  • Python शेल: HAL Python बाइंडिंग के साथ प्रीलोडेड Python शेल लॉन्च करने के लिए एक कमांड-लाइन प्लगइन
  • VHDL और Verilog पार्सर: नेटलिस्ट इनपुट प्रारूपों के रूप में VHDL और Verilog फ़ाइलों को पार्स करने का समर्थन जोड़ता है
  • Liberty पार्सर: मानक liberty गेट लाइब्रेरी प्रारूप में मनमानी गेट लाइब्रेरी के लिए समर्थन जोड़ता है
  • VHDL और Verilog राइटर: एक (संशोधित) नेटलिस्ट को सिंथेसाइजेबल VHDL या Verilog फ़ाइलों में क्रमबद्ध करने का समर्थन जोड़ता है
  • गेट लाइब्रेरी: XILINX Unisim और Simprim गेट लाइब्रेरी के लिए समर्थन जोड़ता है

दस्तावेज़ीकरण

HAL की सुविधाओं का एक व्यापक दस्तावेज़ीकरण हमारे Wiki में उपलब्ध है। इसके अलावा, हम पूर्ण C++ API और Python API दस्तावेज़ीकरण प्रदान करते हैं।

निर्माण निर्देश

HAL बनाने के निर्देशों के लिए, कृपया हमारे Wiki में समर्पित पृष्ठ देखें।

त्वरित आरंभ गाइड

HAL स्थापित करें या बनाएं और hal -g के माध्यम से GUI प्रारंभ करें। आप hal [--help|-h] के माध्यम से सभी उपलब्ध विकल्पों को सूचीबद्ध कर सकते हैं। हमने examples उपनिर्देशिका में कुछ उदाहरण प्रोजेक्ट शामिल किए हैं। एक उदाहरण प्रोजेक्ट के साथ शुरू करने के लिए आपको इसे मुख्य मेनू से Import Project के माध्यम से आयात करना होगा या ज़िप की गई फ़ाइल को वेलकम स्क्रीन के OPEN PROJECT क्षेत्र में छोड़ना होगा। ऐसा करने पर एक पॉपअप लेखन अनुमतियों वाली निर्देशिका का अनुरोध करेगा जहां HAL प्रोजेक्ट निर्देशिका बनाएगा और फ़ाइलों को अनज़िप करेगा। अनज़िप करने के लिए बाहरी उपकरणों का उपयोग न करें क्योंकि अनुकूलन किए जाते हैं ताकि अगली बार प्रोजेक्ट खोलने पर नेटलिस्ट और गेट लाइब्रेरी मिल जाए।

यदि आप अपनी स्वयं की Verilog या VHDL नेटलिस्ट खोलना चाहते हैं, तो आपको इसके बजाय Import Netlist चलाना होगा। यह तभी काम करेगा जब plugins/gate_libraries/definitions में कोई मिलान गेट लाइब्रेरी हो या आप गेट लाइब्रेरी मैन्युअल रूप से प्रदान करें। अपनी स्वयं की गेट लाइब्रेरी बनाने के निर्देशों और अन्य उपयोगी ट्यूटोरियल के लिए, wiki देखें।

निम्नलिखित उदाहरण कोड fsm उदाहरण को संदर्भित करता है।

इंटरैक्ट करने के लिए एकीकृत Python शेल या Python स्क्रिप्ट विंडो का उपयोग करें। दोनों में (सीमित) ऑटोकम्पलीट कार्यक्षमता है।

आइए सभी लुकअप टेबल को सूचीबद्ध करें और उनके बूलियन फंक्शन प्रिंट करें:

for gate in netlist.get_gates():
    if "LUT" in gate.type.name:
        print("{} (id {}, type {})".format(gate.name, gate.id, gate.type.name))
        print("  {}-to-{} LUT".format(len(gate.type.input_pins), len(gate.type.output_pins)))
        boolean_functions = gate.boolean_functions
        for name in boolean_functions:
            print("  {}: {}".format(name, boolean_functions[name]))
        print("")

उदाहरण नेटलिस्ट fsm.vhd के लिए यह प्रिंट करता है:

FSM_sequential_STATE_REG_0_i_3_inst (id 4, type LUT6)
  6-to-1 LUT
  O: (!I1 & !I2 & I3 & !I4 & I5) | (I0 & !I2) | (I0 & I1) | (I0 & I3) | (I0 & I4) | (I0 & I5)

FSM_sequential_STATE_REG_0_i_2_inst (id 3, type LUT6)
  6-to-1 LUT
  O: (I2 & I3 & I4 & !I5) | (I1 & !I5) | (I1 & !I4) | (I1 & !I3) | (I0 & I1) | (I1 & I2)

FSM_sequential_STATE_REG_1_i_3_inst (id 6, type LUT6)
  6-to-1 LUT
  O: (!I1 & I4 & !I5) | (!I1 & !I3 & I4) | (I0 & I4 & !I5) | (I0 & !I3 & I4) | (!I1 & I2 & I4) | (I0 & I2 & I4) | (!I2 & !I5) | (!I2 & !I4) | (!I2 & !I3) | (!I0 & !I4) | (!I0 & !I2) | (!I0 & !I1) | (I1 & !I4) | (I1 & !I2) | (I0 & I1) | (I3 & !I5) | (I3 & !I4) | (!I0 & I3) | (I1 & I3) | (I2 & I3) | (!I4 & I5) | (!I3 & I5) | (!I0 & I5) | (I1 & I5) | (I2 & I5)

FSM_sequential_STATE_REG_1_i_2_inst (id 5, type LUT6)
  6-to-1 LUT
  O: (!I0 & I1 & !I2 & I3 & I4 & !I5) | (I0 & !I2 & I3 & I4 & I5)

OUTPUT_BUF_0_inst_i_1_inst (id 18, type LUT1)
  1-to-1 LUT
  O: !I0

OUTPUT_BUF_1_inst_i_1_inst (id 20, type LUT2)
  2-to-1 LUT
  O: (I0 & !I1) | (!I0 & I1)

योगदान

आप HAL के विकास में योगदान करने के लिए स्वागत है। कृपया GitHub के माध्यम से एक नया पुल अनुरोध सबमिट करने में संकोच न करें। कृपया उससे पहले स्थैतिक जांच + clang format चलाने पर विचार करें। आप इन जांचों को किसी भी कमिट से पहले git हुक के रूप में भी स्थापित कर सकते हैं।

स्थानीय रूप से स्थैतिक जांच और क्लैंग फॉर्मेट चलाएं

क्लैंग-फॉर्मेट हुक स्थापित करने के लिए git-hooks स्थापित करें और चलाएं:

git hooks --install

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