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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/m4b/goblin
रिवर्स इंजीनियरिंगफज़िंगबाइनरी विश्लेषण
GitHubm4b/goblin

goblin

एक शरारती, क्रॉस-प्लेटफॉर्म बाइनरी पार्सिंग क्रेट, रस्ट में लिखा गया

रिपॉजिटरी देखें
1.5k2002 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

libgoblin

Actions crates.io version

सही शब्द कहें

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

https://docs.rs/goblin/

परिवर्तन लॉग

उपयोग

Goblin को rustc 1.85.0 (Rust 2024 संस्करण) की आवश्यकता है।

अपने Cargo.toml में जोड़ें:

root@kitploit:~
[dependencies]
goblin = "0.10"

विशेषताएँ

  • बढ़िया क्रेट नाम
  • शून्य-प्रतिलिपि, क्रॉस-प्लेटफ़ॉर्म, एंडियन-जागरूक, ELF64/32 कार्यान्वयन - वाह!
  • शून्य-प्रतिलिपि, क्रॉस-प्लेटफ़ॉर्म, एंडियन-जागरूक, 32/64 बिट Mach-o पार्सर - ज़ोइक्स!
  • PE 32/64-बिट पार्सर - बिंग!
  • एक यूनिक्स और BSD शैली का संग्रह पार्सर (बाद वाला @willglynn के सौजन्य से) - हुज़्ज़ा!
  • कई cfg विकल्प - यह आपके सिर को घुमा देगा, और स्रोत पढ़ते समय आपको गुस्सा दिलाएगा!
  • फज़ किया गया - "मुझे यह रिपोर्ट करते हुए खुशी हो रही है कि goblin ने 100 मिलियन फ़ज़िंग रन सहे लिए, 1 मिलियन रन प्रत्येक बीज 1 से 100 के लिए।" - @sanxiyn
  • परीक्षण

libgoblin का उद्देश्य बाइनरी पार्सिंग, लोडिंग और विश्लेषण के लिए आपका एक-स्टॉप शॉप बनना है।

उपयोग-मामले

Goblin मुख्य रूप से निम्नलिखित महत्वपूर्ण उपयोग-मामलों का समर्थन करता है:

  1. कोर, std-मुक्त #[repr(C)] स्ट्रक्ट, छोटा संकलन समय, आपकी सुविधानुसार 32/64 (या दोनों)।

  2. टाइप पनिंग। एक बार किसी प्रकार पर एक फ़ंक्शन परिभाषित करें, लेकिन इसे 32 या 64-बिट वेरिएंट पर काम करने दें - वास्तव में कुछ भी बदले बिना, और कोई मैक्रो नहीं! एक बुनियादी उदाहरण के लिए examples/automagic.rs देखें।

  3. std मोड। यह Pread और Pwrite के माध्यम से रीड और राइट कार्यान्वयन, फ़ाइल से पढ़ना, सुविधा आवंटन, अतिरिक्त विधियाँ आदि जोड़ता है। यह उन ग्राहकों के लिए है जो आवंटन कर सकते हैं और डिस्क से बाइनरी पढ़ना चाहते हैं।

  4. Endian_fd। एक वास्तव में भयानक नाम 😆 यह panopticon या falcon जैसे बाइनरी विश्लेषण के लिए है, जिसे विदेशी एंडियननेस की बाइनरी पढ़ने की आवश्यकता होती है, या क्रॉस-प्लेटफ़ॉर्म विदेशी आर्किटेक्चर बिनुटिल्स बनाने के आधार के रूप में, उदा. cargo-sym और bingrep इसके सरल उदाहरण हैं, लेकिन सीमा आकाश है।

यहाँ कुछ चीजें हैं जो आप इस क्रेट के साथ कर सकते हैं (या कार्यान्वित करने में मदद कर सकते हैं ताकि वे किए जा सकें):

  1. एक कंपाइलर लिखें और इसका उपयोग बाइनरी उत्पन्न करने के लिए करें (सभी कच्चे C स्ट्रक्ट में Pwrite व्युत्पन्न है)।
  2. एक बाइनरी विश्लेषण उपकरण लिखें जो विभिन्न बाइनरी प्रारूपों को लोड, पार्स और विश्लेषित करता है, उदा., panopticon या falcon।
  3. एक अर्ध-कार्यशील गतिशील लिंकर लिखें।
  4. एक कर्नेल लिखें और no_std cfg का उपयोग करके बाइनरी लोड करें। यानी, यह मूल रूप से सिर्फ स्ट्रक्ट और कॉन्स्ट डेफिनिशन है (C हेडर की तरह) - कोई fd, कोई आउटपुट, कोई std नहीं।
  5. एक bin2json उपकरण लिखें, क्योंकि बाइनरी प्रारूप JSON में क्यों नहीं होने चाहिए?

Cfgs

libgoblin को बड़े पैमाने पर कॉन्फ़िगरेबल बनाने के लिए डिज़ाइन किया गया है। वर्तमान फ़्लैग हैं:

  • elf64 - 64-बिट elf बाइनरी, repr(C) स्ट्रक्ट डेफ
  • elf32 - 32-बिट elf बाइनरी, repr(C) स्ट्रक्ट डेफ
  • mach64 - 64-बिट mach-o repr(C) स्ट्रक्ट डेफ
  • mach32 - 32-बिट mach-o repr(C) स्ट्रक्ट डेफ
  • pe32 - 32-बिट PE repr(C) स्ट्रक्ट डेफ
  • pe64 - 64-बिट PE repr(C) स्ट्रक्ट डेफ
  • te - Terse Executable (TE) repr(C) स्ट्रक्ट डेफ
  • archive - एक यूनिक्स संग्रह पार्सर
  • endian_fd - बाइनरी में एंडियननेस के अनुसार पार्स करें
  • std - no_std वातावरण की अनुमति देने के लिए

अनुरक्षक

  1. PE: @kkent030315
  2. Elf: @m4b, आवेदनों के लिए खुला
  3. Mach-o: @m4b, आवेदनों के लिए खुला

अनुरक्षक उस विशेष बैकएंड के लिए पहले संपर्क समीक्षक होते हैं। इन्हें पिछले योगदान, गतिविधि, मूल ज्ञान और मैत्रीपूर्ण और मिलनसार व्यवहार के आधार पर चुना जाता है :D

वर्तमान में, मेरे (@m4b) पास सभी PR के लिए मर्ज अधिकार हैं। भविष्य में यह संभावना है कि उस दिए गए बैकएंड के अनुरक्षक के पास भी मर्ज अधिकार होंगे।

अंत में, मैं अभी भी सभी PR की सतही समीक्षा करूंगा, लेकिन अधिकतर/पूरी तरह से उस बैकएंड के अनुरक्षक पर निर्भर रहूंगा।

और हमेशा बिल और टेड की बुद्धि को याद रखें: "एक दूसरे के प्रति उत्कृष्ट बनें!"

योगदानकर्ता

आप सभी का धन्यवाद ❤️ !

वर्णमाला क्रम में:

  • @000lbh
  • @2vg
  • @5225225
  • @alessandrod
  • @amanieu
  • @anfedotoff
  • @apalm
  • @baloo
  • @BinFlip
  • @burjui
  • @CalebFenton
  • @chf0x
  • @connorkuehl
  • @dancrossnyc
  • @DreydenGys
  • @dureuill
  • @Evian-Zhang
  • @ExPixel
  • @flanfly
  • @glandium
  • @glslang
  • @Gelbpunkt
  • @gunbux
  • @h33p
  • @hannahfluch
  • @Hexorg
  • @ibabushkin
  • @ideeockus

योगदान

जब तक स्पष्ट रूप से अन्यथा न कहा गया हो, आप सहमत हैं कि आपके योगदान साथ में दी गई LICENSE फ़ाइल (MIT) में वर्णित अनुसार लाइसेंस प्राप्त हैं।

  1. कृपया कमिट को प्रभावित बाइनरी घटक के साथ उपसर्ग करें; जितना अधिक विशिष्ट होगा उतना बेहतर, उदा., यदि आप केवल elf मॉड्यूल में रिलोकेशन को संशोधित करते हैं, तो "elf.reloc: Z80 के लिए नए स्थिरांक जोड़े" करें।
  2. कमिट संदेशों को उनके परिवर्तन की व्याख्या करनी चाहिए, कोई सामान्य "बदला गया" या "सुधार" नहीं; यदि आप PR पर इस तरह के कमिट धकेलते हैं, तो सावधान रहें @m4b या कोई और संभवतः उन्हें स्क्वैश करेगा।
  3. यदि आप किसी मॉड्यूल में बड़ा परिवर्तन कर रहे हैं, तो कृपया पहले एक मुद्दा उठाएं और चर्चा करें; मैं आपका समय बर्बाद नहीं करना चाहता यदि यह अच्छी तकनीकी दिशा नहीं है, आदि।
  4. यदि आपके PR पर ध्यान नहीं जा रहा है, तो कृपया PR पर उठाई गई सभी प्रासंगिक टिप्पणियों का जवाब दें, और यदि अभी भी कोई प्रतिक्रिया नहीं है, तो GitHub पर @m4b को पिंग करें और @m4b को ईमेल करने में भी संकोच न करें।
  5. यदि आप कोई नई सुविधा जोड़ रहे हैं तो कृपया परीक्षण जोड़ें। भले ही आप नहीं जोड़ रहे हों, परीक्षण जोड़ने में संकोच न करें, परीक्षण rust में बहुत अच्छे और आसान हैं।
टूल डाउनलोड करें
@ivlzme
  • @jackcmay
  • @jan-auer
  • @Javagedes
  • @jessehui
  • @jdub
  • @Jhynjhiruu
  • @JohnScience
  • @johannst
  • @joschock
  • @jrmuizel
  • @jsgf
  • @Jvlegod
  • @keith
  • @kjempelodott
  • @kkent030315
  • @ko1n
  • @le-jzr
  • @Lichtso
  • @lion128
  • @lissyx
  • @llogiq
  • @lumag
  • @lzutao
  • @lzybkr
  • @m-hilgendorf
  • @makubacki
  • @mmaekr
  • @m4b
  • @messense
  • @mitsuhiko
  • @mkroening
  • @mre
  • @Mrmaxmeier
  • n01e0
  • nathaniel-daniel
  • @nick96
  • @nico-abram
  • @npmccallum
  • @pchickey
  • @philipc
  • @PJB3005
  • @prettyroseslover
  • @Pzixel
  • @quake
  • @raindev
  • @RaitoBezarius
  • @ReturnRei
  • @rocallahan
  • @sanxiyn
  • @SAY-5
  • @skdltmxn
  • @sollyucko
  • @supervacuus
  • @Swatinem
  • @SweetVishnya
  • @SquareMan
  • @tathanhdinh
  • @Techno-coder
  • @tiann
  • @ticki
  • @Timmmm
  • @Tiwalun
  • @track-5
  • @tux3
  • @wickerwacka
  • @willglynn
  • @woodruffw
  • @wyxloading
  • @xcoldhandsx
  • @x0rb3l
  • @x64k