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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
joern — C/C++/Java/Binary/Javascript/Python/Kotlin के लिए कोड प्रॉपर्टी ग्राफ़ पर आधारित ओपन-सोर्स कोड विश्लेषण प्लेटफ़ॉर्म। Discord https://discord.gg/vv4MH284Hc | Kitploit
उपकरण/GitHubGitHub/joernio/joern
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगबाइनरी विश्लेषण
GitHubjoernio/joern

joern

C/C++/Java/Binary/Javascript/Python/Kotlin के लिए कोड प्रॉपर्टी ग्राफ़ पर आधारित ओपन-सोर्स कोड विश्लेषण प्लेटफ़ॉर्म। Discord https://discord.gg/vv4MH284Hc

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
वेबसाइट

Joern क्वेरी डेटाबेस ("Joern-Scan")

यह ओपन-सोर्स कोड विश्लेषण प्लेटफॉर्म Joern के लिए केंद्रीय क्वेरी डेटाबेस है। इसके दो उद्देश्य हैं:

  • यह Joern को एक तैयार-चलाने योग्य कोड स्कैनिंग टूल में बदलने के लिए आवश्यक सभी सुविधाएँ प्रदान करता है।
  • इसकी क्वेरीज़ उन लोगों के लिए उपयोगी उदाहरण के रूप में काम करती हैं जो अपनी खुद की क्वेरी लिखना चाहते हैं।
  • JDK11 पर निर्मित लेकिन JRE >= 1.8 पर चलता है

क्वेरी डेटाबेस एक स्वतंत्र लाइब्रेरी के रूप में वितरित किया जाता है जिसमें Joern एक निर्भरता के रूप में शामिल है। इसका मतलब है कि डेटाबेस में क्वेरी का उपयोग करने के लिए Joern स्थापित करना आवश्यक नहीं है।

साथ ही, डेटाबेस एक Joern एक्सटेंशन है, अर्थात्, जब स्टार्टअप पर गतिशील रूप से लोड किया जाता है, तो इसकी कार्यक्षमता इंटरैक्टिव Joern शेल और Joern स्क्रिप्ट में उपलब्ध हो जाती है।

आप इस प्रोजेक्ट को फोर्क कर सकते हैं ताकि अपनी खुद की कस्टम क्वेरीज़ और स्कैनर बना सकें, या कृपया इस रेपो में PR भेज सकते हैं ताकि डिफ़ॉल्ट वितरण में शामिल करने पर विचार किया जा सके।

स्थापना और चलाना

स्थापना स्क्रिप्ट joern डाउनलोड करती है और इसे एक उप-निर्देशिका में स्थापित करती है। क्वेरी डेटाबेस एक एक्सटेंशन के रूप में स्थापित किया जाता है।

root@kitploit:~
./install.sh

आप सभी क्वेरीज़ निम्नानुसार चला सकते हैं:

root@kitploit:~
./joern-scan path/to/code

उदाहरण के लिए,

root@kitploit:~
mkdir foo
echo "int foo(int a, int b, int c, int d, int e, int f) {}" > foo/foo.c
./joern-scan foo

सभी क्वेरीज़ को foo निर्देशिका में नमूना कोड पर चलाता है, यह निर्धारित करता है कि फ़ंक्शन foo में बहुत अधिक पैरामीटर हैं।

अपनी खुद की क्वेरी जोड़ना

कृपया आंसू-मुक्त क्वेरी लेखन अनुभव के लिए नीचे दिए गए नियमों का पालन करें:

  • io.joern.scanners पैकेज में क्वेरीज़ रनटाइम पर स्वचालित रूप से उठा ली जाती हैं, इसलिए कृपया अपनी क्वेरी वहाँ रखें।
  • प्रत्येक क्वेरी @q एनोटेशन से शुरू होनी चाहिए और एक क्वेरी बंडल में रखी जानी चाहिए। एक क्वेरी बंडल बस एक object है जो QueryBundle से व्युत्पन्न होता है
  • क्वेरी में पैरामीटर हो सकते हैं, लेकिन आपको प्रत्येक पैरामीटर के लिए एक डिफ़ॉल्ट मान प्रदान करना होगा
  • कृपया क्वेरी के लिए यूनिट टेस्ट जोड़ें। ये आपकी क्वेरी क्या करती है इसके लिए एक स्पेक के रूप में भी काम करते हैं।
  • कृपया PR भेजने से पहले sbt scalafmt Test/scalafmt का उपयोग करके कोड को फॉर्मेट करें

src/main/scala/io/joern/scanners/c/Metrics.scala पर क्वेरी बंडल Metrics पर एक नज़र डालें एक उदाहरण के रूप में:

root@kitploit:~
object Metrics extends QueryBundle {

  @q
  def tooManyParameters(n: Int = 4): Query =
    Query.make(
      name = "too-many-params",
      author = Crew.fabs,
      title = s"Number of parameters larger than $n",
      description = s"This query identifies functions with more than $n formal parameters",
      score = 1.0,
      withStrRep({ cpg =>
        cpg.method.internal.filter(_.parameter.size > n)
      }),
      tags = List(QueryTags.metrics)
    )

  @q
  def tooHighComplexity(n: Int = 4): Query =
    Query.make(
      name = "too-high-complexity",
      author = Crew.fabs,
      title = s"Cyclomatic complexity higher than $n",
      description = s"This query identifies functions with a cyclomatic complexity higher than $n",
      score = 1.0,
      withStrRep({ cpg =>
        cpg.method.internal.filter(_.controlStructure.size > n)
      }),
      tags = List(QueryTags.metrics)
    )
  ...
}

क्वेरी के संबंधित परीक्षण src/test/scala/io/joern/scanners में स्थित हैं। उदाहरण के लिए, मेट्रिक्स क्वेरी के परीक्षण src/test/scala/io/joern/scanners/c/MetricsTests.scala में स्थित हैं:

root@kitploit:~
class MetricsTests extends Suite {

  override val code = """
    int too_many_params(int a, int b, int c, int d, int e) {
    }
	...
	"""

  "find functions with too many parameters" in {
    Metrics.tooManyParameters(4)(cpg).map(_.evidence) match {
      case List(List(method: nodes.Method)) =>
        method.name shouldBe "too_many_params"
      case _ => fail
    }
  }
  ...
}

इन परीक्षणों को क्वेरी विकास के दौरान IntelliJ IDE से व्यक्तिगत रूप से चलाया जा सकता है।

डेटाबेस का निर्माण/परीक्षण

हम Scala Build Tool (sbt) का उपयोग करते हैं। कृपया सुनिश्चित करें कि आपके पास sbt स्थापित है। संस्करण मायने नहीं रखता क्योंकि sbt बिल्ड फ़ाइल (build.sbt) के आधार पर आवश्यक संस्करण लाएगा।

एक बार sbt स्थापित हो जाने पर, आप डेटाबेस का निर्माण और परीक्षण निम्नानुसार कर सकते हैं:

root@kitploit:~
sbt test

आप नव विकसित क्वेरी का परीक्षण कर सकते हैं

यदि आप नव निर्मित क्वेरी का joern-scan के साथ परीक्षण करना चाहते हैं तो निम्नानुसार:

root@kitploit:~
sbt joerncli/stage
./querydb-install.sh && ./joern-scan <src>

डेटाबेस को JSON में निर्यात करना

install.sh चलाने के बाद, आप लॉन्च कर सकते हैं

root@kitploit:~
./joern-scan --dump

एक फ़ाइल querydb.json बनाने के लिए जिसमें सभी उपलब्ध क्वेरी और उनकी मेटा जानकारी की सूची होती है।

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