4.6 KiB
सामान्य बाइनरी शोषण सुरक्षा और बायपास
{{#include ../../banners/hacktricks-training.md}}
कोर फ़ाइलें सक्षम करें
कोर फ़ाइलें एक प्रकार की फ़ाइल होती हैं जो एक ऑपरेटिंग सिस्टम द्वारा तब उत्पन्न की जाती हैं जब कोई प्रक्रिया क्रैश होती है। ये फ़ाइलें क्रैश हुई प्रक्रिया की मेमोरी छवि को उसके समाप्ति के समय कैप्चर करती हैं, जिसमें प्रक्रिया की मेमोरी, रजिस्टर और प्रोग्राम काउंटर की स्थिति, अन्य विवरणों के साथ शामिल होती हैं। यह स्नैपशॉट डिबगिंग और यह समझने के लिए अत्यंत मूल्यवान हो सकता है कि क्रैश क्यों हुआ।
कोर डंप जनरेशन सक्षम करना
डिफ़ॉल्ट रूप से, कई सिस्टम कोर फ़ाइलों के आकार को 0 (यानी, वे कोर फ़ाइलें उत्पन्न नहीं करते) तक सीमित करते हैं ताकि डिस्क स्थान बचाया जा सके। कोर फ़ाइलों के उत्पादन को सक्षम करने के लिए, आप ulimit
कमांड (bash या समान शेल में) का उपयोग कर सकते हैं या सिस्टम-व्यापी सेटिंग्स को कॉन्फ़िगर कर सकते हैं।
- ulimit का उपयोग करना: कमांड
ulimit -c unlimited
वर्तमान शेल सत्र को असीमित आकार की कोर फ़ाइलें बनाने की अनुमति देती है। यह डिबगिंग सत्रों के लिए उपयोगी है लेकिन रिबूट या नए सत्रों के बीच स्थायी नहीं है।
ulimit -c unlimited
- स्थायी कॉन्फ़िगरेशन: एक अधिक स्थायी समाधान के लिए, आप
/etc/security/limits.conf
फ़ाइल को संपादित कर सकते हैं ताकि इसमें एक पंक्ति शामिल हो जैसे* soft core unlimited
, जो सभी उपयोगकर्ताओं को बिना अपने सत्रों में मैन्युअल रूप से ulimit सेट किए बिना असीमित आकार के कोर फ़ाइलें उत्पन्न करने की अनुमति देती है।
- soft core unlimited
GDB के साथ कोर फ़ाइलों का विश्लेषण करना
कोर फ़ाइल का विश्लेषण करने के लिए, आप GDB (GNU डिबगर) जैसे डिबगिंग टूल का उपयोग कर सकते हैं। मान लीजिए कि आपके पास एक निष्पादन योग्य फ़ाइल है जिसने एक कोर डंप उत्पन्न किया और कोर फ़ाइल का नाम core_file
है, आप विश्लेषण शुरू कर सकते हैं:
gdb /path/to/executable /path/to/core_file
यह कमांड निष्पादन योग्य और कोर फ़ाइल को GDB में लोड करता है, जिससे आप क्रैश के समय प्रोग्राम की स्थिति की जांच कर सकते हैं। आप स्टैक का पता लगाने, वेरिएबल की जांच करने और क्रैश के कारण को समझने के लिए GDB कमांड का उपयोग कर सकते हैं।
{{#include ../../banners/hacktricks-training.md}}