class PEdump::WIN_CERTIFICATE

msdn.microsoft.com/en-us/library/aa447037.aspx

Public Class Methods

read(f) click to toggle source
Calls superclass method
# File lib/pedump/security.rb, line 37
def self.read f
  super.tap do |x|
    if x.dwLength.to_i < 8
      PEdump.logger.error "[!] #{x.class}: too small length #{x.dwLength}"
    elsif x.dwLength.to_i > 0x100_000
      PEdump.logger.error "[!] #{x.class}: too big length #{x.dwLength}"
    else
      x.data = f.read(x.dwLength - 8)
      begin
        case x.wCertificateType
        when 2
          require 'openssl'
          x.data = OpenSSL::PKCS7.new(x.data)
        end
      rescue
        PEdump.logger.error "[!] #{$!}"
      end
    end
  end
end