summaryrefslogtreecommitdiff
path: root/examples/llil_parser
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-08-14 17:14:44 -0400
committerPeter LaFosse <peter@vector35.com>2018-08-14 17:14:44 -0400
commit1ce780cd6a66a289b0422298871d61392ad3ec2a (patch)
tree1b180e6bce65fd50a757e4f19852de873f83a9e5 /examples/llil_parser
parent454bcf8314833269ae8be9111b2c1035fe8999d6 (diff)
Adding LLIL_RELOC_PTR
Diffstat (limited to 'examples/llil_parser')
-rw-r--r--examples/llil_parser/src/llil_parser.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/examples/llil_parser/src/llil_parser.cpp b/examples/llil_parser/src/llil_parser.cpp
index 75029d19..3b9bfe3c 100644
--- a/examples/llil_parser/src/llil_parser.cpp
+++ b/examples/llil_parser/src/llil_parser.cpp
@@ -56,6 +56,7 @@ static void PrintOperation(BNLowLevelILOperation operation)
ENUM_PRINTER(LLIL_REG)
ENUM_PRINTER(LLIL_CONST)
ENUM_PRINTER(LLIL_CONST_PTR)
+ ENUM_PRINTER(LLIL_RELOC_PTR)
ENUM_PRINTER(LLIL_FLAG)
ENUM_PRINTER(LLIL_FLAG_BIT)
ENUM_PRINTER(LLIL_ADD)
@@ -378,6 +379,7 @@ int main(int argc, char *argv[])
{
case LLIL_CONST:
case LLIL_CONST_PTR:
+ case LLIL_RELOC_PTR:
printf(" Found constant 0x%" PRIx64 "\n", expr.GetConstant());
return false; // Done parsing this
default:
@@ -397,6 +399,12 @@ int main(int argc, char *argv[])
expr.GetSourceExpr<LLIL_LOAD>().GetConstant<LLIL_CONST_PTR>());
return false; // Done parsing this
}
+ else if (expr.GetSourceExpr<LLIL_LOAD>().operation == LLIL_RELOC_PTR)
+ {
+ printf(" Loading from address 0x%" PRIx64 "\n",
+ expr.GetSourceExpr<LLIL_LOAD>().GetConstant<LLIL_RELOC_PTR>());
+ return false; // Done parsing this
+ }
break;
default:
break;