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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
heapinfo — पेनिंग/एक्सप्लॉइटिंग के लिए एक इंटरैक्टिव मेमोरी जानकारी | Kitploit
उपकरण/GitHubGitHub/david942j/heapinfo
मेमोरी फोरेंसिकशोषणडीबगर्सCTFबाइनरी विश्लेषणबाइनरी शोषण
GitHubdavid942j/heapinfo

heapinfo

पेनिंग/एक्सप्लॉइटिंग के लिए एक इंटरैक्टिव मेमोरी जानकारी

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

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

सभी देखें →

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

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

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

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

Build Status Downloads Code Climate Issue Count Test Coverage Inline docs MIT License

HeapInfo

pwn प्रेमियों के रूप में, जब CTF में heap शोषण के साथ खेलते हैं, तो हमें मेमोरी लेआउट को ट्रैक करने के लिए हमेशा एक डीबगर (जैसे gdb) की आवश्यकता होती है। लेकिन अगर हम यह देखना चाहते हैं कि heap लेआउट हमारी कल्पना के अनुसार है या नहीं, तो हमें वास्तव में gdb की आवश्यकता नहीं है। उम्मीद है कि यह छोटा उपकरण हमें आसानी से शोषण करने में मदद करेगा ;)।

क्यों

HeapInfo तब बहुत सहायक होता है जब बाइनरी में किसी तरह की एंटी-डीबगर सीमाएँ हों, उदाहरण के लिए ptraced होना। HeapInfo फिर भी काम करता है क्योंकि यह ptrace का उपयोग नहीं करता।

Ruby में लागू किया गया क्योंकि मुझे Ruby पसंद है :P। लेकिन भविष्य में Python में भी लागू किया जा सकता है (यदि कोई और नहीं करता)।

यदि आप शोषण के लिए pwntools पसंद करते हैं, तब भी आप HeapInfo को irb/pry में एक छोटे डीबगर के रूप में उपयोग कर सकते हैं।

सुविधाओं के बारे में कोई सुझाव या बग की समस्याएँ स्वागत हैं।

स्थापना

HeapInfo अभी भी अधिक सुविधाओं के लिए विकास के अधीन है, इसलिए संस्करण बार-बार बदल सकता है :p

root@kitploit:~
$ gem install heapinfo

विशेषताएँ

  • अपने Ruby शोषण स्क्रिप्ट या irb/pry में उपयोग किया जा सकता है।
  • HeapInfo तब भी काम करता है जब victim को trace किया जा रहा हो! अर्थात आप ltrace/strace/gdb और HeapInfo एक साथ उपयोग कर सकते हैं!
  • dump - किसी भी पते की मेमोरी डंप करें।
  • layouts - वर्तमान bin लेआउट दिखाएँ, heap शोषण के लिए बहुत उपयोगी।
  • offset - दिए गए पते और सेगमेंट के बीच ऑफ़सेट दिखाएँ। सापेक्ष ऑफ़सेट की गणना के लिए बहुत उपयोगी।
  • canary - स्टैक गार्ड का मान प्राप्त करें!
  • x - GDB-शैली के आदेश।
  • s - GDB-शैली के आदेश।
  • find - GDB-शैली के आदेश।
  • अधिक सुविधाएँ और विवरण RDoc में पाए जा सकते हैं।

उपयोग

लोड

root@kitploit:~
require 'heapinfo'
# ./victim चल रहा है
h = heapinfo('victim') 
# या pid निर्दिष्ट करने के लिए h = heapinfo(20568) का उपयोग करें

# लोड करने पर सरल जानकारी प्रस्तुत करेगा:
# Program: /home/heapinfo/victim PID: 20568
# victim          base @ 0x400000
# [heap]          base @ 0x11cc000
# [stack]         base @ 0x7fff2b244000
# libc-2.19.so    base @ 0x7f892a63a000
# ld-2.19.so      base @ 0x7f892bee6000
# canary          value: 0x84b742f03d94c100

# सेगमेंट्स की जानकारी प्रश्न करें
"%#x" % h.libc.base
#=> "0x7f892a63a000"
h.libc.name
#=> "/lib/x86_64-linux-gnu/libc-2.19.so"
"%#x" % h.elf.base
#=> "0x400000"
"%#x" % h.heap.base
#=> "0x11cc000"

सूचना: जब प्रक्रिया नहीं मिलती, तो अधिकांश विधियाँ nil लौटाएँगी। किसी भी त्रुटि को रोकने का एक तरीका विधियों को debug के अंदर रैप करना है, ब्लॉक को दूरस्थ शोषण के दौरान अनदेखा किया जाएगा।

root@kitploit:~
h = heapinfo('remote')
# प्रक्रिया नहीं मिली
h.pid # nil

# `debug` के साथ रैप करें ताकि दूरस्थ सेवा पर हमला करते समय कोई त्रुटि न उत्पन्न हो
h.debug { fail unless leak_libc_base == h.libc.base }

Dump

किसी विशिष्ट पते की सामग्री प्रश्न करें।

सूचना: आपके पास प्रोग्राम को अटैच करने की अनुमति होनी चाहिए, अन्यथा डंप विफल होगा।

अर्थात /proc/sys/kernel/yama/ptrace_scope को 0 पर सेट करें या रूट के रूप में चलाएँ।

root@kitploit:~
h.debug do
  p h.dump(:libc, 8)
  #=> "\x7FELF\x02\x01\x01\x00"
  p h.dump(:heap, 16)
  #=> "\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00"
  p h.dump('heap+0x30', 16) # ऑफ़सेट समर्थन!
  #=> "\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00"
  p h.dump('heap+0x30 * 3 + 0x8', 16) # और जटिल सूत्र भी!
  #=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  p h.dump(:program, 8)
  #=> "\x7FELF\x02\x01\x01\x00"
  p h.dump(0x400000, 8) # या सीधे पता दें
  #=> "\x7FELF\x02\x01\x01\x00"
end

# अमान्य उदाहरण:
# h.dump('meow') # ऐसा कोई सेगमेंट नहीं

layouts

root@kitploit:~
h.layouts :fast

fastbin layouts

root@kitploit:~
h.layouts :unsorted, :small

smallbin layouts

root@kitploit:~
h.layouts :tcache

tcache layouts

offset

root@kitploit:~
h.offset(0x7fda86fe8670)
# 0xf6670 after libc
h.offset(0x1839cd0, :heap) # विशिष्ट सेगमेंट नाम
# 0x20cd0 after heap
h.offset(0x1839cd0)
# 0x20cd0 after heap

offset

canary

root@kitploit:~
h.canary.to_s(16)
#=> '84b742f03d94c100'

x - GDB-शैली आदेश

root@kitploit:~
h.x 8, :heap

x/8gx

find - GDB-शैली आदेश

मेमोरी का एक खोजक प्रदान करें, (naive) gdb की तुलना में उपयोग करना आसान।

पूर्णांक, स्ट्रिंग और यहाँ तक कि नियमित अभिव्यक्ति की खोज का समर्थन करता है।

root@kitploit:~
h.find(0xdeadbeef, 'heap+0x10', 0x1000)
#=> 6299664 # 0x602010
h.find(/E.F/, 0x400000, 4)
#=> 4194305 # 0x400001
h.find(/E.F/, 0x400000, 3)
#=> nil

# खोज परिणाम का सापेक्ष ऑफ़सेट प्राप्त करें
h.find('/bin/sh', :libc, rel: true)
#=> 1622391 # 0x18c177
h.offset(h.find('/bin/sh', :libc))
# 0x18c177 after libc

परीक्षण

HeapInfo वर्तमान में केवल Ubuntu पर परीक्षण चलाता है, निम्नलिखित परीक्षण की गई glibc संस्करण हैं:

  • libc-2.19
  • libc-2.23
  • libc-2.24
  • libc-2.25
  • libc-2.26
  • libc-2.27
  • libc-2.29
टूल डाउनलोड करें