From ac817b1674073238bce3065dd14ec88d3cb61753 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Tue, 10 Aug 2021 02:01:18 -0700 Subject: [PATCH] updated the project to the newest vmprofiler, project uses cmkr (cmake) now... --- .gitignore | 1 + CMakeLists.txt | 138 +++++++++++++++++++ README.md | 12 +- cmake.toml | 56 ++++++++ cmake/Qt5Helpers.cmake | 74 +++++++++++ cmake/cmkr.cmake | 162 +++++++++++++++++++++++ dependencies/CMakeLists.txt | 36 +++++ dependencies/cmake.toml | 5 + dependencies/vmprofiler | 2 +- src/darkstyle/main.cpp | 40 ------ src/main.cpp | 18 +-- src/qvminspector.cpp | 143 +++++--------------- src/qvminspector.h | 6 +- src/qvminspector.ui | 7 - vmprofiler-qt.sln | 241 ---------------------------------- vmprofiler-qt.vcxproj | 181 ------------------------- vmprofiler-qt.vcxproj.filters | 111 ---------------- 17 files changed, 526 insertions(+), 707 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake.toml create mode 100644 cmake/Qt5Helpers.cmake create mode 100644 cmake/cmkr.cmake create mode 100644 dependencies/CMakeLists.txt create mode 100644 dependencies/cmake.toml delete mode 100644 src/darkstyle/main.cpp delete mode 100644 vmprofiler-qt.sln delete mode 100644 vmprofiler-qt.vcxproj delete mode 100644 vmprofiler-qt.vcxproj.filters diff --git a/.gitignore b/.gitignore index 72de34f..984df86 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ mono_crash.* # Build results +build/ [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8835914 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,138 @@ +# This file is automatically generated from cmake.toml - DO NOT EDIT +# See https://github.com/build-cpp/cmkr for more information + +cmake_minimum_required(VERSION 3.15) + +if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) + message(FATAL_ERROR "In-tree builds are not supported. Run CMake from a separate directory: cmake -B build") +endif() + +# Regenerate CMakeLists.txt automatically in the root project +set(CMKR_ROOT_PROJECT OFF) +if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) + set(CMKR_ROOT_PROJECT ON) + + # Bootstrap cmkr + include("cmake/cmkr.cmake" OPTIONAL RESULT_VARIABLE CMKR_INCLUDE_RESULT) + if(CMKR_INCLUDE_RESULT) + cmkr() + endif() + + # Enable folder support + set_property(GLOBAL PROPERTY USE_FOLDERS ON) +endif() + +# Create a configure-time dependency on cmake.toml to improve IDE support +if(CMKR_ROOT_PROJECT) + configure_file(cmake.toml cmake.toml COPYONLY) +endif() + +project("VMProfiler Qt" + VERSION + 1.8 + DESCRIPTION + "VMProtect 2 IL Inspector" +) + +include("cmake/Qt5Helpers.cmake") + +# Packages +find_package(Qt5 REQUIRED CONFIG + COMPONENTS + Widgets +) + +# dependencies +set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER}) +if(CMAKE_FOLDER) + set(CMAKE_FOLDER "${CMAKE_FOLDER}/dependencies") +else() + set(CMAKE_FOLDER dependencies) +endif() +add_subdirectory(dependencies) +set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER}) + +# Target vmprofiler-qt +set(CMKR_TARGET vmprofiler-qt) +set(vmprofiler-qt_SOURCES "") + +list(APPEND vmprofiler-qt_SOURCES + "src/qvminspector.ui" + "src/qvminspector.qrc" + "src/qvminspector.cpp" + "src/qvirt_instrs.cpp" + "src/qvirt_handlers.cpp" + "src/main.cpp" + "src/qvirt_handlers.h" + "src/qvirt_instrs.h" + "src/qvminspector.h" + "src/icon.rc" + "src/darkstyle/DarkStyle.cpp" + "src/darkstyle/framelesswindow/framelesswindow.cpp" + "src/darkstyle/framelesswindow/windowdragger.cpp" + "src/darkstyle/mainwindow.cpp" + "src/darkstyle/DarkStyle.h" + "src/darkstyle/framelesswindow/framelesswindow.h" + "src/darkstyle/framelesswindow/windowdragger.h" + "src/darkstyle/mainwindow.h" + "src/darkstyle/mainwindow.ui" + "src/darkstyle/framelesswindow.qrc" + "dependencies/ia32-doc/out/ia32.hpp" +) + +list(APPEND vmprofiler-qt_SOURCES + cmake.toml +) + +set(CMKR_SOURCES ${vmprofiler-qt_SOURCES}) +add_executable(vmprofiler-qt) + +if(vmprofiler-qt_SOURCES) + target_sources(vmprofiler-qt PRIVATE ${vmprofiler-qt_SOURCES}) +endif() + +get_directory_property(CMKR_VS_STARTUP_PROJECT DIRECTORY ${PROJECT_SOURCE_DIR} DEFINITION VS_STARTUP_PROJECT) +if(NOT CMKR_VS_STARTUP_PROJECT) + set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT vmprofiler-qt) +endif() + +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${vmprofiler-qt_SOURCES}) + +target_compile_definitions(vmprofiler-qt PRIVATE + NOMINMAX +) + +target_compile_features(vmprofiler-qt PRIVATE + cxx_std_20 +) + +target_include_directories(vmprofiler-qt PRIVATE + include + "dependencies/ia32-doc/out/" +) + +target_link_libraries(vmprofiler-qt PRIVATE + Qt5::Widgets + vmprofiler +) + +target_link_options(vmprofiler-qt PRIVATE + "/SUBSYSTEM:WINDOWS" +) + +# Enable Qt moc/rrc/uic support +target_qt(${CMKR_TARGET}) +# Copy Qt DLLs next to the application +target_windeployqt(${CMKR_TARGET}) + +unset(CMKR_TARGET) +unset(CMKR_SOURCES) + +install( + TARGETS + vmprofiler-qt + DESTINATION + bin + COMPONENT + vmprofiler-qt +) diff --git a/README.md b/README.md index 34729b0..e264e9f 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,14 @@ # VMProfiler Qt - VMProtect 2 Virtual Instruction Inspector -VMProfiler Qt is a GUI project designed to inspect VMProtect 2 virtual instructions. In order to use this GUI please create a `.vmp2` file using [VMEmu](https://githacks.org/vmp2/vmemu). Once this `.vmp2` has been created you can inspect it by clicking ***File*** ---> ***Open***. \ No newline at end of file +VMProfiler Qt is a GUI project designed to inspect VMProtect 2 virtual instructions. In order to use this GUI please create a `.vmp2` file using [VMEmu](https://githacks.org/vmp2/vmemu). Once this `.vmp2` has been created you can inspect it by clicking ***File*** ---> ***Open***. + +# Building + +Simply replace `G:\Qt\5.15.1\msvc2019_64` with the path to your Qt install. Make sure it is of type `2019_64` otherwise it wont work! + +``` +git clone --recursive https://githacks.org/vmp2/vmprofiler-qt.git +cd vmprofiler-qt +cmake -B build -DCMAKE_PREFIX_PATH=G:\Qt\5.15.1\msvc2019_64 +``` \ No newline at end of file diff --git a/cmake.toml b/cmake.toml new file mode 100644 index 0000000..248c7a5 --- /dev/null +++ b/cmake.toml @@ -0,0 +1,56 @@ +[cmake] +version = "3.15" +cmkr-include = "cmake/cmkr.cmake" + +[project] +name = "VMProfiler Qt" +version = "1.8" +description = "VMProtect 2 IL Inspector" +include-after = ["cmake/Qt5Helpers.cmake"] + +[find-package] +Qt5 = { components = ["Widgets"] } + +[subdir.dependencies] +[target.vmprofiler-qt] +type = "executable" +compile-features = ["cxx_std_20"] + +sources = [ + "src/qvminspector.ui", + "src/qvminspector.qrc", + "src/qvminspector.cpp", + "src/qvirt_instrs.cpp", + "src/qvirt_handlers.cpp", + "src/main.cpp", + "src/*.h", + "src/icon.rc", + "src/darkstyle/**.cpp", + "src/darkstyle/**.h", + "src/darkstyle/mainwindow.ui", + "src/darkstyle/framelesswindow.qrc", + "dependencies/ia32-doc/out/ia32.hpp" +] + +include-directories = [ + "include", + "dependencies/ia32-doc/out/" +] + +compile-definitions = [ + "NOMINMAX" +] + +link-libraries = ["Qt5::Widgets", "vmprofiler"] +link-options = ["/SUBSYSTEM:WINDOWS"] + +cmake-after = """ +# Enable Qt moc/rrc/uic support +target_qt(${CMKR_TARGET}) +# Copy Qt DLLs next to the application +target_windeployqt(${CMKR_TARGET}) +""" + +[[install]] +targets = ["vmprofiler-qt"] +destination = "bin" \ No newline at end of file diff --git a/cmake/Qt5Helpers.cmake b/cmake/Qt5Helpers.cmake new file mode 100644 index 0000000..fe9b76b --- /dev/null +++ b/cmake/Qt5Helpers.cmake @@ -0,0 +1,74 @@ +# https://github.com/mrexodia/Qt5CMakeTemplate +# License: BSL-1.0 + +# Make the project look nicer in IDEs +set_property(GLOBAL PROPERTY AUTOGEN_SOURCE_GROUP "Generated Files") +set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER "CMakePredefinedTargets") + +# Install Visual Studio runtime +include(InstallRequiredSystemLibraries) + +# Helper function to enable moc/rcc/uic +function(target_qt target) + set_target_properties(${target} PROPERTIES + AUTOMOC + ON + AUTORCC + ON + AUTOUIC + ON + ) +endfunction() + +# Helper function to deploy Qt DLLs +function(target_windeployqt deploy_target) + # Based on: https://stackoverflow.com/a/41199492/1806760 + # TODO: set VCINSTALLDIR environment variable to copy MSVC runtime DLLs + if(Qt5_FOUND AND WIN32 AND TARGET Qt5::qmake AND NOT TARGET Qt5::windeployqt) + get_target_property(_qt5_qmake_location Qt5::qmake IMPORTED_LOCATION) + + execute_process( + COMMAND "${_qt5_qmake_location}" -query QT_INSTALL_PREFIX + RESULT_VARIABLE return_code + OUTPUT_VARIABLE qt5_install_prefix + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + set(imported_location "${qt5_install_prefix}/bin/windeployqt.exe") + + if(EXISTS ${imported_location}) + add_executable(Qt5::windeployqt IMPORTED) + + set_target_properties(Qt5::windeployqt PROPERTIES + IMPORTED_LOCATION ${imported_location} + ) + endif() + endif() + + if(TARGET Qt5::windeployqt AND NOT TARGET ${deploy_target}-windeployqt) + # Create a target that rebuilds when cmake is re-run + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${deploy_target}-windeployqt.c" "static void foo() { }\n") + add_library(${deploy_target}-windeployqt STATIC + "${CMAKE_CURRENT_BINARY_DIR}/${deploy_target}-windeployqt.c" + ) + set_target_properties(${deploy_target}-windeployqt PROPERTIES + FOLDER "CMakePredefinedTargets" + ) + + # Execute windeployqt in a tmp directory after build + add_custom_command(TARGET ${deploy_target}-windeployqt + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/${deploy_target}-windeployqt" + COMMAND Qt5::windeployqt --no-compiler-runtime --dir "${CMAKE_CURRENT_BINARY_DIR}/${deploy_target}-windeployqt" "$" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_BINARY_DIR}/${deploy_target}-windeployqt" "$" + ) + + # Copy deployment directory during installation + install( + DIRECTORY + "${CMAKE_CURRENT_BINARY_DIR}/${deploy_target}-windeployqt/" + DESTINATION bin + ) + endif() +endfunction() + diff --git a/cmake/cmkr.cmake b/cmake/cmkr.cmake new file mode 100644 index 0000000..d38bb64 --- /dev/null +++ b/cmake/cmkr.cmake @@ -0,0 +1,162 @@ +include_guard() + +# Change these defaults to point to your infrastructure if desired +set(CMKR_REPO "https://github.com/build-cpp/cmkr" CACHE STRING "cmkr git repository" FORCE) +set(CMKR_TAG "archive_a718dfd6" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE) + +# Set these from the command line to customize for development/debugging purposes +set(CMKR_EXECUTABLE "" CACHE FILEPATH "cmkr executable") +set(CMKR_SKIP_GENERATION OFF CACHE BOOL "skip automatic cmkr generation") + +# Disable cmkr if generation is disabled +if(DEFINED ENV{CI} OR CMKR_SKIP_GENERATION) + message(STATUS "[cmkr] Skipping automatic cmkr generation") + macro(cmkr) + endmacro() + return() +endif() + +# Disable cmkr if no cmake.toml file is found +if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake.toml") + message(AUTHOR_WARNING "[cmkr] Not found: ${CMAKE_CURRENT_SOURCE_DIR}/cmake.toml") + macro(cmkr) + endmacro() + return() +endif() + +# Convert a Windows native path to CMake path +if(CMKR_EXECUTABLE MATCHES "\\\\") + string(REPLACE "\\" "/" CMKR_EXECUTABLE_CMAKE "${CMKR_EXECUTABLE}") + set(CMKR_EXECUTABLE "${CMKR_EXECUTABLE_CMAKE}" CACHE FILEPATH "" FORCE) + unset(CMKR_EXECUTABLE_CMAKE) +endif() + +# Helper macro to execute a process (COMMAND_ERROR_IS_FATAL ANY is 3.19 and higher) +function(cmkr_exec) + execute_process(COMMAND ${ARGV} RESULT_VARIABLE CMKR_EXEC_RESULT) + if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "cmkr_exec(${ARGV}) failed (exit code ${CMKR_EXEC_RESULT})") + endif() +endfunction() + +# Windows-specific hack (CMAKE_EXECUTABLE_PREFIX is not set at the moment) +if(WIN32) + set(CMKR_EXECUTABLE_NAME "cmkr.exe") +else() + set(CMKR_EXECUTABLE_NAME "cmkr") +endif() + +# Use cached cmkr if found +set(CMKR_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/_cmkr_${CMKR_TAG}") +set(CMKR_CACHED_EXECUTABLE "${CMKR_DIRECTORY}/bin/${CMKR_EXECUTABLE_NAME}") + +if(NOT CMKR_CACHED_EXECUTABLE STREQUAL CMKR_EXECUTABLE AND CMKR_EXECUTABLE MATCHES "^${CMAKE_CURRENT_BINARY_DIR}/_cmkr") + message(AUTHOR_WARNING "[cmkr] Upgrading '${CMKR_EXECUTABLE}' to '${CMKR_CACHED_EXECUTABLE}'") + unset(CMKR_EXECUTABLE CACHE) +endif() + +if(CMKR_EXECUTABLE AND EXISTS "${CMKR_EXECUTABLE}") + message(VERBOSE "[cmkr] Found cmkr: '${CMKR_EXECUTABLE}'") +elseif(CMKR_EXECUTABLE AND NOT CMKR_EXECUTABLE STREQUAL CMKR_CACHED_EXECUTABLE) + message(FATAL_ERROR "[cmkr] '${CMKR_EXECUTABLE}' not found") +else() + set(CMKR_EXECUTABLE "${CMKR_CACHED_EXECUTABLE}" CACHE FILEPATH "Full path to cmkr executable" FORCE) + message(VERBOSE "[cmkr] Bootstrapping '${CMKR_EXECUTABLE}'") + + message(STATUS "[cmkr] Fetching cmkr...") + if(EXISTS "${CMKR_DIRECTORY}") + cmkr_exec("${CMAKE_COMMAND}" -E rm -rf "${CMKR_DIRECTORY}") + endif() + find_package(Git QUIET REQUIRED) + cmkr_exec("${GIT_EXECUTABLE}" + clone + --config advice.detachedHead=false + --branch ${CMKR_TAG} + --depth 1 + ${CMKR_REPO} + "${CMKR_DIRECTORY}" + ) + message(STATUS "[cmkr] Building cmkr...") + cmkr_exec("${CMAKE_COMMAND}" + --no-warn-unused-cli + "${CMKR_DIRECTORY}" + "-B${CMKR_DIRECTORY}/build" + "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_INSTALL_PREFIX=${CMKR_DIRECTORY}" + "-DCMKR_GENERATE_DOCUMENTATION=OFF" + ) + cmkr_exec("${CMAKE_COMMAND}" + --build "${CMKR_DIRECTORY}/build" + --config Release + --parallel + ) + cmkr_exec("${CMAKE_COMMAND}" + --install "${CMKR_DIRECTORY}/build" + --config Release + --prefix "${CMKR_DIRECTORY}" + --component cmkr + ) + if(NOT EXISTS ${CMKR_EXECUTABLE}) + message(FATAL_ERROR "[cmkr] Failed to bootstrap '${CMKR_EXECUTABLE}'") + endif() + cmkr_exec("${CMKR_EXECUTABLE}" version) + message(STATUS "[cmkr] Bootstrapped ${CMKR_EXECUTABLE}") +endif() +execute_process(COMMAND "${CMKR_EXECUTABLE}" version + RESULT_VARIABLE CMKR_EXEC_RESULT +) +if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "[cmkr] Failed to get version, try clearing the cache and rebuilding") +endif() + +# This is the macro that contains black magic +macro(cmkr) + # When this macro is called from the generated file, fake some internal CMake variables + get_source_file_property(CMKR_CURRENT_LIST_FILE "${CMAKE_CURRENT_LIST_FILE}" CMKR_CURRENT_LIST_FILE) + if(CMKR_CURRENT_LIST_FILE) + set(CMAKE_CURRENT_LIST_FILE "${CMKR_CURRENT_LIST_FILE}") + get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) + endif() + + # File-based include guard (include_guard is not documented to work) + get_source_file_property(CMKR_INCLUDE_GUARD "${CMAKE_CURRENT_LIST_FILE}" CMKR_INCLUDE_GUARD) + if(NOT CMKR_INCLUDE_GUARD) + set_source_files_properties("${CMAKE_CURRENT_LIST_FILE}" PROPERTIES CMKR_INCLUDE_GUARD TRUE) + + file(SHA256 "${CMAKE_CURRENT_LIST_FILE}" CMKR_LIST_FILE_SHA256_PRE) + + # Generate CMakeLists.txt + cmkr_exec("${CMKR_EXECUTABLE}" gen + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + ) + + file(SHA256 "${CMAKE_CURRENT_LIST_FILE}" CMKR_LIST_FILE_SHA256_POST) + + # Delete the temporary file if it was left for some reason + set(CMKR_TEMP_FILE "${CMAKE_CURRENT_SOURCE_DIR}/CMakerLists.txt") + if(EXISTS "${CMKR_TEMP_FILE}") + file(REMOVE "${CMKR_TEMP_FILE}") + endif() + + if(NOT CMKR_LIST_FILE_SHA256_PRE STREQUAL CMKR_LIST_FILE_SHA256_POST) + # Copy the now-generated CMakeLists.txt to CMakerLists.txt + # This is done because you cannot include() a file you are currently in + configure_file(CMakeLists.txt "${CMKR_TEMP_FILE}" COPYONLY) + + # Add the macro required for the hack at the start of the cmkr macro + set_source_files_properties("${CMKR_TEMP_FILE}" PROPERTIES + CMKR_CURRENT_LIST_FILE "${CMAKE_CURRENT_LIST_FILE}" + ) + + # 'Execute' the newly-generated CMakeLists.txt + include("${CMKR_TEMP_FILE}") + + # Delete the generated file + file(REMOVE "${CMKR_TEMP_FILE}") + + # Do not execute the rest of the original CMakeLists.txt + return() + endif() + # Resume executing the unmodified CMakeLists.txt + endif() +endmacro() diff --git a/dependencies/CMakeLists.txt b/dependencies/CMakeLists.txt new file mode 100644 index 0000000..0a16e9c --- /dev/null +++ b/dependencies/CMakeLists.txt @@ -0,0 +1,36 @@ +# This file is automatically generated from cmake.toml - DO NOT EDIT +# See https://github.com/build-cpp/cmkr for more information + +# Create a configure-time dependency on cmake.toml to improve IDE support +if(CMKR_ROOT_PROJECT) + configure_file(cmake.toml cmake.toml COPYONLY) +endif() + +# vmprofiler +set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER}) +if(CMAKE_FOLDER) + set(CMAKE_FOLDER "${CMAKE_FOLDER}/vmprofiler") +else() + set(CMAKE_FOLDER vmprofiler) +endif() +add_subdirectory(vmprofiler) +set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER}) + +# Target ia32-doc +set(CMKR_TARGET ia32-doc) +set(ia32-doc_SOURCES "") + +set(CMKR_SOURCES ${ia32-doc_SOURCES}) +add_library(ia32-doc INTERFACE) + +if(ia32-doc_SOURCES) + target_sources(ia32-doc INTERFACE ${ia32-doc_SOURCES}) +endif() + +target_include_directories(ia32-doc INTERFACE + "ia32-doc/out/" +) + +unset(CMKR_TARGET) +unset(CMKR_SOURCES) + diff --git a/dependencies/cmake.toml b/dependencies/cmake.toml new file mode 100644 index 0000000..286069f --- /dev/null +++ b/dependencies/cmake.toml @@ -0,0 +1,5 @@ +[subdir.vmprofiler] + +[target.ia32-doc] +type = "interface" +include-directories = ["ia32-doc/out/"] \ No newline at end of file diff --git a/dependencies/vmprofiler b/dependencies/vmprofiler index e75104f..a4b3817 160000 --- a/dependencies/vmprofiler +++ b/dependencies/vmprofiler @@ -1 +1 @@ -Subproject commit e75104fbb3b07540be51fcef169e9eaffd1cfee2 +Subproject commit a4b3817336939c9d6e3207e87a4f1c7830613056 diff --git a/src/darkstyle/main.cpp b/src/darkstyle/main.cpp deleted file mode 100644 index 322e5bc..0000000 --- a/src/darkstyle/main.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* -############################################################################### -# # -# The MIT License # -# # -# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) # -# >> https://github.com/Jorgen-VikingGod # -# # -# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle # -# # -############################################################################### -*/ - -#include -#include "DarkStyle.h" -#include "framelesswindow.h" -#include "mainwindow.h" - -int main(int argc, char *argv[]) { - QApplication a(argc, argv); - - // style our application with custom dark style - QApplication::setStyle(new DarkStyle); - QApplication::setPalette(QApplication::style()->standardPalette()); - - // create frameless window (and set windowState or title) - FramelessWindow framelessWindow; - //framelessWindow.setWindowState(Qt::WindowFullScreen); - //framelessWindow.setWindowTitle("test title"); - framelessWindow.setWindowIcon(a.style()->standardIcon(QStyle::SP_DesktopIcon)); - - // create our mainwindow instance - MainWindow *mainWindow = new MainWindow; - - // add the mainwindow to our custom frameless window - framelessWindow.setContent(mainWindow); - framelessWindow.show(); - - return a.exec(); -} diff --git a/src/main.cpp b/src/main.cpp index edcb6d3..bb0ceab 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,25 +1,25 @@ #define NOMINMAX -#include #include #include +#include -#include "qvminspector.h" -#include "qvirt_instrs.h" +#include "darkstyle/DarkStyle.h" +#include "darkstyle/framelesswindow/framelesswindow.h" #include "qvirt_handlers.h" -#include "framelesswindow.h" -#include "DarkStyle.h" +#include "qvirt_instrs.h" +#include "qvminspector.h" -int main(int argc, char *argv[]) +int WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { - QApplication app(argc, argv); - QApplication::setStyle(new DarkStyle); + QApplication app( __argc, __argv ); + QApplication::setStyle( new DarkStyle ); FramelessWindow frameless_window; const auto window = new qvminspector_t; qvirt_instrs_t virt_instr( window ); qvirt_handlers_t virt_handlers( window ); frameless_window.setContent( window ); - frameless_window.setWindowIcon(QIcon("icon.ico")); + frameless_window.setWindowIcon( QIcon( "icon.ico" ) ); frameless_window.show(); return app.exec(); } \ No newline at end of file diff --git a/src/qvminspector.cpp b/src/qvminspector.cpp index 55e55ec..6c06bde 100644 --- a/src/qvminspector.cpp +++ b/src/qvminspector.cpp @@ -10,73 +10,6 @@ qvminspector_t::qvminspector_t( qwidget_t *parent ) : qmain_window_t( parent ), connect( ui.action_open, &QAction::triggered, this, &qvminspector_t::on_open ); connect( ui.action_close, &QAction::triggered, this, &qvminspector_t::on_close ); - connect( ui.lift_all_button, &QAction::triggered, this, &qvminspector_t::on_lift_all ); -} - -void qvminspector_t::on_lift_all() -{ - if ( !first_block || !file_header ) - return; - - FreeConsole(); - if ( !AllocConsole() ) - return; - - freopen_s( reinterpret_cast< FILE ** >( stdin ), "CONIN$", "r", stdin ); - freopen_s( reinterpret_cast< FILE ** >( stdout ), "CONOUT$", "w", stdout ); - SetConsoleTitleA( "[VTIL] - lifted and optimized output..." ); - - vtil::basic_block *rtn = nullptr, *first = nullptr; - for ( auto [ code_block, code_block_num ] = std::tuple{ first_block, 0u }; - code_block_num < file_header->code_block_count; - code_block = reinterpret_cast< vmp2::v3::code_block_t * >( reinterpret_cast< std::uintptr_t >( code_block ) + - code_block->next_block_offset ), - ++code_block_num ) - { - if ( !rtn ) - { - rtn = vtil::basic_block::begin( - ABS_TO_IMG( code_block->vip_begin, file_header->module_base, file_header->image_base ) ); - } - else - { - first = rtn; - if ( !rtn->is_complete() ) - rtn->vexit( 0u ); - - rtn = rtn->fork( ABS_TO_IMG( code_block->vip_begin, file_header->module_base, file_header->image_base ) ); - } - - for ( auto idx = 0u; idx < code_block->vinstr_count; ++idx ) - { - auto vinstr = &code_block->vinstr[ idx ]; - if ( vinstr->mnemonic_t == vm::handler::INVALID ) - { - std::printf( "[WARNING] vm handler #%d is not implimented, the VTIL output may be incorrect!\n", - vinstr->opcode ); - rtn->nop(); - continue; - } - - const auto result = std::find_if( - vm::lifters::all.begin(), vm::lifters::all.end(), - [ & ]( vm::lifters::lifter_t *lifter ) -> bool { return lifter->first == vinstr->mnemonic_t; } ); - - if ( result == vm::lifters::all.end() ) - { - std::printf( "[WARNING] vm handler #%d lifter is not implimented, the VTIL output may be incorrect!\n", - vinstr->opcode ); - rtn->nop(); - continue; - } - - // lift the virtual instruction... - ( *result )->second( rtn, vinstr, code_block ); - } - } - - vtil::optimizer::apply_all( first ); - vtil::debug::dump( first ); } void qvminspector_t::on_close() @@ -207,14 +140,12 @@ void qvminspector_t::add_branch_children( qtree_widget_item_t *item, std::uintpt code_block->next_block_offset ), ++code_block_num ) { - // skip if this code block begin address is not branch_addr... - if ( code_block->vip_begin != branch_addr && code_block->vip_begin != branch_addr - 2 && - code_block->vip_begin != branch_addr - 1 ) + if ( code_block->vip_begin != branch_addr ) continue; dbg_print( qstring_t( "> code block %1 (block_%2), number of vinstrs = %3..." ) .arg( code_block_num ) - .arg( ( code_block->vip_begin - file_header->module_base ) + file_header->image_base, 0, 16 ) + .arg( code_block->vip_begin, 0, 16 ) .arg( code_block->vinstr_count ) ); // for each virtual instruction inside of this code block... @@ -227,10 +158,13 @@ void qvminspector_t::add_branch_children( qtree_widget_item_t *item, std::uintpt // virtual instruction image base'ed rva... (column 1)... virt_instr_entry->setText( 0, QString( "block_%1+%2" ) - .arg( ( branch_addr - file_header->module_base ) + file_header->image_base, 0, 16 ) - .arg( idx ? code_block->vip_begin > virt_instr->trace_data.vip - ? code_block->vip_begin - virt_instr->trace_data.vip - : virt_instr->trace_data.vip - code_block->vip_begin + .arg( branch_addr, 0, 16 ) + .arg( idx ? code_block->vip_begin > + ( ( virt_instr->trace_data.vip - file_header->module_base ) + image_base ) + ? code_block->vip_begin - + ( ( virt_instr->trace_data.vip - file_header->module_base ) + image_base ) + : ( ( virt_instr->trace_data.vip - file_header->module_base ) + image_base ) - + code_block->vip_begin : 0u, 0, 16 ) ); @@ -270,20 +204,13 @@ void qvminspector_t::add_branch_children( qtree_widget_item_t *item, std::uintpt if ( virt_instr->mnemonic_t == vm::handler::JMP && code_block->jcc.has_jcc ) { - virt_instr_entry->setText( - 3, - QString( "; { %1, %2 }" ) - .arg( ( code_block->jcc.block_addr[ 0 ] - file_header->module_base ) + file_header->image_base, - 0, 16 ) - .arg( ( code_block->jcc.block_addr[ 1 ] - file_header->module_base ) + file_header->image_base, - 0, 16 ) ); + virt_instr_entry->setText( 3, QString( "; { %1, %2 }" ) + .arg( code_block->jcc.block_addr[ 0 ], 0, 16 ) + .arg( code_block->jcc.block_addr[ 1 ], 0, 16 ) ); auto branch_entry1 = new qtree_widget_item_t(), branch_entry2 = new qtree_widget_item_t(); - const auto block1_addr = - ( code_block->jcc.block_addr[ 0 ] - file_header->module_base ) + file_header->image_base; - - const auto block2_addr = - ( code_block->jcc.block_addr[ 1 ] - file_header->module_base ) + file_header->image_base; + const auto block1_addr = code_block->jcc.block_addr[ 0 ]; + const auto block2_addr = code_block->jcc.block_addr[ 1 ]; branch_entry1->setText( 0, QString( "%1" ).arg( block1_addr, 0, 16 ) ); branch_entry1->setText( 3, QString( "; block_%1" ).arg( block1_addr, 0, 16 ) ); @@ -302,10 +229,7 @@ void qvminspector_t::add_branch_children( qtree_widget_item_t *item, std::uintpt } else if ( virt_instr->mnemonic_t == vm::handler::JMP ) { - virt_instr_entry->setText( 3, QString( "; { %1 }" ) - .arg( ( code_block->jcc.block_addr[ 0 ] - file_header->module_base ) + - file_header->image_base, - 0, 16 ) ); + virt_instr_entry->setText( 3, QString( "; { %1 }" ).arg( code_block->jcc.block_addr[ 0 ], 0, 16 ) ); // else if this jmp doesnt have two branches add the next code block to it... item->addChild( virt_instr_entry ); @@ -358,10 +282,10 @@ void qvminspector_t::update_ui() code_block->next_block_offset ), ++code_block_num ) { - code_block_addrs.push_back( ( code_block->vip_begin - file_header->module_base ) + file_header->image_base ); + code_block_addrs.push_back( code_block->vip_begin ); dbg_print( qstring_t( "> code block %1 (block_%2), number of vinstrs = %3..." ) .arg( code_block_num ) - .arg( ( code_block->vip_begin - file_header->module_base ) + file_header->image_base, 0, 16 ) + .arg( code_block->vip_begin, 0, 16 ) .arg( code_block->vinstr_count ) ); // for each virtual instruction inside of this code block... @@ -374,10 +298,13 @@ void qvminspector_t::update_ui() // virtual instruction image base'ed rva... (column 1)... virt_instr_entry->setText( 0, QString( "block_%1+%2" ) - .arg( ( code_block->vip_begin - file_header->module_base ) + file_header->image_base, 0, 16 ) - .arg( idx ? code_block->vip_begin > virt_instr->trace_data.vip - ? code_block->vip_begin - virt_instr->trace_data.vip - : virt_instr->trace_data.vip - code_block->vip_begin + .arg( code_block->vip_begin, 0, 16 ) + .arg( idx ? code_block->vip_begin > + ( ( virt_instr->trace_data.vip - file_header->module_base ) + image_base ) + ? code_block->vip_begin - + ( ( virt_instr->trace_data.vip - file_header->module_base ) + image_base ) + : ( ( virt_instr->trace_data.vip - file_header->module_base ) + image_base ) - + code_block->vip_begin : 0u, 0, 16 ) ); @@ -418,20 +345,13 @@ void qvminspector_t::update_ui() if ( virt_instr->mnemonic_t == vm::handler::JMP && code_block->jcc.has_jcc ) { - virt_instr_entry->setText( - 3, - QString( "; { %1, %2 }" ) - .arg( ( code_block->jcc.block_addr[ 0 ] - file_header->module_base ) + file_header->image_base, - 0, 16 ) - .arg( ( code_block->jcc.block_addr[ 1 ] - file_header->module_base ) + file_header->image_base, - 0, 16 ) ); + virt_instr_entry->setText( 3, QString( "; { %1, %2 }" ) + .arg( code_block->jcc.block_addr[ 0 ], 0, 16 ) + .arg( code_block->jcc.block_addr[ 1 ], 0, 16 ) ); auto branch_entry1 = new qtree_widget_item_t(), branch_entry2 = new qtree_widget_item_t(); - const auto block1_addr = - ( code_block->jcc.block_addr[ 0 ] - file_header->module_base ) + file_header->image_base; - - const auto block2_addr = - ( code_block->jcc.block_addr[ 1 ] - file_header->module_base ) + file_header->image_base; + const auto block1_addr = code_block->jcc.block_addr[ 0 ]; + const auto block2_addr = code_block->jcc.block_addr[ 1 ]; branch_entry1->setText( 0, QString( "%1" ).arg( block1_addr, 0, 16 ) ); branch_entry1->setText( 3, QString( "; block_%1" ).arg( block1_addr, 0, 16 ) ); @@ -449,10 +369,7 @@ void qvminspector_t::update_ui() goto finish; // bad code... } else if ( virt_instr->mnemonic_t == vm::handler::JMP ) - virt_instr_entry->setText( 3, QString( "; { %1 }" ) - .arg( ( code_block->jcc.block_addr[ 0 ] - file_header->module_base ) + - file_header->image_base, - 0, 16 ) ); + virt_instr_entry->setText( 3, QString( "; { %1 }" ).arg( code_block->jcc.block_addr[ 0 ], 0, 16 ) ); ui.virt_instrs->addTopLevelItem( virt_instr_entry ); } diff --git a/src/qvminspector.h b/src/qvminspector.h index cffd635..5f80b65 100644 --- a/src/qvminspector.h +++ b/src/qvminspector.h @@ -5,15 +5,16 @@ #include #include #include +#include #include #include #include #include -#include "ia32.hpp" #include "ui_qvminspector.h" -#include "vmp2.hpp" +#include +#include #define ABS_TO_IMG( addr, mod_base, img_base ) ( addr - mod_base ) + img_base Q_DECLARE_METATYPE( vm::instrs::virt_instr_t * ) @@ -36,7 +37,6 @@ class qvminspector_t : public qmain_window_t private slots: void on_open(); void on_close(); - void on_lift_all(); private: void dbg_print( qstring_t DbgOutput ); diff --git a/src/qvminspector.ui b/src/qvminspector.ui index 26fa6a6..1561742 100644 --- a/src/qvminspector.ui +++ b/src/qvminspector.ui @@ -624,14 +624,7 @@ - - - VTIL - - - - diff --git a/vmprofiler-qt.sln b/vmprofiler-qt.sln deleted file mode 100644 index 3a18079..0000000 --- a/vmprofiler-qt.sln +++ /dev/null @@ -1,241 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30907.101 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Zydis", "dependencies\vmprofiler\dependencies\zydis\msvc\zydis\Zydis.vcxproj", "{88A23124-5640-35A0-B890-311D7A67A7D2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vmprofiler", "dependencies\vmprofiler\vmprofiler.vcxproj", "{D0B6092A-9944-4F24-9486-4B7DAE372619}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vmprofiler-qt", "vmprofiler-qt.vcxproj", "{A0485AE3-1965-4BE3-A2C4-A8257337C271}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dependencies", "dependencies", "{EBAB8252-B20D-461B-A361-054921EABC2B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VTIL", "VTIL", "{4345601E-F7A1-4F1D-9780-2B0C1DC7E157}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VTIL", "dependencies\vmprofiler\dependencies\vtil\VTIL\VTIL.vcxproj", "{8163E74C-DDE4-4507-BD3D-064CD95FF33B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VTIL-Architecture", "dependencies\vmprofiler\dependencies\vtil\VTIL-Architecture\VTIL-Architecture.vcxproj", "{A79E2869-7626-4801-B09D-5C12F5163BA3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VTIL-Common", "dependencies\vmprofiler\dependencies\vtil\VTIL-Common\VTIL-Common.vcxproj", "{EC6B8F7F-730C-4086-B143-4664CC16DF8F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VTIL-Compiler", "dependencies\vmprofiler\dependencies\vtil\VTIL-Compiler\VTIL-Compiler.vcxproj", "{F960486B-2DB4-44AF-91BB-0F19F228ABCF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VTIL-SymEx", "dependencies\vmprofiler\dependencies\vtil\VTIL-SymEx\VTIL-SymEx.vcxproj", "{FE3202CE-D05C-4E04-AE9B-D30305D8CE31}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keystone", "dependencies\vmprofiler\dependencies\vtil\dependencies\keystone\msvc\llvm\keystone\keystone.vcxproj", "{E4754E3E-2503-307A-8076-8AC2AD8B75B2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "capstone-static", "dependencies\vmprofiler\dependencies\vtil\dependencies\capstone\msvc\capstone-static.vcxproj", "{A0471FDD-F210-3D7E-B4EA-20543BC10911}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DBG|x64 = DBG|x64 - DBG|x86 = DBG|x86 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - MinSizeRel|x64 = MinSizeRel|x64 - MinSizeRel|x86 = MinSizeRel|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - RelWithDebInfo|x64 = RelWithDebInfo|x64 - RelWithDebInfo|x86 = RelWithDebInfo|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x64.ActiveCfg = Debug MT DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x64.Build.0 = Debug MT DLL|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|x64.ActiveCfg = Debug MD DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.Debug|x64.Build.0 = Debug MD DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.Debug|x86.ActiveCfg = Debug MD DLL|Win32 - {88A23124-5640-35A0-B890-311D7A67A7D2}.Debug|x86.Build.0 = Debug MD DLL|Win32 - {88A23124-5640-35A0-B890-311D7A67A7D2}.MinSizeRel|x64.ActiveCfg = Debug MD DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.MinSizeRel|x64.Build.0 = Debug MD DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.MinSizeRel|x86.ActiveCfg = Debug MD DLL|Win32 - {88A23124-5640-35A0-B890-311D7A67A7D2}.MinSizeRel|x86.Build.0 = Debug MD DLL|Win32 - {88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x64.ActiveCfg = Release MT|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x64.Build.0 = Release MT|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 - {88A23124-5640-35A0-B890-311D7A67A7D2}.RelWithDebInfo|x64.ActiveCfg = Release MD DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.RelWithDebInfo|x64.Build.0 = Release MD DLL|x64 - {88A23124-5640-35A0-B890-311D7A67A7D2}.RelWithDebInfo|x86.ActiveCfg = Release MD DLL|Win32 - {88A23124-5640-35A0-B890-311D7A67A7D2}.RelWithDebInfo|x86.Build.0 = Release MD 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|x64.ActiveCfg = DBG|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug|x64.Build.0 = DBG|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug|x86.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Debug|x86.Build.0 = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.MinSizeRel|x64.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.MinSizeRel|x64.Build.0 = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.MinSizeRel|x86.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.MinSizeRel|x86.Build.0 = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Release|x64.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Release|x64.Build.0 = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.Release|x86.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.RelWithDebInfo|x64.Build.0 = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.RelWithDebInfo|x86.ActiveCfg = Release|x64 - {D0B6092A-9944-4F24-9486-4B7DAE372619}.RelWithDebInfo|x86.Build.0 = Release|x64 - {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 = Debug|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x86.Build.0 = Debug|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Debug|x64.ActiveCfg = Debug|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Debug|x64.Build.0 = Debug|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.Debug|x86.ActiveCfg = Debug|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.MinSizeRel|x64.ActiveCfg = Release|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.MinSizeRel|x64.Build.0 = Release|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.MinSizeRel|x86.ActiveCfg = Release|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.MinSizeRel|x86.Build.0 = Release|x64 - {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 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.RelWithDebInfo|x64.Build.0 = Release|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.RelWithDebInfo|x86.ActiveCfg = Release|x64 - {A0485AE3-1965-4BE3-A2C4-A8257337C271}.RelWithDebInfo|x86.Build.0 = Release|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.DBG|x64.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.DBG|x64.Build.0 = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.DBG|x86.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.DBG|x86.Build.0 = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.Debug|x64.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.Debug|x64.Build.0 = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.Debug|x86.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.MinSizeRel|x64.Build.0 = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.MinSizeRel|x86.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.MinSizeRel|x86.Build.0 = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.Release|x64.ActiveCfg = Release|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.Release|x64.Build.0 = Release|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.Release|x86.ActiveCfg = Release|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.RelWithDebInfo|x64.Build.0 = Release|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.RelWithDebInfo|x86.ActiveCfg = Debug|x64 - {8163E74C-DDE4-4507-BD3D-064CD95FF33B}.RelWithDebInfo|x86.Build.0 = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.DBG|x64.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.DBG|x64.Build.0 = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.DBG|x86.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.DBG|x86.Build.0 = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.Debug|x64.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.Debug|x64.Build.0 = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.Debug|x86.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.MinSizeRel|x64.Build.0 = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.MinSizeRel|x86.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.MinSizeRel|x86.Build.0 = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.Release|x64.ActiveCfg = Release|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.Release|x64.Build.0 = Release|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.Release|x86.ActiveCfg = Release|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.RelWithDebInfo|x64.Build.0 = Release|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.RelWithDebInfo|x86.ActiveCfg = Debug|x64 - {A79E2869-7626-4801-B09D-5C12F5163BA3}.RelWithDebInfo|x86.Build.0 = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.DBG|x64.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.DBG|x64.Build.0 = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.DBG|x86.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.DBG|x86.Build.0 = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.Debug|x64.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.Debug|x64.Build.0 = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.Debug|x86.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.MinSizeRel|x64.Build.0 = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.MinSizeRel|x86.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.MinSizeRel|x86.Build.0 = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.Release|x64.ActiveCfg = Release|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.Release|x64.Build.0 = Release|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.Release|x86.ActiveCfg = Release|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.RelWithDebInfo|x64.Build.0 = Release|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.RelWithDebInfo|x86.ActiveCfg = Debug|x64 - {EC6B8F7F-730C-4086-B143-4664CC16DF8F}.RelWithDebInfo|x86.Build.0 = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.DBG|x64.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.DBG|x64.Build.0 = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.DBG|x86.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.DBG|x86.Build.0 = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.Debug|x64.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.Debug|x64.Build.0 = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.Debug|x86.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.MinSizeRel|x64.Build.0 = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.MinSizeRel|x86.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.MinSizeRel|x86.Build.0 = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.Release|x64.ActiveCfg = Release|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.Release|x64.Build.0 = Release|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.Release|x86.ActiveCfg = Release|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.RelWithDebInfo|x64.Build.0 = Release|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.RelWithDebInfo|x86.ActiveCfg = Debug|x64 - {F960486B-2DB4-44AF-91BB-0F19F228ABCF}.RelWithDebInfo|x86.Build.0 = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.DBG|x64.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.DBG|x64.Build.0 = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.DBG|x86.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.DBG|x86.Build.0 = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.Debug|x64.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.Debug|x64.Build.0 = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.Debug|x86.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.MinSizeRel|x64.Build.0 = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.MinSizeRel|x86.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.MinSizeRel|x86.Build.0 = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.Release|x64.ActiveCfg = Release|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.Release|x64.Build.0 = Release|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.Release|x86.ActiveCfg = Release|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.RelWithDebInfo|x64.Build.0 = Release|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.RelWithDebInfo|x86.ActiveCfg = Debug|x64 - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31}.RelWithDebInfo|x86.Build.0 = Debug|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.DBG|x64.ActiveCfg = Debug|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.DBG|x64.Build.0 = Debug|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.DBG|x86.ActiveCfg = RelWithDebInfo|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.DBG|x86.Build.0 = RelWithDebInfo|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.Debug|x64.ActiveCfg = Debug|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.Debug|x64.Build.0 = Debug|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.Debug|x86.ActiveCfg = Debug|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.Release|x64.ActiveCfg = Release|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.Release|x64.Build.0 = Release|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.Release|x86.ActiveCfg = Release|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {E4754E3E-2503-307A-8076-8AC2AD8B75B2}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.DBG|x64.ActiveCfg = Debug|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.DBG|x64.Build.0 = Debug|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.DBG|x86.ActiveCfg = RelWithDebInfo|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.DBG|x86.Build.0 = RelWithDebInfo|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.Debug|x64.ActiveCfg = Debug|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.Debug|x64.Build.0 = Debug|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.Debug|x86.ActiveCfg = Debug|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.Release|x64.ActiveCfg = Release|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.Release|x64.Build.0 = Release|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.Release|x86.ActiveCfg = Release|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {A0471FDD-F210-3D7E-B4EA-20543BC10911}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {88A23124-5640-35A0-B890-311D7A67A7D2} = {EBAB8252-B20D-461B-A361-054921EABC2B} - {D0B6092A-9944-4F24-9486-4B7DAE372619} = {EBAB8252-B20D-461B-A361-054921EABC2B} - {4345601E-F7A1-4F1D-9780-2B0C1DC7E157} = {EBAB8252-B20D-461B-A361-054921EABC2B} - {8163E74C-DDE4-4507-BD3D-064CD95FF33B} = {4345601E-F7A1-4F1D-9780-2B0C1DC7E157} - {A79E2869-7626-4801-B09D-5C12F5163BA3} = {4345601E-F7A1-4F1D-9780-2B0C1DC7E157} - {EC6B8F7F-730C-4086-B143-4664CC16DF8F} = {4345601E-F7A1-4F1D-9780-2B0C1DC7E157} - {F960486B-2DB4-44AF-91BB-0F19F228ABCF} = {4345601E-F7A1-4F1D-9780-2B0C1DC7E157} - {FE3202CE-D05C-4E04-AE9B-D30305D8CE31} = {4345601E-F7A1-4F1D-9780-2B0C1DC7E157} - {E4754E3E-2503-307A-8076-8AC2AD8B75B2} = {EBAB8252-B20D-461B-A361-054921EABC2B} - {A0471FDD-F210-3D7E-B4EA-20543BC10911} = {EBAB8252-B20D-461B-A361-054921EABC2B} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {08AD2EFA-1756-4AF3-B8B4-F629F3A29A19} - EndGlobalSection -EndGlobal diff --git a/vmprofiler-qt.vcxproj b/vmprofiler-qt.vcxproj deleted file mode 100644 index 623c921..0000000 --- a/vmprofiler-qt.vcxproj +++ /dev/null @@ -1,181 +0,0 @@ - - - - - Debug - x64 - - - Release - x64 - - - - - {a0471fdd-f210-3d7e-b4ea-20543bc10911} - - - {e4754e3e-2503-307a-8076-8ac2ad8b75b2} - - - {a79e2869-7626-4801-b09d-5c12f5163ba3} - - - {ec6b8f7f-730c-4086-b143-4664cc16df8f} - - - {f960486b-2db4-44af-91bb-0f19f228abcf} - - - {fe3202ce-d05c-4e04-ae9b-d30305d8ce31} - - - {8163e74c-dde4-4507-bd3d-064cd95ff33b} - - - {88a23124-5640-35a0-b890-311d7a67a7d2} - - - {d0b6092a-9944-4f24-9486-4b7dae372619} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {A0485AE3-1965-4BE3-A2C4-A8257337C271} - QtVS_v304 - 10.0.19041.0 - 10.0.19041.0 - $(MSBuildProjectDirectory)\QtMsBuild - - - - Application - v142 - - - Application - v142 - - - - - - - 5.15.1 - core;gui;widgets - debug - - - 5.15.1 - core;gui;widgets - release - - - - - - - - - - - - - - - - - G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)src\DarkStyle\framelesswindow\;$(ProjectDir)src\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;$(ProjectDir)dependencies\ia32-doc\out\ - - - G:\Qt\5.15.1\msvc2019_64\include\QtWidgets;G:\Qt\5.15.1\msvc2019_64\include\*\;G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)src\darkstyle\framelesswindow\;$(ProjectDir)src\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;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\VTIL\includes\;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\dependencies\keystone\include;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\dependencies\capstone\include;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\VTIL-SymEx\includes\;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\VTIL-Compiler\includes\;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\VTIL-Common\includes\;$(ProjectDir)dependencies\vmprofiler\dependencies\vtil\VTIL-Architecture\includes\;$(ProjectDir)dependencies\ia32-doc\out\ - - - - stdcpplatest - ZYDIS_STATIC_DEFINE;%(PreprocessorDefinitions) - - - $(ProjectDir)..\libs\*;%(AdditionalDependencies) - true - 4194304 - 4194304 - - - - - stdcpp17 - %(PreprocessorDefinitions) - - - - - true - true - ProgramDatabase - Disabled - MultiThreadedDebugDLL - - - Console - true - - - - - true - true - None - Disabled - MultiThreadedDLL - - - Windows - true - - - - - - - - - \ No newline at end of file diff --git a/vmprofiler-qt.vcxproj.filters b/vmprofiler-qt.vcxproj.filters deleted file mode 100644 index b6359a4..0000000 --- a/vmprofiler-qt.vcxproj.filters +++ /dev/null @@ -1,111 +0,0 @@ - - - - - {841656a6-8f18-40f6-88cc-63394509aec2} - - - {b94916d4-6db7-4a7c-bfe5-f2ae9acd3b54} - - - {8c45819e-3375-4fa3-81c3-ef06ca9b22f8} - - - {12ad7b7f-216d-4e4f-a08a-c42ed0fc9450} - - - {105cb913-ac75-4192-b597-963e012ddf2e} - - - {d58a423a-4c09-4775-a839-0ab9e403f57e} - - - {48472175-af91-4abd-bcc9-9801caeb83c9} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files\darkstyle\framelesswindow - - - Source Files\darkstyle\framelesswindow - - - Source Files\darkstyle - - - Source Files - - - - - Header Files - - - Header Files\darkstyle - - - Header Files\darkstyle\framelesswindow - - - Header Files\darkstyle\framelesswindow - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - Resource Files - - - - - Resource Files - - - Resource Files - - - - - Resource Files - - - - - Header Files - - - Header Files - - - - - Resource Files - - - - - Resource Files - - - \ No newline at end of file