MCPcopy
hub / github.com/fortra/impacket / queryDirectory

Method queryDirectory

impacket/smb3.py:1469–1501  ·  view source on GitHub ↗
(self, treeId, fileId, searchString = '*', resumeIndex = 0, informationClass = FILENAMES_INFORMATION, maxBufferSize = None, enumRestart = False, singleEntry = False)

Source from the content-addressed store, hash-verified

1467 return bytesWritten
1468
1469 def queryDirectory(self, treeId, fileId, searchString = '*', resumeIndex = 0, informationClass = FILENAMES_INFORMATION, maxBufferSize = None, enumRestart = False, singleEntry = False):
1470 if (treeId in self._Session['TreeConnectTable']) is False:
1471 raise SessionError(STATUS_INVALID_PARAMETER)
1472 if (fileId in self._Session['OpenTable']) is False:
1473 raise SessionError(STATUS_INVALID_PARAMETER)
1474
1475 packet = self.SMB_PACKET()
1476 packet['Command'] = SMB2_QUERY_DIRECTORY
1477 packet['TreeID'] = treeId
1478
1479 queryDirectory = SMB2QueryDirectory()
1480 queryDirectory['FileInformationClass'] = informationClass
1481 if resumeIndex != 0 :
1482 queryDirectory['Flags'] = SMB2_INDEX_SPECIFIED
1483 queryDirectory['FileIndex'] = resumeIndex
1484 queryDirectory['FileID'] = fileId
1485 if maxBufferSize is None:
1486 maxBufferSize = self._Connection['MaxReadSize']
1487 queryDirectory['OutputBufferLength'] = maxBufferSize
1488 queryDirectory['Buffer'] = searchString.encode('utf-16le')
1489 queryDirectory['FileNameLength'] = len(queryDirectory['Buffer'])
1490
1491
1492 packet['Data'] = queryDirectory
1493
1494 if self._Connection['Dialect'] != SMB2_DIALECT_002 and self._Connection['SupportsMultiCredit'] is True:
1495 packet['CreditCharge'] = ( 1 + (maxBufferSize - 1) // 65536)
1496
1497 packetID = self.sendSMB(packet)
1498 ans = self.recvSMB(packetID)
1499 if ans.isValidAnswer(STATUS_SUCCESS):
1500 queryDirectoryResponse = SMB2QueryDirectory_Response(ans['Data'])
1501 return queryDirectoryResponse['Buffer']
1502
1503 def echo(self):
1504 packet = self.SMB_PACKET()

Callers 1

listPathMethod · 0.95

Calls 7

sendSMBMethod · 0.95
recvSMBMethod · 0.95
SMB2QueryDirectoryClass · 0.85
encodeMethod · 0.80
SessionErrorClass · 0.70
isValidAnswerMethod · 0.45

Tested by

no test coverage detected