summaryrefslogtreecommitdiff
path: root/examples/mlil_parser/src/mlil_parser.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-08-16 22:30:15 -0400
committerPeter LaFosse <peter@vector35.com>2018-08-16 22:30:15 -0400
commit00fc6c96d415bd31ee5ecbec70a8e4de141674cd (patch)
tree0a6ed958eb313fa54727fb8bc0d3afdcef4d83cd /examples/mlil_parser/src/mlil_parser.cpp
parent1ce780cd6a66a289b0422298871d61392ad3ec2a (diff)
Adding EXTERN_PTR type
Diffstat (limited to 'examples/mlil_parser/src/mlil_parser.cpp')
-rw-r--r--examples/mlil_parser/src/mlil_parser.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/examples/mlil_parser/src/mlil_parser.cpp b/examples/mlil_parser/src/mlil_parser.cpp
index 0e621ead..a4c10f61 100644
--- a/examples/mlil_parser/src/mlil_parser.cpp
+++ b/examples/mlil_parser/src/mlil_parser.cpp
@@ -59,6 +59,7 @@ static void PrintOperation(BNMediumLevelILOperation operation)
ENUM_PRINTER(MLIL_ADDRESS_OF_FIELD)
ENUM_PRINTER(MLIL_CONST)
ENUM_PRINTER(MLIL_CONST_PTR)
+ ENUM_PRINTER(MLIL_EXTERN_PTR)
ENUM_PRINTER(MLIL_ADD)
ENUM_PRINTER(MLIL_ADC)
ENUM_PRINTER(MLIL_SUB)
@@ -326,6 +327,7 @@ int main(int argc, char *argv[])
{
case MLIL_CONST:
case MLIL_CONST_PTR:
+ case MLIL_EXTERN_PTR:
printf(" Found constant 0x%" PRIx64 "\n", expr.GetConstant());
return false; // Done parsing this
default:
@@ -345,6 +347,12 @@ int main(int argc, char *argv[])
expr.GetSourceExpr<MLIL_LOAD>().GetConstant<MLIL_CONST_PTR>());
return false; // Done parsing this
}
+ else if (expr.GetSourceExpr<MLIL_LOAD>().operation == MLIL_EXTERN_PTR)
+ {
+ printf(" Loading from address 0x%" PRIx64 "\n",
+ expr.GetSourceExpr<MLIL_LOAD>().GetConstant<MLIL_EXTERN_PTR>());
+ return false; // Done parsing this
+ }
break;
default:
break;