module Xploit::Pack
Constants
- PACK_HASH
Public Instance Methods
p16(*data)
click to toggle source
# File lib/xploit/util.rb, line 26 def p16(*data) pack(data, :uword) end
p32(*data)
click to toggle source
# File lib/xploit/util.rb, line 34 def p32(*data) pack(data, :udword) end
p64(*data)
click to toggle source
# File lib/xploit/util.rb, line 42 def p64(*data) pack(data, :uqword) end
p8(*data)
click to toggle source
# File lib/xploit/util.rb, line 18 def p8(*data) pack(data, :ubyte) end
pack(data, type)
click to toggle source
# File lib/xploit/util.rb, line 82 def pack(data, type) data.flatten.pack("#{PACK_HASH[type][0]}*") end
pi16(*data)
click to toggle source
# File lib/xploit/util.rb, line 30 def pi16(*data) pack(data, :word) end
pi32(*data)
click to toggle source
# File lib/xploit/util.rb, line 38 def pi32(*data) pack(data, :dword) end
pi64(*data)
click to toggle source
# File lib/xploit/util.rb, line 46 def pi64(*data) pack(data, :qword) end
pi8(*data)
click to toggle source
# File lib/xploit/util.rb, line 22 def pi8(*data) pack(data, :byte) end
u16(*data)
click to toggle source
# File lib/xploit/util.rb, line 58 def u16(*data) unpack(data, :uword) end
u32(*data)
click to toggle source
# File lib/xploit/util.rb, line 66 def u32(*data) unpack(data, :udword) end
u64(*data)
click to toggle source
# File lib/xploit/util.rb, line 74 def u64(*data) unpack(data, :uqword) end
u8(*data)
click to toggle source
# File lib/xploit/util.rb, line 50 def u8(*data) unpack(data, :ubyte) end
ui16(*data)
click to toggle source
# File lib/xploit/util.rb, line 62 def ui16(*data) unpack(data, :word) end
ui32(*data)
click to toggle source
# File lib/xploit/util.rb, line 70 def ui32(*data) unpack(data, :dword) end
ui64(*data)
click to toggle source
# File lib/xploit/util.rb, line 78 def ui64(*data) unpack(data, :qword) end
ui8(*data)
click to toggle source
# File lib/xploit/util.rb, line 54 def ui8(*data) unpack(data, :byte) end
unpack(data, type)
click to toggle source
# File lib/xploit/util.rb, line 86 def unpack(data, type) tempchar, tempbyte = PACK_HASH[type] data = data.flatten.map do |d| unless (pad_size = d.bytesize % tempbyte) == 0 pad_size = d.bytesize + tempbyte - (d.bytesize % tempbyte) end d.ljust(pad_size, "\x00").unpack("#{tempchar}*") end data.flatten end