! \ingroup baseaddressdetection */
| 18766 | \ingroup baseaddressdetection |
| 18767 | */ |
| 18768 | class BaseAddressDetection |
| 18769 | { |
| 18770 | BNBaseAddressDetection* m_object; |
| 18771 | |
| 18772 | public: |
| 18773 | BaseAddressDetection(Ref<BinaryView> view); |
| 18774 | ~BaseAddressDetection(); |
| 18775 | |
| 18776 | /*! Analyze program, identify pointers and points-of-interest, and detect candidate base addresses |
| 18777 | |
| 18778 | \param settings Base address detection settings |
| 18779 | \return true on success, false otherwise |
| 18780 | */ |
| 18781 | bool DetectBaseAddress(BaseAddressDetectionSettings& settings); |
| 18782 | |
| 18783 | /*! Get the top 10 candidate base addresses and thier scores |
| 18784 | |
| 18785 | \param confidence Confidence level that indicates the likelihood the top base address candidate is correct |
| 18786 | \param lastTestedBaseAddress Last base address tested before analysis was aborted or completed |
| 18787 | \return Set of pairs containing candidate base addresses and their scores |
| 18788 | */ |
| 18789 | std::set<std::pair<size_t, uint64_t>> GetScores(BNBaseAddressDetectionConfidence* confidence, uint64_t *lastTestedBaseAddress); |
| 18790 | |
| 18791 | /*! Get a vector of BNBaseAddressDetectionReasons containing information that indicates why a base address was reported as a candidate |
| 18792 | |
| 18793 | \param baseAddress Base address to query reasons for |
| 18794 | \return Vector of reason structures containing information about why a base address was reported as a candidate |
| 18795 | */ |
| 18796 | std::vector<BNBaseAddressDetectionReason> GetReasonsForBaseAddress(uint64_t baseAddress); |
| 18797 | |
| 18798 | /*! Abort base address detection |
| 18799 | */ |
| 18800 | void Abort(); |
| 18801 | |
| 18802 | /*! Determine if base address detection is aborted |
| 18803 | |
| 18804 | \return true if aborted by user, false otherwise |
| 18805 | */ |
| 18806 | bool IsAborted(); |
| 18807 | }; |
| 18808 | |
| 18809 | |
| 18810 | /*! |