module Msf
module Util
module DotNetDeserialization
module Assemblies
class StrongName
def initialize(name, version, public_key_token, culture: 'neutral')
@name = name
@version = version
@public_key_token = public_key_token
@culture = culture
end
attr_reader :name, :version, :public_key_token, :culture
def to_s
"#{name}, Version=#{version}, Culture=#{culture}, PublicKeyToken=#{public_key_token}"
end
def [](type_name)
QualifiedName.new(type_name, self)
end
end
class QualifiedName
def initialize(name, assembly)
@name = name
@assembly = assembly
end
attr_reader :name, :assembly
def to_s
"#{name}, #{assembly}"
end
end
VERSIONS = {
'4.0.0.0' => {
'mscorlib' => StrongName.new('mscorlib', '4.0.0.0', 'b77a5c561934e089'),
'System' => StrongName.new('System', '4.0.0.0', 'b77a5c561934e089'),
'System.Configuration.Install' => StrongName.new('System.Configuration.Install', '4.0.0.0', 'b03f5f7f11d50a3a'),
'System.Data' => StrongName.new('System.Data', '4.0.0.0', 'b77a5c561934e089')
}
}
end
end
end
end