Skip to content

Commit e30b0e0

Browse files
committed
forced client to version 3 for servers and added comments. This adds support for RFB version 4 servers. Tested on 004.001
1 parent 772a5dd commit e30b0e0

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

lib/rex/proto/rfb/client.rb

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def initialize(sock, opts = {})
2424
@opts = opts
2525

2626
@banner = nil
27-
@majver = MajorVersion
27+
@majver = MajorVersions
2828
@minver = -1
2929
@auth_types = []
3030
end
@@ -50,7 +50,7 @@ def handshake
5050

5151
if @banner =~ /RFB ([0-9]{3})\.([0-9]{3})/
5252
maj = $1.to_i
53-
if maj != MajorVersion
53+
unless MajorVersions.include?(maj)
5454
@error = "Invalid major version number: #{maj}"
5555
return false
5656
end
@@ -61,8 +61,15 @@ def handshake
6161

6262
@minver = $2.to_i
6363

64-
our_ver = "RFB %03d.%03d\n" % [MajorVersion, @minver]
65-
@sock.put(our_ver)
64+
# Forces client version 3 to be used. This adds support
65+
# version 4 servers.
66+
# It may be necessary to hardcode a miniver as well
67+
# to do: add support for Version 4. Version 4 client
68+
# adds additional information to the packet regarding
69+
# supported authentication types.
70+
our_ver = "RFB %03d.%03d\n" % [3, @minver]
71+
puts our_ver
72+
@sock.put(our_ver)
6673

6774
true
6875
end

0 commit comments

Comments
 (0)