1
0
Fork 0

DBG: analyze all xrefs in the module with XrefsAnalysis

This commit is contained in:
Duncan Ogilvie 2019-01-10 23:44:51 +01:00
parent cc15cdec9f
commit e5e96f7cbb
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
2 changed files with 18 additions and 5 deletions

View File

@ -1,6 +1,14 @@
#include "xrefsanalysis.h"
#include "xrefs.h"
#include "console.h"
#include <module.h>
XrefsAnalysis::XrefsAnalysis(duint base, duint size)
: Analysis(base, size)
{
modbase = ModBaseFromAddr(base);
modsize = ModSizeFromAddr(modbase);
}
void XrefsAnalysis::Analyse()
{
@ -25,7 +33,7 @@ void XrefsAnalysis::Analyse()
{
return 0;
});
if(inRange(dest))
if(inModRange(dest))
{
xref.addr = dest;
break;

View File

@ -5,10 +5,7 @@
class XrefsAnalysis : public Analysis
{
public:
XrefsAnalysis(duint base, duint size)
: Analysis(base, size)
{
}
XrefsAnalysis(duint base, duint size);
void Analyse() override;
void SetMarkers() override;
@ -21,4 +18,12 @@ private:
};
std::vector<XREF> mXrefs;
duint modbase = 0;
duint modsize = 0;
bool inModRange(duint addr) const
{
return modbase ? (addr >= modbase && addr < modbase + modsize) : inRange(addr);
}
};