def __iter__(self): binaryninja._init_plugins() count = ctypes.c_ulonglong() platforms = core.BNGetPlatformList(count) try: for i in range(0, count.value): yield Platform(handle = core.BNNewPlatformReference(platforms[i])) finally: core.BNFreePlatformList(platforms, count.value)
def list(self): binaryninja._init_plugins() count = ctypes.c_ulonglong() platforms = core.BNGetPlatformList(count) result = [] for i in range(0, count.value): result.append(Platform(handle = core.BNNewPlatformReference(platforms[i]))) core.BNFreePlatformList(platforms, count.value) return result
def get_list(cls, os = None, arch = None): binaryninja._init_plugins() count = ctypes.c_ulonglong() if os is None: platforms = core.BNGetPlatformList(count) elif arch is None: platforms = core.BNGetPlatformListByOS(os) else: platforms = core.BNGetPlatformListByArchitecture(os, arch.handle) result = [] for i in range(0, count.value): result.append(Platform(handle = core.BNNewPlatformReference(platforms[i]))) core.BNFreePlatformList(platforms, count.value) return result