| 839 | IREMUNKNOWN = find_com_interface("IRemUnknown2") |
| 840 | |
| 841 | def __init__(self, cid: GUID = None, verb=True, **kwargs): |
| 842 | # Pick a random cid to identify this client |
| 843 | self.cid = cid or GUID(RandUUID().bytes_le) |
| 844 | |
| 845 | # The OXID table kept up-to-date by the client |
| 846 | self.OXID_table: Dict[int, OXID_Entry] = {} |
| 847 | |
| 848 | # The IPID table kept up-to-date by the client |
| 849 | self.IPID_table: Dict[int, IPID_Entry] = {} |
| 850 | |
| 851 | # The OID table kept up-to-date by the client |
| 852 | self.OID_table: Dict[int, OID_Entry] = {} |
| 853 | |
| 854 | # The Resolver table kept up-to-date by the client |
| 855 | self.Resolver_table: Dict[STRINGBINDING, Resolver_Entry] = {} |
| 856 | |
| 857 | # DCOM defaults to at least PKT_INTEGRITY |
| 858 | if "auth_level" not in kwargs and "ssp" in kwargs: |
| 859 | kwargs["auth_level"] = DCE_C_AUTHN_LEVEL.PKT_INTEGRITY |
| 860 | |
| 861 | super(DCOM_Client, self).__init__( |
| 862 | DCERPC_Transport.NCACN_IP_TCP, |
| 863 | ndr64=False, |
| 864 | verb=verb, |
| 865 | **kwargs, |
| 866 | ) |
| 867 | |
| 868 | def connect(self, host: str, timeout=5): |
| 869 | """ |