correct mcs bugs
This commit is contained in:
@@ -31,7 +31,7 @@ if __name__ == '__main__':
|
|||||||
#w.show()
|
#w.show()
|
||||||
from twisted.internet import reactor
|
from twisted.internet import reactor
|
||||||
#reactor.connectTCP("127.0.0.1", 5901, factory.RfbFactory(protocol))
|
#reactor.connectTCP("127.0.0.1", 5901, factory.RfbFactory(protocol))
|
||||||
#reactor.connectTCP("192.168.135.160", 3389, factory.RfbFactory(tpkt.TPKT(tpdu.TPDU())))
|
reactor.connectTCP("192.168.1.90", 3389, factory.RfbFactory(tpkt.TPKT(tpdu.TPDU(mcs.MCS()))))
|
||||||
reactor.connectTCP("192.168.56.1", 3389, factory.RfbFactory(tpkt.TPKT(tpdu.TPDU(mcs.MCS()))))
|
#reactor.connectTCP("192.168.56.1", 3389, factory.RfbFactory(tpkt.TPKT(tpdu.TPDU(mcs.MCS()))))
|
||||||
reactor.run()
|
reactor.run()
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
@@ -444,4 +444,12 @@ class Stream(StringIO):
|
|||||||
self.write_uint8(ord(c))
|
self.write_uint8(ord(c))
|
||||||
self.write_uint8(0)
|
self.write_uint8(0)
|
||||||
self.write_uint8(0)
|
self.write_uint8(0)
|
||||||
self.write_uint8(0)
|
self.write_uint8(0)
|
||||||
|
|
||||||
|
def hexDump(src, length=16):
|
||||||
|
FILTER = ''.join([(len(repr(chr(x))) == 3) and chr(x) or '.' for x in range(256)])
|
||||||
|
for c in xrange(0, len(src), length):
|
||||||
|
chars = src[c:c+length]
|
||||||
|
hexa = ' '.join(["%02x" % ord(x) for x in chars])
|
||||||
|
printable = ''.join(["%s" % ((ord(x) <= 127 and FILTER[ord(x)]) or '.') for x in chars])
|
||||||
|
print "%04x %-*s %s" % (c, length*3, hexa, printable)
|
||||||
@@ -150,7 +150,10 @@ def writeBoolean(b):
|
|||||||
@param b: boolean
|
@param b: boolean
|
||||||
@return: ber boolean structure
|
@return: ber boolean structure
|
||||||
'''
|
'''
|
||||||
return (writeUniversalTag(Tag.BER_TAG_BOOLEAN, False), writeLength(1), UInt8(int(b)))
|
boolean = UInt8(0)
|
||||||
|
if b:
|
||||||
|
boolean = UInt8(0xff)
|
||||||
|
return (writeUniversalTag(Tag.BER_TAG_BOOLEAN, False), writeLength(1), boolean)
|
||||||
|
|
||||||
def readInteger(s):
|
def readInteger(s):
|
||||||
'''
|
'''
|
||||||
@@ -190,9 +193,9 @@ def writeInteger(value):
|
|||||||
@param param: int or python long
|
@param param: int or python long
|
||||||
@return ber interger structure
|
@return ber interger structure
|
||||||
'''
|
'''
|
||||||
if value < 0xff:
|
if value <= 0xff:
|
||||||
return (writeUniversalTag(Tag.BER_TAG_INTEGER, False), writeLength(1), UInt8(value))
|
return (writeUniversalTag(Tag.BER_TAG_INTEGER, False), writeLength(1), UInt8(value))
|
||||||
elif value < 0xff80:
|
elif value <= 0xffff:
|
||||||
return (writeUniversalTag(Tag.BER_TAG_INTEGER, False), writeLength(2), UInt16Be(value))
|
return (writeUniversalTag(Tag.BER_TAG_INTEGER, False), writeLength(2), UInt16Be(value))
|
||||||
else:
|
else:
|
||||||
return (writeUniversalTag(Tag.BER_TAG_INTEGER, False), writeLength(4), UInt32Be(value))
|
return (writeUniversalTag(Tag.BER_TAG_INTEGER, False), writeLength(4), UInt32Be(value))
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class MCS(LayerAutomata):
|
|||||||
ccReqStream.writeType(ccReq)
|
ccReqStream.writeType(ccReq)
|
||||||
|
|
||||||
tmp = (ber.writeOctetstring("\x01"), ber.writeOctetstring("\x01"), ber.writeBoolean(True),
|
tmp = (ber.writeOctetstring("\x01"), ber.writeOctetstring("\x01"), ber.writeBoolean(True),
|
||||||
self.writeDomainParams(34, 2, 0, 0xffff),
|
self.writeDomainParams(34, 2, 0, 0xffff),self.writeDomainParams(1, 1, 1, 0x420),
|
||||||
self.writeDomainParams(0xffff, 0xfc17, 0xffff, 0xffff),
|
self.writeDomainParams(0xffff, 0xfc17, 0xffff, 0xffff),
|
||||||
ber.writeOctetstring(ccReqStream.getvalue()))
|
ber.writeOctetstring(ccReqStream.getvalue()))
|
||||||
self._transport.send((ber.writeApplicationTag(Message.MCS_TYPE_CONNECT_INITIAL, sizeof(tmp)), tmp))
|
self._transport.send((ber.writeApplicationTag(Message.MCS_TYPE_CONNECT_INITIAL, sizeof(tmp)), tmp))
|
||||||
|
|||||||
Reference in New Issue
Block a user