From e0cb0a9d52d3483bf921e9d917ad38e4459f60b1 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sat, 22 May 2021 23:26:25 -0700 Subject: [PATCH] added support for a generic transform prior to the 5 transforms... https://www.youtube.com/watch?v=IOgUaFkpS3Y --- dependencies/vmprofiler | 2 +- src/QVMProfiler.cpp | 10 +++++++--- src/vmprofiler-qt.vcxproj | 9 +++++++-- vmprofiler-qt.sln | 17 +++++++++++++++-- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/dependencies/vmprofiler b/dependencies/vmprofiler index 90d0c06..9befa18 160000 --- a/dependencies/vmprofiler +++ b/dependencies/vmprofiler @@ -1 +1 @@ -Subproject commit 90d0c0642656f86d3ec3f9736d09b8558d0f930c +Subproject commit 9befa18eaaa76e3949a58da06570121634e99159 diff --git a/src/QVMProfiler.cpp b/src/QVMProfiler.cpp index 49e2a04..02efe37 100644 --- a/src/QVMProfiler.cpp +++ b/src/QVMProfiler.cpp @@ -310,11 +310,10 @@ void QVMProfiler::on_VirtualInstructionTree_itemSelectionChanged() { auto newEntry = new QTreeWidgetItem(); newEntry->setText(0, QString::number( - (InstrVec->at(idx).addr - TraceFileHeader->module_base) + ImageBase, 16)); + (InstrVec->at(idx).addr - ModuleBase) + ImageBase, 16)); ZydisFormatterFormatInstruction(&formatter, &InstrVec->at(idx).instr, - buffer, sizeof(buffer), (InstrVec->at(idx).addr - - TraceFileHeader->module_base) + ImageBase); + buffer, sizeof(buffer), (InstrVec->at(idx).addr - ModuleBase) + ImageBase); newEntry->setText(1, buffer); ui.VMHandlerInstructionsTree->addTopLevelItem(newEntry); @@ -325,6 +324,10 @@ void QVMProfiler::on_VirtualInstructionTree_itemSelectionChanged() for (auto [TransformType, TransformInstr] : *HandlerTransforms) { + if (TransformType == vm::transform::type::generic0 && + TransformInstr.mnemonic == ZYDIS_MNEMONIC_INVALID) + continue; + auto newEntry = new QTreeWidgetItem(); switch (TransformType) { @@ -333,6 +336,7 @@ void QVMProfiler::on_VirtualInstructionTree_itemSelectionChanged() newEntry->setText(0, "Key Transform"); break; } + case vm::transform::type::generic0: case vm::transform::type::generic1: case vm::transform::type::generic2: case vm::transform::type::generic3: diff --git a/src/vmprofiler-qt.vcxproj b/src/vmprofiler-qt.vcxproj index 9d88cc8..4fcb51d 100644 --- a/src/vmprofiler-qt.vcxproj +++ b/src/vmprofiler-qt.vcxproj @@ -55,19 +55,24 @@ - $(VC_IncludePath);$(WindowsSDK_IncludePath);;$(ProjectDir)..\dependencies\vmprofiler\include + G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)DarkStyle\framelesswindow\;$(ProjectDir)DarkStyle;$(IncludePath);$(ProjectDir)..\dependencies\vmprofiler\include;$(ProjectDir)..\dependencies\vmprofiler\dependencies\zydis\include;$(ProjectDir)..\dependencies\vmprofiler\dependencies\zydis\dependencies\zycore\include;$(ProjectDir)..\dependencies\vmprofiler\dependencies\zydis\msvc G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)DarkStyle\framelesswindow\;$(ProjectDir)DarkStyle;$(IncludePath);$(ProjectDir)..\dependencies\vmprofiler\include;$(ProjectDir)..\dependencies\vmprofiler\dependencies\zydis\include;$(ProjectDir)..\dependencies\vmprofiler\dependencies\zydis\dependencies\zycore\include;$(ProjectDir)..\dependencies\vmprofiler\dependencies\zydis\msvc - stdcpplatest + stdcpp17 $(ProjectDir)..\libs\*;%(AdditionalDependencies) + + + stdcpp17 + + true diff --git a/vmprofiler-qt.sln b/vmprofiler-qt.sln index f0d2da2..72529a1 100644 --- a/vmprofiler-qt.sln +++ b/vmprofiler-qt.sln @@ -11,6 +11,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vmprofiler", "dependencies\ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + DBG|x64 = DBG|x64 + DBG|x86 = DBG|x86 Debug Kernel|x64 = Debug Kernel|x64 Debug Kernel|x86 = Debug Kernel|x86 Debug MD DLL|x64 = Debug MD DLL|x64 @@ -37,6 +39,10 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x64.ActiveCfg = Debug|x64 + {A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x64.Build.0 = Debug|x64 + {A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x86.ActiveCfg = Release|x64 + {A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x86.Build.0 = Release|x64 {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Debug Kernel|x64.ActiveCfg = Debug|x64 {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Debug Kernel|x64.Build.0 = Debug|x64 {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Debug Kernel|x86.ActiveCfg = Release|x64 @@ -83,6 +89,10 @@ Global {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Release|x64.ActiveCfg = Release|x64 {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Release|x64.Build.0 = Release|x64 {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Release|x86.ActiveCfg = Release|x64 + {88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x64.ActiveCfg = Debug MT|x64 + {88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x64.Build.0 = Debug MT|x64 + {88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x86.ActiveCfg = Debug MT|Win32 + {88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x86.Build.0 = Debug MT|Win32 {88A23124-5640-35A0-B890-311D7A67A7D2}.Debug Kernel|x64.ActiveCfg = Debug Kernel|x64 {88A23124-5640-35A0-B890-311D7A67A7D2}.Debug Kernel|x64.Build.0 = Debug Kernel|x64 {88A23124-5640-35A0-B890-311D7A67A7D2}.Debug Kernel|x64.Deploy.0 = Debug Kernel|x64 @@ -135,12 +145,15 @@ Global {88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x64.Build.0 = Release MD DLL|x64 {88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x86.ActiveCfg = Release MT DLL|Win32 {88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x86.Build.0 = Release MT DLL|Win32 + {D0B6092A-9944-4F24-9486-4B7DAE372619}.DBG|x64.ActiveCfg = DBG|x64 + {D0B6092A-9944-4F24-9486-4B7DAE372619}.DBG|x64.Build.0 = DBG|x64 + {D0B6092A-9944-4F24-9486-4B7DAE372619}.DBG|x86.ActiveCfg = DBG|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug Kernel|x64.ActiveCfg = Release|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug Kernel|x64.Build.0 = Release|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug Kernel|x86.ActiveCfg = Release|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug Kernel|x86.Build.0 = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD DLL|x64.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD DLL|x64.Build.0 = Release|x64 + {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD DLL|x64.ActiveCfg = DBG|x64 + {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD DLL|x64.Build.0 = DBG|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD DLL|x86.ActiveCfg = Release|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD DLL|x86.Build.0 = Release|x64 {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug MD|x64.ActiveCfg = Release|x64