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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
asmsense — छोटा भाषा मॉडल जो stripped x86-64 बाइनरीज़ में फ़ंक्शन्स के नाम और विवरण देता है, साथ में एक खुला डेटासेट, बेसलाइन्स, और LoRA फ़ाइन-ट्यूनिंग प्रयोग। | Kitploit
उपकरण/GitHubGitHub/krxi/asmsense
स्थैतिक विश्लेषणरिवर्स इंजीनियरिंगबाइनरी विश्लेषणमशीन लर्निंगपेपर और शोधलर्निंग और शिक्षाAI-सहायित रिवर्सिंगचयनित संसाधनAI सुरक्षा
GitHubkrxi/asmsense

asmsense

छोटा भाषा मॉडल जो stripped x86-64 बाइनरीज़ में फ़ंक्शन्स के नाम और विवरण देता है, साथ में एक खुला डेटासेट, बेसलाइन्स, और LoRA फ़ाइन-ट्यूनिंग प्रयोग।

7104 दिन पहलेअभी तक समीक्षित नहीं
रिपॉजिटरी देखेंवेबसाइट

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

सभी देखें →

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

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

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

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

asmsense

अंग्रेज़ी · तुर्की

एक छोटा भाषा मॉडल जो एक स्ट्रिप्ड बाइनरी में एक फ़ंक्शन को देखता है और उसे एक सार्थक नाम और एक संक्षिप्त विवरण देता है।

वर्तमान स्थिति

v4 डेटासेट में 5 अनुकूलन स्तरों पर 341 परियोजनाओं के 228,177 फ़ंक्शन शामिल हैं और इसे Hugging Face पर v4 कॉन्फ़िग के अंतर्गत प्रकाशित किया गया है। Ghidra स्क्रिप्ट तैयार है। अब तक का सबसे अच्छा छोटा मॉडल, Qwen3-8B + LoRA जिसे v5 डेटा पर प्रशिक्षित किया गया (पहले विवरण, फिर नाम), निश्चित v4 परीक्षण नमूने पर नाम F1 0.124 और eval_115 पर 0.155 तक पहुँचता है; कॉल कॉन्टेक्स्ट वाला सबसे अच्छा बड़ा मॉडल उसी परीक्षण नमूने पर 0.167 स्कोर करता है। परिणाम, अनुभाग 6 देखें। मॉडल नाम के साथ-साथ एक अंग्रेज़ी और एक तुर्की एक-वाक्य विवरण लिखता है। एडाप्टर Hugging Face पर है: krxi123/asmsense-qwen3-8b-lora।

Ghidra या IDA में एक स्ट्रिप्ड प्रोग्राम खोलें और आपको FUN_00401a30 नाम के सैकड़ों फ़ंक्शन दिखाई देंगे। रिवर्स इंजीनियरिंग का अधिकांश भाग इन फ़ंक्शनों को एक-एक करके समझने और नाम देने में शामिल है। इस परियोजना का उद्देश्य एक मॉडल को वह पहला कदम सिखाना है:

input  (stripped x86-64)             target output
─────────────────────────────         ──────────────────────────────────────────────
movzx  eax, byte ptr [rsi]            name:        adler32_update
lea    rdx, [rdi + rax]               description: Computes the Adler-32 checksum
cmp    rdx, 0xfff1      ← 65521                    over the bytes of a buffer.
...                                   # TR: Tampondaki baytlar üzerinden Adler-32
                                      #     sağlama toplamı hesaplar.

लक्ष्य

बड़े सामान्य-उद्देश्य वाले मॉडल इस कार्य को कुछ हद तक संभाल सकते हैं, लेकिन वे धीमे, महंगे और क्लाउड-होस्टेड हैं। लक्ष्य इस प्रश्न का उत्तर देना है:

क्या इस कार्य के लिए विशेष रूप से तैयार किए गए डेटा पर प्रशिक्षित एक छोटा मॉडल बड़े मॉडलों की बराबरी कर सकता है या उनसे भी बेहतर प्रदर्शन कर सकता है—जबकि लैपटॉप पर चल रहा हो?

एक ही परीक्षण सेट पर तीन स्तरों का मूल्यांकन किया जाता है:

स्तरमॉडलभूमिका
सीमाबड़े ओपन मॉडल (DeepSeek, GLM, MiMo, Gemma, Qwen)ऑफ-द-शेल्फ मॉडलों के साथ वर्तमान में प्राप्त करने योग्य सर्वश्रेष्ठ
आधाररेखाछोटा ओपन मॉडल, फाइन-ट्यूनिंग से पहलेप्रारंभिक बिंदु
यह परियोजनावही छोटा मॉडल + इस डेटासेट पर LoRAपरियोजना का योगदान

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

  1. डेटा निर्माण (cikar.py): ओपन-सोर्स C परियोजनाओं को विभिन्न अनुकूलन स्तरों (-O0, -O2) पर x86-64 के लिए संकलित किया जाता है। प्रत्येक फ़ंक्शन के लिए असेंबली निकाली जाती है। ग्राउंड ट्रुथ—मूल फ़ंक्शन का नाम—सीधे स्रोत से आता है, इसलिए किसी मैनुअल लेबलिंग की आवश्यकता नहीं है। projeler.json प्रत्येक परियोजना के लिए उपयोग किए गए commit और कंपाइलर फ़्लैग रिकॉर्ड करता है।

  2. स्ट्रिप्ड बाइनरी का अनुकरण: आउटपुट उसी प्रकार दिखता है जैसा Ghidra एक स्ट्रिप्ड बाइनरी में किसी फ़ंक्शन के लिए दिखाता है:

    • परियोजना-स्थानीय फ़ंक्शन sub_01a3 बन जाते हैं, और वैश्विक डेटा dat_0042 बन जाता है (संख्याएँ फेरबदल की जाती हैं, -O0 और -O2 के लिए अलग-अलग नेमस्पेस के साथ),
    • ब्रांच लक्ष्य फ़ंक्शन-स्थानीय लेबल जैसे loc_1 और loc_2 का उपयोग करते हैं,
    • बाहरी लाइब्रेरी कॉल (memcpy, __stack_chk_fail) और स्ट्रिंग लिटरल (; -> "out of memory") दिखाई देते रहते हैं क्योंकि वे वास्तविक बाइनरी में भी दिखाई देते हैं।

    यदि फ़ंक्शन का वास्तविक नाम उसकी अपनी असेंबली में दिखाई देता है—उदाहरण के लिए, किसी त्रुटि संदेश में—तो पंक्ति को sizinti चिह्नित किया जाता है और परीक्षण सेट से बाहर रखा जाता है।

  3. मूल्यांकन (taban.py): मॉडल को केवल असेंबली प्राप्त होती है और उससे एक नाम का अनुमान लगाने के लिए कहा जाता है। अनुमानों को टोकन ओवरलैप (F1) द्वारा स्कोर किया जाता है, इसलिए निकट उत्तर जैसे crc32_update और update_crc को आंशिक क्रेडिट मिलता है।

loc_6:
movzx   r9d, byte ptr [rsi + rdx]
add     rdi, r9                 ← adler32_z (-O2), as the model sees it
add     rcx, rdi
inc     rdx
cmp     rax, rdx
jne     loc_6

डेटा

प्रोजेक्टफ़ंक्शन (-O0 + -O2)
प्रशिक्षणzlib, libpng, sqlite, lua, mbedtls, zstd, libsodium, expat, brotli, jansson, lz4, libyaml, xxhash, cJSON16,804
परीक्षण (याद रखने-प्रतिरोधी)tomlc17, cyaml, mu_json_x, sajs, picomatch777 → मूल्यांकन सेट 115

डेटासेट Hugging Face पर उपलब्ध है: krxi123/asmsense (16,804 प्रशिक्षण उदाहरण, 777 परीक्षण उदाहरण, eval_115 मूल्यांकन सेट, और लाइसेंस पाठ)। यह Kaggle पर भी मिरर किया गया है: krxiii/asmsense।

स्केल्ड डेटासेट (v4 पाइपलाइन, 5 ऑप्टिमाइज़ेशन स्तर)

अनुमतिपूर्ण लाइसेंस (MIT, BSD, Apache-2.0, ISC, zlib) वाले C प्रोजेक्ट GitHub से olcekle.py के साथ चुने गए और cikar_bin.py (वास्तविक dylib + strip -x) का उपयोग करके -O0/-O1/-O2/-O3/-Os पर संकलित किए गए। प्रोजेक्ट बिल्ड स्क्रिप्ट नहीं चलाई गईं; फ़ाइलें clang के साथ व्यक्तिगत रूप से संकलित की गईं, और जो फ़ाइलें या प्रोजेक्ट संकलित होने में विफल रहे उन्हें छोड़ दिया गया। पंक्तियों को सामान्यीकृत असेंबली हैश द्वारा डुप्लिकेट-मुक्त किया गया। सत्यापन/परीक्षण डेटा के समान असेंबली वाली पंक्तियों को प्रशिक्षण से हटा दिया गया, जबकि वेंडर की गई प्रतियाँ जिनके (फ़ाइल, नाम) जोड़े प्रशिक्षण में दिखाई दिए थे, उन्हें सत्यापन/परीक्षण से हटा दिया गया। प्रत्येक पंक्ति में एक lisans फ़ील्ड है।

विभाजनप्रोजेक्टपंक्तियाँअद्वितीय स्रोत फ़ंक्शन
प्रशिक्षण290196,11772,179
सत्यापन2319,7706,667
परीक्षण (अल्पज्ञात, ≤200 स्टार, 2024+)2812,2904,685

473 प्रोजेक्ट में से, 352 ने पंक्तियाँ उत्पन्न कीं और 120 संकलित होने में विफल रहे (कर्नेल, एम्बेडेड, या प्लेटफ़ॉर्म-निर्भर कोड)। केवल clang का उपयोग किया गया। डेटा Git के बाहर रखा गया है और python3 aday_bul.py और python3 olcekle.py hepsi के साथ पुनः उत्पन्न किया जा सकता है।

प्रशिक्षण/परीक्षण विभाजन सख्ती से प्रोजेक्ट-स्तरीय है: किसी प्रोजेक्ट का कोई फ़ंक्शन दोनों पक्षों में नहीं आ सकता। परीक्षण प्रोजेक्ट जानबूझकर अल्पज्ञात (2-190 स्टार) चुने गए, और अधिकांश 2024-2025 में शुरू हुए, जिससे यह बहुत कम संभावना है कि बड़े मॉडलों ने प्रशिक्षण के दौरान उन्हें zlib जैसी लाइब्रेरी की तुलना में देखा हो। लाइसेंस: veri/LISANSLAR.md।

ज्ञात अपवाद: वेंडर किया गया कोड। जारी किए गए v6 डेटा का एक स्वतंत्र ऑडिट (rapor/arastirma/V6_VERI_DENETIMI.md, veri_denetim_v6.py) ने पुष्टि की कि कोई प्रोजेक्ट, id या (प्रोजेक्ट, फ़ाइल, नाम) दोनों पक्षों में नहीं आता, लेकिन परीक्षण प्रोजेक्ट snkv अपने स्वयं के फ़ाइल नामों के तहत SQLite को एम्बेड करता है जबकि sqlite एक प्रशिक्षण प्रोजेक्ट है। निश्चित 2,000-पंक्ति परीक्षण नमूने में, 217 पंक्तियों (10.85%) का नाम SQLite प्रशिक्षण फ़ंक्शन के समान है। हर मॉडल उन पंक्तियों पर कम स्कोर करता है, इसलिए वे परिणामों को बढ़ाते नहीं हैं; वे छोटे-बनाम-बड़े अंतर को संकीर्ण करते हैं (परिणाम, खंड 6 देखें)। सत्यापन नमूने valid_300 में 16 समान पंक्तियाँ हैं (5.3%)।

परिणाम

1. याद रखने-प्रतिरोधी परीक्षण: 5 अल्पज्ञात प्रोजेक्ट, 115 फ़ंक्शन

औसत नाम F1 (1.0 = सटीक मिलान)। "प्रीफ़िक्स-स्ट्रिप्ड F1" कॉलम में, प्रत्येक प्रोजेक्ट का सामान्य नाम प्रीफ़िक्स (cyaml_, mu_, sajs_) दोनों पक्षों से हटा दिया जाता है; मॉडल असेंबली से इस प्रीफ़िक्स का अनुमान नहीं लगा सकता।

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