DBG: analyze all xrefs in the module with XrefsAnalysis
This commit is contained in:
parent
cc15cdec9f
commit
e5e96f7cbb
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue