A List of entry functions (read-only) This list contains vanilla entry function, and functions like init_array, fini_array, and TLS callbacks etc. User-added entry functions(via `add_entry_point`) are also included. We see `entry_functions` as good starting points for analysis, these function
(self)
| 3225 | |
| 3226 | @property |
| 3227 | def entry_functions(self) -> FunctionList: |
| 3228 | """A List of entry functions (read-only) |
| 3229 | This list contains vanilla entry function, and functions like init_array, fini_array, and TLS callbacks etc. |
| 3230 | User-added entry functions(via `add_entry_point`) are also included. |
| 3231 | |
| 3232 | We see `entry_functions` as good starting points for analysis, these functions normally don't have internal references. |
| 3233 | However, note that exported functions in a dll/so file are not included. |
| 3234 | |
| 3235 | Note the difference with `entry_function` |
| 3236 | |
| 3237 | :Example: |
| 3238 | |
| 3239 | >>> bv.entry_function |
| 3240 | <func: x86@0x4014c8> |
| 3241 | >>> bv.entry_functions |
| 3242 | [<func: x86@0x4014c8>, <func: x86@0x401618>] |
| 3243 | |
| 3244 | :return: a list of functions, containing the vanilla entry and other platform-specific entry functions |
| 3245 | :rtype: list(Function) |
| 3246 | """ |
| 3247 | count = ctypes.c_ulonglong(0) |
| 3248 | funcs = core.BNGetAllEntryFunctions(self.handle, count) |
| 3249 | |
| 3250 | assert funcs is not None, "core.BNGetAllEntryFunctions returned None" |
| 3251 | result = [] |
| 3252 | try: |
| 3253 | for i in range(0, count.value): |
| 3254 | result.append(_function.Function(self, core.BNNewFunctionReference(funcs[i]))) |
| 3255 | return result |
| 3256 | finally: |
| 3257 | core.BNFreeFunctionList(funcs, count.value) |
| 3258 | |
| 3259 | @property |
| 3260 | def symbols(self) -> SymbolMapping: |