DBG: added dis.isnop and dis.isunusual
This commit is contained in:
parent
58bf10ab41
commit
5167a040d9
|
|
@ -83,6 +83,8 @@ void ExpressionFunctions::Init()
|
|||
RegisterEasy("dis.isret", disisret);
|
||||
RegisterEasy("dis.iscall", disiscall);
|
||||
RegisterEasy("dis.ismem", disismem);
|
||||
RegisterEasy("dis.isnop", disisnop);
|
||||
RegisterEasy("dis.isunusual", disisunusual);
|
||||
RegisterEasy("dis.branchdest", disbranchdest);
|
||||
RegisterEasy("dis.branchexec", disbranchexec);
|
||||
RegisterEasy("dis.imm", disimm);
|
||||
|
|
|
|||
|
|
@ -155,6 +155,30 @@ namespace Exprfunc
|
|||
return (info.type & TYPE_MEMORY) == TYPE_MEMORY;
|
||||
}
|
||||
|
||||
duint disisnop(duint addr)
|
||||
{
|
||||
unsigned char data[16];
|
||||
if(MemRead(addr, data, sizeof(data), nullptr, true))
|
||||
{
|
||||
Capstone cp;
|
||||
if(cp.Disassemble(addr, data))
|
||||
return cp.IsNop();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
duint disisunusual(duint addr)
|
||||
{
|
||||
unsigned char data[16];
|
||||
if(MemRead(addr, data, sizeof(data), nullptr, true))
|
||||
{
|
||||
Capstone cp;
|
||||
if(cp.Disassemble(addr, data))
|
||||
return cp.IsUnusual();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
duint disbranchdest(duint addr)
|
||||
{
|
||||
return DbgGetBranchDestination(addr);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ namespace Exprfunc
|
|||
duint disisret(duint addr);
|
||||
duint disiscall(duint addr);
|
||||
duint disismem(duint addr);
|
||||
duint disisnop(duint addr);
|
||||
duint disisunusual(duint addr);
|
||||
duint disbranchdest(duint addr);
|
||||
duint disbranchexec(duint addr);
|
||||
duint disimm(duint addr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue