Skip to content

Commit 990bccf

Browse files
torusrxxxmrexodia
authored andcommitted
add mem.isstring()
1 parent e629742 commit 990bccf

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

src/dbg/expressionfunctions.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ void ExpressionFunctions::Init()
8282
RegisterEasy("mem.base", membase);
8383
RegisterEasy("mem.size", memsize);
8484
RegisterEasy("mem.iscode", memiscode);
85+
RegisterEasy("mem.isstring", memisstring);
8586
RegisterEasy("mem.decodepointer", memdecodepointer);
8687

8788
//Disassembly

src/dbg/exprfunc.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,16 @@ namespace Exprfunc
122122
return MemIsCodePage(addr, false);
123123
}
124124

125+
duint memisstring(duint addr)
126+
{
127+
STRING_TYPE strType;
128+
disasmispossiblestring(addr, &strType);
129+
if(strType != STRING_TYPE::str_none)
130+
return strType == STRING_TYPE::str_unicode ? 2 : 1;
131+
else
132+
return 0;
133+
}
134+
125135
duint memdecodepointer(duint ptr)
126136
{
127137
auto decoded = ptr;

src/dbg/exprfunc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ namespace Exprfunc
2727
duint membase(duint addr);
2828
duint memsize(duint addr);
2929
duint memiscode(duint addr);
30+
duint memisstring(duint addr);
3031
duint memdecodepointer(duint ptr);
3132

3233
duint dislen(duint addr);

0 commit comments

Comments
 (0)