Skip to content

Commit 4578524

Browse files
committed
DBO: Dependency objects
1 parent 7097538 commit 4578524

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

binaryninjacore.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9128,6 +9128,7 @@ extern "C"
91289128
BINARYNINJACOREAPI char* BNGetDatabaseObjectDescription(BNDatabaseObject* object);
91299129
BINARYNINJACOREAPI BNDatabaseObject* BNGetDatabaseObjectParent(BNDatabaseObject* object);
91309130
BINARYNINJACOREAPI size_t BNGetDatabaseObjectChildren(BNDatabaseObject* object, char*** names, BNDatabaseObject*** objects);
9131+
BINARYNINJACOREAPI char** BNGetDatabaseObjectDependencies(BNDatabaseObject* object, size_t* count);
91319132

91329133
// todo remove before release
91339134
BINARYNINJACOREAPI void BNTestMerge(BNDatabaseObject* base, BNDatabaseObject* left, BNDatabaseObject* right, BNDatabaseObject* result);

python/database.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,3 +427,16 @@ def children(self) -> Dict[str, 'DatabaseObject']:
427427
finally:
428428
core.BNFreeDatabaseObjectList(objects, count)
429429
core.BNFreeStringList(names, count)
430+
431+
@property
432+
def dependencies(self) -> List[str]:
433+
"""Get list of dependencies for this database object (read-only)"""
434+
count = ctypes.c_size_t()
435+
deps = core.BNGetDatabaseObjectDependencies(self.handle, ctypes.byref(count))
436+
try:
437+
result = []
438+
for i in range(0, count.value):
439+
result.append(core.pyNativeStr(deps[i]))
440+
return result
441+
finally:
442+
core.BNFreeStringList(deps, count.value)

0 commit comments

Comments
 (0)