FirmwareNinja is a class containing features specific to firmware analysis. More...
FirmwareNinja is a class containing features specific to firmware analysis.
This class is only available in the Ultimate Edition of Binary Ninja.
Public Member Functions | |
| FirmwareNinja (Ref< BinaryView > view) | |
| ~FirmwareNinja () | |
| bool | StoreCustomDevice (FirmwareNinjaDevice &device) |
| Store a user-defined Firmware Ninja device to the binary view metadata. | |
| bool | RemoveCustomDevice (const std::string &name) |
| Remove a user-defined Firmware Ninja device from the binary view metadata. | |
| std::vector< FirmwareNinjaDevice > | QueryCustomDevices () |
| Query all user-defined Firmware Ninja devices from the binary view metadata. | |
| std::vector< std::string > | QueryBoardNames () |
| Query names of all boards that are compatable with the current binary view and contain bundled device definitions. | |
| std::vector< FirmwareNinjaDevice > | QueryDevicesForBoard (const std::string &board) |
| Query Firmware Ninja device definitions for the specified board. | |
| std::vector< BNFirmwareNinjaSection > | FindSections (float highCodeEntropyThreshold, float lowCodeEntropyThreshold, size_t blockSize, BNFirmwareNinjaSectionAnalysisMode mode) |
| Find sections in the binary with Firmware Ninja heuristics and entropy analysis. | |
| std::vector< FirmwareNinjaFunctionMemoryAccesses > | GetFunctionMemoryAccesses (BNProgressFunction progress, void *progressContext) |
| Find functions that access memory-mapped I/O and other non-file backed memory regions. | |
| void | StoreFunctionMemoryAccesses (const std::vector< FirmwareNinjaFunctionMemoryAccesses > &fma) |
| Store Firmware Ninja function memory accesses information in the binary view metadata. | |
| std::vector< FirmwareNinjaFunctionMemoryAccesses > | QueryFunctionMemoryAccesses () |
| Query Firmware Ninja function memory accesses that are stored in the binary view metadata. | |
| std::vector< FirmwareNinjaDeviceAccesses > | GetBoardDeviceAccesses (const std::vector< FirmwareNinjaFunctionMemoryAccesses > &fma) |
| Compute number of accesses made to memory-mapped hardware devices for each bundled board that is compatible with the current architecture. | |
| Ref< FirmwareNinjaReferenceNode > | GetReferenceTree (FirmwareNinjaDevice &device, const std::vector< FirmwareNinjaFunctionMemoryAccesses > &fma, uint64_t *value=nullptr) |
| Returns a tree of reference nodes that reference the memory region represented by the given Firmware Ninja device. | |
| Ref< FirmwareNinjaReferenceNode > | GetReferenceTree (Section §ion, const std::vector< FirmwareNinjaFunctionMemoryAccesses > &fma, uint64_t *value=nullptr) |
| Returns a tree of reference nodes that reference the memory region represented by the given section. | |
| Ref< FirmwareNinjaReferenceNode > | GetReferenceTree (uint64_t address, const std::vector< FirmwareNinjaFunctionMemoryAccesses > &fma, uint64_t *value=nullptr) |
| Returns a tree of reference nodes that reference the given address. | |
| std::vector< Ref< FirmwareNinjaRelationship > > | QueryRelationships () |
| Query Firmware Ninja relationships from the binary view metadata. | |
| void | AddRelationship (Ref< FirmwareNinjaRelationship > relationship) |
| Store a Firmware Ninja relationship in the binary view metadata. | |
| Ref< FirmwareNinjaRelationship > | GetRelationshipByGuid (const std::string &guid) |
| void | RemoveRelationshipByGuid (const std::string &guid) |
| Remove a Firmware Ninja relationship from the binary view metadata. | |
| FirmwareNinja::FirmwareNinja | ( | Ref< BinaryView > | view | ) |
| FirmwareNinja::~FirmwareNinja | ( | ) |
| bool FirmwareNinja::StoreCustomDevice | ( | FirmwareNinjaDevice & | device | ) |
Store a user-defined Firmware Ninja device to the binary view metadata.
| device | Hardware device information |
| bool FirmwareNinja::RemoveCustomDevice | ( | const std::string & | name | ) |
Remove a user-defined Firmware Ninja device from the binary view metadata.
| name | Name of the device to remove |
| std::vector< FirmwareNinjaDevice > FirmwareNinja::QueryCustomDevices | ( | ) |
Query all user-defined Firmware Ninja devices from the binary view metadata.
| std::vector< std::string > FirmwareNinja::QueryBoardNames | ( | ) |
Query names of all boards that are compatable with the current binary view and contain bundled device definitions.
| std::vector< FirmwareNinjaDevice > FirmwareNinja::QueryDevicesForBoard | ( | const std::string & | board | ) |
Query Firmware Ninja device definitions for the specified board.
| board | Name of the board to query devices for |
| std::vector< BNFirmwareNinjaSection > FirmwareNinja::FindSections | ( | float | highCodeEntropyThreshold, |
| float | lowCodeEntropyThreshold, | ||
| size_t | blockSize, | ||
| BNFirmwareNinjaSectionAnalysisMode | mode ) |
Find sections in the binary with Firmware Ninja heuristics and entropy analysis.
| board | highCodeEntropyThreshold High threshold for code entropy value range |
| board | lowCodeEntropyThreshold Low threshold for code entropy value range |
| blockSize | Size of blocks to analyze |
| mode | Analysis mode of operation |
| std::vector< FirmwareNinjaFunctionMemoryAccesses > FirmwareNinja::GetFunctionMemoryAccesses | ( | BNProgressFunction | progress, |
| void * | progressContext ) |
Find functions that access memory-mapped I/O and other non-file backed memory regions.
| progress | Progress callback function |
| progressContext | Progress context |
| void FirmwareNinja::StoreFunctionMemoryAccesses | ( | const std::vector< FirmwareNinjaFunctionMemoryAccesses > & | fma | ) |
Store Firmware Ninja function memory accesses information in the binary view metadata.
| fma | Vector containin Firmware Ninja function memory accesses |
| std::vector< FirmwareNinjaFunctionMemoryAccesses > FirmwareNinja::QueryFunctionMemoryAccesses | ( | ) |
Query Firmware Ninja function memory accesses that are stored in the binary view metadata.
| std::vector< FirmwareNinjaDeviceAccesses > FirmwareNinja::GetBoardDeviceAccesses | ( | const std::vector< FirmwareNinjaFunctionMemoryAccesses > & | fma | ) |
Compute number of accesses made to memory-mapped hardware devices for each bundled board that is compatible with the current architecture.
| fma | Vector containing Firmware Ninja function memory accesses |
| Ref< FirmwareNinjaReferenceNode > FirmwareNinja::GetReferenceTree | ( | FirmwareNinjaDevice & | device, |
| const std::vector< FirmwareNinjaFunctionMemoryAccesses > & | fma, | ||
| uint64_t * | value = nullptr ) |
Returns a tree of reference nodes that reference the memory region represented by the given Firmware Ninja device.
| device | Firmware Ninja device |
| fma | Vector containing Firmware Ninja function memory accesses |
| value | (Optional) only build reference trees that originate with a write of the specified value |
| Ref< FirmwareNinjaReferenceNode > FirmwareNinja::GetReferenceTree | ( | Section & | section, |
| const std::vector< FirmwareNinjaFunctionMemoryAccesses > & | fma, | ||
| uint64_t * | value = nullptr ) |
Returns a tree of reference nodes that reference the memory region represented by the given section.
| device | Firmware Ninja device |
| fma | Vector containing Firmware Ninja function memory accesses |
| value | (Optional) only build reference trees that originate with a write of the specified value |
| Ref< FirmwareNinjaReferenceNode > FirmwareNinja::GetReferenceTree | ( | uint64_t | address, |
| const std::vector< FirmwareNinjaFunctionMemoryAccesses > & | fma, | ||
| uint64_t * | value = nullptr ) |
Returns a tree of reference nodes that reference the given address.
| device | Firmware Ninja device |
| fma | Vector containing Firmware Ninja function memory accesses |
| value | (Optional) only build reference trees that originate with a write of the specified value |
| std::vector< Ref< FirmwareNinjaRelationship > > FirmwareNinja::QueryRelationships | ( | ) |
Query Firmware Ninja relationships from the binary view metadata.
| void FirmwareNinja::AddRelationship | ( | Ref< FirmwareNinjaRelationship > | relationship | ) |
Store a Firmware Ninja relationship in the binary view metadata.
| relationship | Firmware Ninja relationship |
| Ref< FirmwareNinjaRelationship > FirmwareNinja::GetRelationshipByGuid | ( | const std::string & | guid | ) |
| void FirmwareNinja::RemoveRelationshipByGuid | ( | const std::string & | guid | ) |
Remove a Firmware Ninja relationship from the binary view metadata.
| guid | GUID of the relationship to remove |