1
0
Fork 0

DBG: fix heuristic string detection near the end of a page

related to #1906
This commit is contained in:
Duncan Ogilvie 2018-03-05 23:49:38 +01:00
parent f8e4ed4f1f
commit 1c1a48bcee
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
1 changed files with 3 additions and 3 deletions

View File

@ -294,7 +294,8 @@ bool disasmispossiblestring(duint addr, STRING_TYPE* type)
{
unsigned char data[11];
memset(data, 0, sizeof(data));
if(!MemReadUnsafe(addr, data, sizeof(data) - 3))
duint bytesRead = 0;
if(!MemReadUnsafe(addr, data, sizeof(data) - 3, &bytesRead) && bytesRead < 2)
return false;
duint test = 0;
memcpy(&test, data, sizeof(duint));
@ -322,8 +323,7 @@ bool disasmgetstringat(duint addr, STRING_TYPE* type, char* ascii, char* unicode
if(!MemIsValidReadPtrUnsafe(addr, true) || !disasmispossiblestring(addr))
return false;
Memory<unsigned char*> data((maxlen + 1) * 2, "disasmgetstringat:data");
if(!MemReadUnsafe(addr, data(), (maxlen + 1) * 2)) //TODO: use safe version?
return false;
MemReadUnsafe(addr, data(), (maxlen + 1) * 2); //TODO: use safe version?
// Save a few pointer casts
auto asciiData = (char*)data();