dissect.database 1.2.dev3__tar.gz → 1.2.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dissect_database-1.2.dev3/dissect.database.egg-info → dissect_database-1.2.dev4}/PKG-INFO +1 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ese.py +3 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/lcmapstring.py +1 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/object.py +2 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/user.py +2 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/schema.py +0 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/table.py +2 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/tools/sru.py +2 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/tools/ual.py +8 -3
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/encryption/sqlcipher/sqlcipher.py +0 -3
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/sqlite3.py +7 -7
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/util.py +0 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4/dissect.database.egg-info}/PKG-INFO +1 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/pyproject.toml +20 -2
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/_docs/conf.py +2 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/test_cursor.py +2 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/test_page.py +2 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/test_record.py +0 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/test_table.py +2 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/test_sqlcipher.py +0 -2
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/test_sqlite3.py +0 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/test_wal.py +0 -1
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/COPYRIGHT +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/LICENSE +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/MANIFEST.in +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/README.md +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/c_db.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/c_db.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/db.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/tools/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/tools/c_rpm.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/tools/c_rpm.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/tools/rpm.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/c_ese.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/c_ese.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/compression.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/cursor.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/exception.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/index.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/c_ds.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/c_ds.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/c_pek.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/c_pek.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/c_sd.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/c_sd.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/database.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/ntds.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/applicationsettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/attributeschema.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/builtindomain.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/certificationauthority.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/classschema.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/classstore.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/computer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/configuration.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/container.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/controlaccessright.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/crldistributionpoint.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/crossref.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/crossrefcontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dfsconfiguration.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/displayspecifier.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dmd.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dnsnode.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dnszone.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/domain.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/domaindns.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/domainpolicy.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dsuisettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/filelinktracking.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/foreignsecurityprincipal.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/group.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/grouppolicycontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/infrastructureupdate.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/intersitetransport.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/intersitetransportcontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ipsecbase.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ipsecfilter.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ipsecisakmppolicy.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ipsecnegotiationpolicy.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ipsecnfa.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ipsecpolicy.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/leaf.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/linktrackobjectmovetable.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/linktrackvolumetable.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/locality.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/lostandfound.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msauthz_centralaccesspolicies.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msauthz_centralaccessrules.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_content.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_contentset.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_globalsettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_localsettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_member.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_replicationgroup.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_subscriber.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_subscription.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdfsr_topology.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msdns_serversettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_authnpolicies.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_authnpolicysilos.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_claimstransformationpolicies.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_claimtype.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_claimtypepropertybase.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_claimtypes.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_optionalfeature.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_passwordsettingscontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_quotacontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_resourceproperties.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_resourceproperty.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_resourcepropertylist.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_shadowprincipalcontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msds_valuetype.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msimaging_psps.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/mskds_provserverconfiguration.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msmqenterprisesettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/mspki_enterpriseoid.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/mspki_privatekeyrecoveryagent.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/msspp_activationobjectscontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/mstpm_informationobjectscontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ntdsconnection.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ntdsdsa.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ntdsservice.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ntdssitesettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ntfrssettings.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/organizationalperson.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/organizationalunit.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/person.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/physicallocation.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/pkicertificatetemplate.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/pkienrollmentservice.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/querypolicy.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ridmanager.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/ridset.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/rpccontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/rrasadministrationdictionary.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/samserver.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/secret.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/securityobject.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/server.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/serverscontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/site.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/sitelink.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/sitescontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/subnetcontainer.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/subschema.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/top.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/trusteddomain.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/pek.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/query.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/sd.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/tools/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/tools/ntds.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/util.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/page.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/record.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/sorting_table.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/tools/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/tools/certlog.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/tools/impacket.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/util.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/exception.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/c_sqlite3.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/c_sqlite3.pyi +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/encryption/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/encryption/sqlcipher/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/encryption/sqlcipher/exception.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/exception.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/sqlite3/wal.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect.database.egg-info/SOURCES.txt +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect.database.egg-info/dependency_links.txt +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect.database.egg-info/entry_points.txt +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect.database.egg-info/requires.txt +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect.database.egg-info/top_level.txt +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/setup.cfg +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/_docs/Makefile +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/_docs/index.rst +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/_tools/sqlite3/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/_tools/sqlite3/generate_sqlite.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/_util.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/bsd/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/bsd/conftest.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/bsd/test_db.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/bsd/test_rpm.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/conftest.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/conftest.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/conftest.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_benchmark.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_ntds.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_pek.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_query.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_schema.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_sd.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/ntds/test_util.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/test_ese.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/test_index.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/tools/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/tools/test_certlog.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/tools/test_sru.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/ese/tools/test_ual.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/__init__.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/conftest.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/test_default_values.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/test_row.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tests/sqlite3/test_util.py +0 -0
- {dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.database
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.dev4
|
|
4
4
|
Summary: A Dissect module implementing parsers for various database formats, including Berkeley DB, Microsofts Extensible Storage Engine (ESE) and SQLite3
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -10,11 +10,13 @@ from typing import TYPE_CHECKING, BinaryIO
|
|
|
10
10
|
from dissect.database.ese.c_ese import c_ese, pgnoFDPMSO, ulDAEMagic
|
|
11
11
|
from dissect.database.ese.exception import InvalidDatabase
|
|
12
12
|
from dissect.database.ese.page import Page
|
|
13
|
-
from dissect.database.ese.table import Catalog
|
|
13
|
+
from dissect.database.ese.table import Catalog
|
|
14
14
|
|
|
15
15
|
if TYPE_CHECKING:
|
|
16
16
|
from collections.abc import Iterator
|
|
17
17
|
|
|
18
|
+
from dissect.database.ese.table import Table
|
|
19
|
+
|
|
18
20
|
|
|
19
21
|
class ESE:
|
|
20
22
|
"""ESE database class.
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/object.py
RENAMED
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from functools import cached_property
|
|
4
4
|
from typing import TYPE_CHECKING, Any, ClassVar
|
|
5
5
|
|
|
6
|
-
from dissect.database.ese.ntds.util import
|
|
6
|
+
from dissect.database.ese.ntds.util import InstanceType, decode_value
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
9
|
from collections.abc import Iterator
|
|
@@ -11,6 +11,7 @@ if TYPE_CHECKING:
|
|
|
11
11
|
|
|
12
12
|
from dissect.database.ese.ntds.database import Database
|
|
13
13
|
from dissect.database.ese.ntds.sd import SecurityDescriptor
|
|
14
|
+
from dissect.database.ese.ntds.util import DN, SystemFlags
|
|
14
15
|
from dissect.database.ese.record import Record
|
|
15
16
|
|
|
16
17
|
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/user.py
RENAMED
|
@@ -3,13 +3,14 @@ from __future__ import annotations
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
5
|
from dissect.database.ese.ntds.objects.organizationalperson import OrganizationalPerson
|
|
6
|
-
from dissect.database.ese.ntds.util import
|
|
6
|
+
from dissect.database.ese.ntds.util import UserAccountControl
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
9
|
from collections.abc import Iterator
|
|
10
10
|
|
|
11
11
|
from dissect.database.ese.ntds.objects.group import Group
|
|
12
12
|
from dissect.database.ese.ntds.objects.object import Object
|
|
13
|
+
from dissect.database.ese.ntds.util import SAMAccountType
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
class User(OrganizationalPerson):
|
|
@@ -198,7 +198,6 @@ class Schema:
|
|
|
198
198
|
Args:
|
|
199
199
|
db: The database instance to load the schema from.
|
|
200
200
|
"""
|
|
201
|
-
|
|
202
201
|
# Load the schema entries from the DMD object
|
|
203
202
|
# This _should_ have all the attribute and class schema entries
|
|
204
203
|
# We used to perform an index search on objectClass (ATTc0, INDEX_00000000), but apparently
|
|
@@ -14,7 +14,7 @@ from dissect.database.ese.c_ese import (
|
|
|
14
14
|
from dissect.database.ese.cursor import RawCursor
|
|
15
15
|
from dissect.database.ese.index import Index
|
|
16
16
|
from dissect.database.ese.record import Record
|
|
17
|
-
from dissect.database.ese.util import COLUMN_TYPE_MAP
|
|
17
|
+
from dissect.database.ese.util import COLUMN_TYPE_MAP
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
20
|
from collections.abc import Iterator
|
|
@@ -22,6 +22,7 @@ if TYPE_CHECKING:
|
|
|
22
22
|
from dissect.database.ese.cursor import Cursor
|
|
23
23
|
from dissect.database.ese.ese import ESE
|
|
24
24
|
from dissect.database.ese.page import Page
|
|
25
|
+
from dissect.database.ese.util import ColumnType, RecordValue
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
class Table:
|
|
@@ -9,11 +9,12 @@ from dissect.util.sid import read_sid
|
|
|
9
9
|
from dissect.util.ts import oatimestamp, wintimestamp
|
|
10
10
|
|
|
11
11
|
from dissect.database.ese.ese import ESE
|
|
12
|
-
from dissect.database.ese.record import
|
|
12
|
+
from dissect.database.ese.record import serialise_record_column_values
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
15
|
from collections.abc import Iterator
|
|
16
16
|
|
|
17
|
+
from dissect.database.ese.record import Record
|
|
17
18
|
from dissect.database.ese.table import Table
|
|
18
19
|
from dissect.database.ese.util import RecordValue
|
|
19
20
|
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import argparse
|
|
2
4
|
import datetime
|
|
3
5
|
import ipaddress
|
|
4
6
|
import json
|
|
5
|
-
from collections.abc import Iterator
|
|
6
7
|
from pathlib import Path
|
|
7
|
-
from typing import BinaryIO
|
|
8
|
+
from typing import TYPE_CHECKING, BinaryIO
|
|
8
9
|
|
|
9
10
|
from dissect.util.ts import wintimestamp
|
|
10
11
|
|
|
11
12
|
from dissect.database.ese.ese import ESE
|
|
12
|
-
from dissect.database.ese.table import Table
|
|
13
13
|
from dissect.database.ese.util import RecordValue
|
|
14
14
|
|
|
15
|
+
if TYPE_CHECKING:
|
|
16
|
+
from collections.abc import Iterator
|
|
17
|
+
|
|
18
|
+
from dissect.database.ese.table import Table
|
|
19
|
+
|
|
15
20
|
UalValue = RecordValue | ipaddress.IPv4Address | ipaddress.IPv6Interface | tuple[datetime.datetime]
|
|
16
21
|
|
|
17
22
|
SKIP_TABLES = [
|
|
@@ -178,7 +178,6 @@ class SQLCipherStream(AlignedStream):
|
|
|
178
178
|
|
|
179
179
|
def _read(self, offset: int, length: int) -> bytes:
|
|
180
180
|
"""Calculates which pages to read from based on the given offset and length. Returns decrypted bytes."""
|
|
181
|
-
|
|
182
181
|
start_page = offset // self.align
|
|
183
182
|
num_pages = length // self.align
|
|
184
183
|
return b"".join(
|
|
@@ -191,7 +190,6 @@ class SQLCipherStream(AlignedStream):
|
|
|
191
190
|
References:
|
|
192
191
|
- https://github.com/sqlcipher/sqlcipher-tools/blob/master/decrypt.c
|
|
193
192
|
"""
|
|
194
|
-
|
|
195
193
|
if page_num < 1:
|
|
196
194
|
raise ValueError("The first page number is 1")
|
|
197
195
|
|
|
@@ -294,7 +292,6 @@ class SQLCipher1(SQLCipher):
|
|
|
294
292
|
|
|
295
293
|
def derive_key(passphrase: bytes, salt: bytes, kdf_iter: int, kdf_algo: str | None) -> bytes:
|
|
296
294
|
"""Derive the database key as SQLCipher would using PBKDF2."""
|
|
297
|
-
|
|
298
295
|
if not kdf_iter or not kdf_algo:
|
|
299
296
|
return passphrase
|
|
300
297
|
|
|
@@ -15,7 +15,7 @@ from dissect.database.sqlite3.exception import (
|
|
|
15
15
|
NoCellData,
|
|
16
16
|
)
|
|
17
17
|
from dissect.database.sqlite3.util import parse_table_columns_constraints
|
|
18
|
-
from dissect.database.sqlite3.wal import WAL
|
|
18
|
+
from dissect.database.sqlite3.wal import WAL
|
|
19
19
|
|
|
20
20
|
if TYPE_CHECKING:
|
|
21
21
|
from collections.abc import Iterator
|
|
@@ -23,6 +23,8 @@ if TYPE_CHECKING:
|
|
|
23
23
|
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
+
from dissect.database.sqlite3.wal import Checkpoint
|
|
27
|
+
|
|
26
28
|
ENCODING = {
|
|
27
29
|
1: "utf-8",
|
|
28
30
|
2: "utf-16-le",
|
|
@@ -259,7 +261,7 @@ class Column:
|
|
|
259
261
|
self.default_value = self._parse_default_value_from_description(description)
|
|
260
262
|
|
|
261
263
|
def _parse_default_value_from_description(self, description: str) -> bool | str | int | float | None:
|
|
262
|
-
"""Find the default from the description string"""
|
|
264
|
+
"""Find the default from the description string."""
|
|
263
265
|
if "DEFAULT" not in description.upper():
|
|
264
266
|
return None
|
|
265
267
|
|
|
@@ -275,14 +277,13 @@ class Column:
|
|
|
275
277
|
return [x for x in tokens if x and x != " "]
|
|
276
278
|
|
|
277
279
|
def _get_default_value(self, tokens: list[str]) -> str:
|
|
278
|
-
"""Retrieve the default from the tokens"""
|
|
279
|
-
|
|
280
|
+
"""Retrieve the default from the tokens."""
|
|
280
281
|
# The +1 is to account for the space after the default
|
|
281
282
|
value_index = [x.upper() for x in tokens].index("DEFAULT") + 1
|
|
282
283
|
return tokens[value_index]
|
|
283
284
|
|
|
284
285
|
def _parse_default_value(self, value: str) -> bool | str | int | float | None:
|
|
285
|
-
"""Parses the default value
|
|
286
|
+
"""Parses the default value.
|
|
286
287
|
|
|
287
288
|
The value can hold an expression surrounded by ().
|
|
288
289
|
This can be a literal, so these values get stripped.
|
|
@@ -293,7 +294,7 @@ class Column:
|
|
|
293
294
|
return None
|
|
294
295
|
|
|
295
296
|
def _parse_literal(self, value: str) -> bool | str | int | float:
|
|
296
|
-
"""Tries to convert a literal from a string to any type
|
|
297
|
+
"""Tries to convert a literal from a string to any type.
|
|
297
298
|
|
|
298
299
|
CURRENT_(TIME|DATE|TIMESTAMP) isn't being taken into account.
|
|
299
300
|
"""
|
|
@@ -385,7 +386,6 @@ class Row:
|
|
|
385
386
|
If there are any cell values with unknown column names
|
|
386
387
|
they get added to the unknown list.
|
|
387
388
|
"""
|
|
388
|
-
|
|
389
389
|
row_values = {}
|
|
390
390
|
unknowns = []
|
|
391
391
|
|
|
@@ -109,7 +109,6 @@ def parse_table_columns_constraints(sql: str) -> tuple[str | None, list[str], li
|
|
|
109
109
|
|
|
110
110
|
def split_column_def(sql: str, column_def: str) -> tuple[str, str]:
|
|
111
111
|
"""Splits the column definition to name and constraint."""
|
|
112
|
-
|
|
113
112
|
column_parts = column_def.split(maxsplit=1)
|
|
114
113
|
if not column_parts:
|
|
115
114
|
raise InvalidSQL(f"Not a valid CREATE TABLE definition: empty column definition in {sql!r}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.database
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.dev4
|
|
4
4
|
Summary: A Dissect module implementing parsers for various database formats, including Berkeley DB, Microsofts Extensible Storage Engine (ESE) and SQLite3
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -107,7 +107,7 @@ select = [
|
|
|
107
107
|
"SLOT",
|
|
108
108
|
"SIM",
|
|
109
109
|
"TID",
|
|
110
|
-
"
|
|
110
|
+
"TC",
|
|
111
111
|
"PTH",
|
|
112
112
|
"PLC",
|
|
113
113
|
"TRY",
|
|
@@ -115,8 +115,25 @@ select = [
|
|
|
115
115
|
"PERF",
|
|
116
116
|
"FURB",
|
|
117
117
|
"RUF",
|
|
118
|
+
"D"
|
|
118
119
|
]
|
|
119
|
-
ignore = [
|
|
120
|
+
ignore = [
|
|
121
|
+
"E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003", "PLC0415",
|
|
122
|
+
# Ignore some pydocstyle rules for now as they require a larger cleanup
|
|
123
|
+
"D1",
|
|
124
|
+
"D205",
|
|
125
|
+
"D301",
|
|
126
|
+
"D417",
|
|
127
|
+
# Seems bugged: https://github.com/astral-sh/ruff/issues/16824
|
|
128
|
+
"D402",
|
|
129
|
+
]
|
|
130
|
+
future-annotations = true
|
|
131
|
+
|
|
132
|
+
[tool.ruff.lint.pydocstyle]
|
|
133
|
+
convention = "google"
|
|
134
|
+
|
|
135
|
+
[tool.ruff.lint.flake8-type-checking]
|
|
136
|
+
strict = true
|
|
120
137
|
|
|
121
138
|
[tool.ruff.lint.per-file-ignores]
|
|
122
139
|
"tests/_docs/**" = ["INP001"]
|
|
@@ -125,6 +142,7 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1
|
|
|
125
142
|
[tool.ruff.lint.isort]
|
|
126
143
|
known-first-party = ["dissect.database"]
|
|
127
144
|
known-third-party = ["dissect"]
|
|
145
|
+
required-imports = ["from __future__ import annotations"]
|
|
128
146
|
|
|
129
147
|
[tool.setuptools.packages.find]
|
|
130
148
|
include = ["dissect.*"]
|
|
@@ -61,7 +61,6 @@ def _assert_sqlite_db(sqlite: SQLite3) -> None:
|
|
|
61
61
|
)
|
|
62
62
|
def test_decrypt_community(cipher: Callable, path_str: str, kwargs: dict) -> None:
|
|
63
63
|
"""Test if we can parse a SQLCipher (4.5.6 community) encrypted database."""
|
|
64
|
-
|
|
65
64
|
path = absolute_path("_data/sqlite3/encryption/sqlcipher/" + path_str)
|
|
66
65
|
|
|
67
66
|
with pytest.raises(SQLCipherError, match="Decryption of SQLCipher database failed"):
|
|
@@ -79,7 +78,6 @@ def test_decrypt_community(cipher: Callable, path_str: str, kwargs: dict) -> Non
|
|
|
79
78
|
|
|
80
79
|
def test_decrypt_community_plaintext_header() -> None:
|
|
81
80
|
"""Test if we can parse and decrypt a SQLCipher 4.5.6 database with a 32-byte plaintext header."""
|
|
82
|
-
|
|
83
81
|
path = absolute_path("_data/sqlite3/encryption/sqlcipher/aes256_hmac_sha512_kdf_256000_plain_header.sqlite")
|
|
84
82
|
salt = bytes.fromhex("01010101010101010101010101010101")
|
|
85
83
|
|
|
@@ -121,7 +121,6 @@ def test_cell_overflow_reserved_page_size_regression() -> None:
|
|
|
121
121
|
>>> con.commit()
|
|
122
122
|
... con.close()
|
|
123
123
|
"""
|
|
124
|
-
|
|
125
124
|
db = sqlite3.SQLite3(absolute_path("_data/sqlite3/overflow.db"))
|
|
126
125
|
assert db.header.reserved_size == 32
|
|
127
126
|
assert db.header.page_size == 4096
|
|
@@ -186,7 +186,6 @@ def test_wal_page_count() -> None:
|
|
|
186
186
|
>>> con.commit()
|
|
187
187
|
# Copy page_count.db* files before closing
|
|
188
188
|
"""
|
|
189
|
-
|
|
190
189
|
db = sqlite3.SQLite3(absolute_path("_data/sqlite3/page_count.db"))
|
|
191
190
|
table = db.table("t1")
|
|
192
191
|
assert table.sql == "CREATE TABLE t1 (a, b)"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/bsd/tools/c_rpm.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/database.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dmd.py
RENAMED
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dnsnode.py
RENAMED
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/dnszone.py
RENAMED
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/domain.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.2.dev3 → dissect_database-1.2.dev4}/dissect/database/ese/ntds/objects/leaf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|