lib/rex/proto/rfb/client.rb in rex-2.0.8 vs lib/rex/proto/rfb/client.rb in rex-2.0.9

- old
+ new

@@ -22,11 +22,11 @@ def initialize(sock, opts = {}) @sock = sock @opts = opts @banner = nil - @majver = MajorVersion + @majver = MajorVersions @minver = -1 @auth_types = [] end def read_error_message @@ -48,21 +48,26 @@ # RFB Protocol Version 3.7 (2003-08) # RFB Protocol Version 3.8 (2007-06) if @banner =~ /RFB ([0-9]{3})\.([0-9]{3})/ maj = $1.to_i - if maj != MajorVersion + unless MajorVersions.include?(maj) @error = "Invalid major version number: #{maj}" return false end else @error = "Invalid RFB banner: #{@banner}" return false end @minver = $2.to_i - our_ver = "RFB %03d.%03d\n" % [MajorVersion, @minver] + # Forces version 3 to be used. This adds support for version 4 servers. + # It may be necessary to hardcode minver as well. + # TODO: Add support for Version 4. + # Version 4 adds additional information to the packet regarding supported + # authentication types. + our_ver = "RFB %03d.%03d\n" % [3, @minver] @sock.put(our_ver) true end