class ZSteg::Checker::WBStego::Result
Attributes
color[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/zsteg/checker/wbstego.rb, line 17 def initialize *args super if self.size.is_a?(String) self.size = (self.size[0,3] + "\x00").unpack('V')[0] end self.even ||= false #self.encrypted ||= false if ext[0,2] == "\x00\xff" # wbStego 4.x header self.hdr = data[0,ext[2].ord] # 3rd ext byte is hdr len self.data = data[hdr.size..-1] self.ext = nil # encrypted files have no ext self.enc = ENCRYPTIONS[hdr[0].ord] || "unknown ##{hdr[0].ord}" elsif (cb=ext[0].ord) & 0xc0 != 0 # wbStego 2.x/3.x controlbyte self.controlbyte = ext[0] self.data = ext[1..-1] + data self.ext = nil # have ext but its encrypted/mixed with data self.mix = true if cb & 0x40 != 0 self.enc = "wbStego 2.x/3.x" if cb & 0x80 != 0 end end
Public Instance Methods
to_s()
click to toggle source
# File lib/zsteg/checker/wbstego.rb, line 40 def to_s s = inspect. sub("#<struct #{self.class.to_s}", "<wbStego"). gsub(/, \w+=nil/,'') color = @color if ext && !valid_ext? s.sub!(data.inspect, data[0,10].inspect+"...") if data && data.size>13 color ||= :gray else s.sub!(data.inspect, data[0,10].inspect+"...") if data && data.size>13 && enc color ||= :bright_red end s.send(color) end
valid_ext?()
click to toggle source
XXX require that file extension be 7-bit ASCII
# File lib/zsteg/checker/wbstego.rb, line 58 def valid_ext? ext =~ /\A[\x20-\x7e]+\Z/ && !ext['*'] && !ext['?'] end