Method: HeapInfo::Process#offset
- Defined in:
- lib/heapinfo/process.rb
#offset(addr, sym = nil) ⇒ void Also known as: off
This method returns an undefined value.
Show the offset in pretty way between the segment. Very useful in pwn when leak some address, see examples for more details.
116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/heapinfo/process.rb', line 116 def offset(addr, sym = nil) return unless load? segment = @info.to_segment(sym) if segment.nil? sym, segment = @info.segments .select { |_, seg| seg.base <= addr } .min_by { |_, seg| addr - seg } end return $stdout.puts "Invalid address #{Helper.hex(addr)}" if segment.nil? $stdout.puts Helper.color(Helper.hex(addr - segment)) + ' after ' + Helper.color(sym, sev: :sym) end |