1
0
Fork 0

Print NTSTATUS value in info box

This commit is contained in:
Duncan Ogilvie 2024-01-06 21:23:08 +01:00
parent c3642c35be
commit f3cb3443d1
2 changed files with 17 additions and 8 deletions

View File

@ -288,20 +288,15 @@ void CPUInfoBox::disasmSelectionChanged(duint parVA)
}
else
{
QString valText;
auto symbolicName = getSymbolicNameStr(arg.value);
if(!symbolicName.contains(valText))
valText = QString("%1 (%2)").arg(symbolicName, valText);
else
valText = symbolicName;
QString valText = getSymbolicNameStr(arg.value);
QString mnemonic(arg.mnemonic);
bool ok;
mnemonic.toULongLong(&ok, 16);
if(ok) //skip certain numbers
{
if(ToHexString(arg.value) == symbolicName)
if(ToHexString(arg.value) == valText)
continue;
setInfoLine(j, symbolicName);
setInfoLine(j, valText);
}
else if(!mnemonic.startsWith("xmm") &&
!mnemonic.startsWith("ymm") &&

View File

@ -144,6 +144,8 @@ QString getSymbolicNameStr(duint addr)
finalText = QString("%1.%2").arg(moduleText).arg(addrText);
else if(bHasLabel) //<label>
finalText = QString("<%1>").arg(labelText);
else if(addr == 0)
finalText = addrText;
else
{
finalText = addrText;
@ -159,6 +161,18 @@ QString getSymbolicNameStr(duint addr)
if(c.isPrint() || c.isSpace())
finalText += QString(" L'%1'").arg(EscapeCh(c));
}
else if((addr & 0xFFFFFFFFF0000000ull) == 0xC0000000)
{
auto format = QString("{ntstatus@%1}").arg(ToHexString(addr));
if(DbgFunctions()->StringFormatInline(format.toUtf8().constData(), sizeof(string), string))
{
auto colon = strchr(string, ':');
if(colon)
*colon = '\0';
finalText += " ";
finalText += string;
}
}
}
return finalText;
}