added vtil, added f5 lol, now im adding a few other features...

merge-requests/2/head
_xeroxz 4 years ago
parent ac2b36c5f9
commit 2a9b731d3c

@ -1,3 +1,4 @@
#define NOMINMAX
#include <QtWidgets/QApplication> #include <QtWidgets/QApplication>
#include <QFile> #include <QFile>
#include <QTextStream> #include <QTextStream>

@ -8,6 +8,10 @@ qvirt_instrs_t::qvirt_instrs_t( qvminspector_t *vminspector ) : vminspector( vmi
void qvirt_instrs_t::on_select() void qvirt_instrs_t::on_select()
{ {
auto item = ui->virt_instrs->selectedItems()[ 0 ]; auto item = ui->virt_instrs->selectedItems()[ 0 ];
if ( !item )
return;
const auto virt_instr = item->data( 3, Qt::UserRole ).value< vm::instrs::virt_instr_t * >(); const auto virt_instr = item->data( 3, Qt::UserRole ).value< vm::instrs::virt_instr_t * >();
if ( !virt_instr ) if ( !virt_instr )

@ -1,4 +1,5 @@
#pragma once #pragma once
#define NOMINMAX
#include "qvminspector.h" #include "qvminspector.h"
class qvirt_instrs_t : public QObject class qvirt_instrs_t : public QObject

@ -10,6 +10,105 @@ 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_open, &QAction::triggered, this, &qvminspector_t::on_open );
connect( ui.action_close, &QAction::triggered, this, &qvminspector_t::on_close ); connect( ui.action_close, &QAction::triggered, this, &qvminspector_t::on_close );
connect( ui.lift_all_button, &QAction::triggered, this, &qvminspector_t::on_lift_all );
connect( ui.lift_specific_block_button, &QAction::triggered, this, &qvminspector_t::on_lift_block );
}
void qvminspector_t::on_lift_all()
{
if ( !first_block || !file_header )
return;
// if there was an older console try and free it..
FreeConsole();
if ( !AllocConsole() )
return;
freopen_s( reinterpret_cast< FILE ** >( stdin ), "CONIN$", "r", stdin );
freopen_s( reinterpret_cast< FILE ** >( stdout ), "CONOUT$", "w", stdout );
SetConsoleTitleA( "[VTIL] - blew the brains out the coupe..." );
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;
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( "> unable to lift to VTIL... unknown virtual instruction handler #%d... "
"please define a vm handler profile for this virtual instruction and try again..."
" you can also create your first contribution to this open source project by submitting"
" a merge request with your changes! :)\n",
vinstr->opcode );
return;
}
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( "> unable to lift to VTIL... unknown virtual instruction handler lifter for #%d... "
"please define a vm handler lifter for this vm handler and try again..."
" you can also create your first contribution to this open source project by submitting"
" a merge request with your changes! :)\n",
vinstr->opcode );
return;
}
// lift the virtual instruction...
( *result )->second( rtn, vinstr, code_block );
}
}
vtil::optimizer::apply_all( first );
vtil::debug::dump( first );
}
void qvminspector_t::on_lift_block()
{
if ( !file_header )
return;
auto lift_block_select = new QDialog();
auto layout = new QVBoxLayout();
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 )
{
auto new_button = new QPushButton();
new_button->setText( QString( "block_%1" ).arg( code_block->vip_begin, 0u, 16 ) );
layout->addWidget( new_button );
}
lift_block_select->setBaseSize( { 200, 100 } );
lift_block_select->setWindowTitle( "Select A Block" );
lift_block_select->setLayout( layout );
lift_block_select->exec();
} }
void qvminspector_t::on_close() void qvminspector_t::on_close()
@ -25,7 +124,8 @@ void qvminspector_t::on_open()
delete vmctx; delete vmctx;
} }
file_header = nullptr; file_header = nullptr, first_block = nullptr;
code_block_addrs.clear();
image_base = 0u, vm_entry_rva = 0u, module_base = 0u; image_base = 0u, vm_entry_rva = 0u, module_base = 0u;
file_path = QFileDialog::getOpenFileName( file_path = QFileDialog::getOpenFileName(
@ -192,10 +292,9 @@ void qvminspector_t::add_branch_children( qtree_widget_item_t *item, std::uintpt
// add comments to the virtual instruction... (colume 4)... // add comments to the virtual instruction... (colume 4)...
if ( virt_instr->mnemonic_t == vm::handler::LREGQ || virt_instr->mnemonic_t == vm::handler::SREGQ ) if ( virt_instr->mnemonic_t == vm::handler::LREGQ || virt_instr->mnemonic_t == vm::handler::SREGQ )
virt_instr_entry->setText( 3, QString( "; vreg%1" ) virt_instr_entry->setText(
.arg( virt_instr->operand.imm.u ? ( virt_instr->operand.imm.u / 8 ) - 3,
1 /* zero based vreg... */ QString( "; vreg%1" ).arg( virt_instr->operand.imm.u ? ( virt_instr->operand.imm.u / 8 ) : 0u ) );
: 0u ) );
QVariant var; QVariant var;
var.setValue( virt_instr ); var.setValue( virt_instr );
@ -366,3 +465,17 @@ void qvminspector_t::update_ui()
finish: // bad code... finish: // bad code...
ui.virt_instrs->topLevelItem( 0 )->setSelected( true ); ui.virt_instrs->topLevelItem( 0 )->setSelected( true );
} }
bool qvminspector_t::event( QEvent *event )
{
if ( event->type() == QEvent::KeyPress )
{
auto kevent = static_cast< QKeyEvent * >( event );
if ( kevent->key() == Qt::Key::Key_F5 )
{
return true;
}
}
return false;
}

@ -1,8 +1,11 @@
#pragma once #pragma once
#define NOMINMAX
#include <QtWidgets/QFileDialog> #include <QtWidgets/QFileDialog>
#include <QtWidgets/QInputDialog.h> #include <QtWidgets/QInputDialog.h>
#include <QtWidgets/QMainWindow> #include <QtWidgets/QMainWindow>
#include <QtWidgets/QMessageBox.h> #include <QtWidgets/QMessageBox.h>
#include <qpushbutton.h>
#include <Windows.h> #include <Windows.h>
#include <filesystem> #include <filesystem>
#include <fstream> #include <fstream>
@ -12,6 +15,7 @@
#include "ui_qvminspector.h" #include "ui_qvminspector.h"
#include "vmp2.hpp" #include "vmp2.hpp"
#define ABS_TO_IMG( addr, mod_base, img_base ) ( addr - mod_base ) + img_base
Q_DECLARE_METATYPE( vm::instrs::virt_instr_t * ) Q_DECLARE_METATYPE( vm::instrs::virt_instr_t * )
using qmain_window_t = QMainWindow; using qmain_window_t = QMainWindow;
@ -31,6 +35,11 @@ class qvminspector_t : public qmain_window_t
private slots: private slots:
void on_open(); void on_open();
void on_close(); void on_close();
void on_lift_all();
void on_lift_block();
protected:
bool event( QEvent *event );
private: private:
void dbg_print( qstring_t DbgOutput ); void dbg_print( qstring_t DbgOutput );

@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1606</width> <width>1496</width>
<height>1038</height> <height>1038</height>
</rect> </rect>
</property> </property>
@ -25,480 +25,490 @@
<widget class="QWidget" name="centralWidget"> <widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<item> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QTabWidget" name="tabWidget">
<property name="title"> <property name="currentIndex">
<string>Virtual Instructions</string> <number>0</number>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <widget class="QWidget" name="virtual_instructions_tab" native="true">
<item> <attribute name="title">
<widget class="QScrollArea" name="scrollArea"> <string>Virtual Instructions</string>
<property name="widgetResizable"> </attribute>
<bool>true</bool> <layout class="QVBoxLayout" name="verticalLayout_2">
</property> <item>
<widget class="QWidget" name="scrollAreaWidgetContents"> <widget class="QScrollArea" name="scrollArea">
<property name="geometry"> <property name="widgetResizable">
<rect> <bool>true</bool>
<x>0</x>
<y>0</y>
<width>1566</width>
<height>810</height>
</rect>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <widget class="QWidget" name="scrollAreaWidgetContents">
<item> <property name="geometry">
<widget class="QTreeWidget" name="virt_instrs"> <rect>
<attribute name="headerDefaultSectionSize"> <x>0</x>
<number>160</number> <y>0</y>
</attribute> <width>1452</width>
<column> <height>799</height>
<property name="text"> </rect>
<string>Address</string> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QTreeWidget" name="virt_instrs">
<attribute name="headerDefaultSectionSize">
<number>160</number>
</attribute>
<column>
<property name="text">
<string>Address</string>
</property>
</column>
<column>
<property name="text">
<string>Operands</string>
</property>
</column>
<column>
<property name="text">
<string>Virtual Instruction</string>
</property>
</column>
<column>
<property name="text">
<string>Comments</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Virtual Instruction Information</string>
</property> </property>
</column> <layout class="QVBoxLayout" name="verticalLayout">
<column> <item>
<property name="text"> <widget class="QGroupBox" name="groupBox_3">
<string>Operands</string> <property name="title">
</property> <string>Registers</string>
</column> </property>
<column> <layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="text"> <item>
<string>Virtual Instruction</string> <widget class="QTreeWidget" name="virt_regs">
</property> <attribute name="headerDefaultSectionSize">
</column> <number>65</number>
<column> </attribute>
<property name="text"> <column>
<string>Comments</string> <property name="text">
</property> <string>Register</string>
</column> </property>
</widget> </column>
</item> <column>
<item> <property name="text">
<widget class="QGroupBox" name="groupBox_2"> <string>Value</string>
<property name="title"> </property>
<string>Virtual Instruction Information</string> </column>
</property> <item>
<layout class="QVBoxLayout" name="verticalLayout"> <property name="text">
<item> <string>VIP</string>
<widget class="QGroupBox" name="groupBox_3"> </property>
<property name="title"> </item>
<string>Registers</string> <item>
</property> <property name="text">
<layout class="QHBoxLayout" name="horizontalLayout_3"> <string>VSP</string>
<item> </property>
<widget class="QTreeWidget" name="virt_regs"> </item>
<attribute name="headerDefaultSectionSize"> <item>
<number>65</number> <property name="text">
</attribute> <string>DKEY</string>
<column> </property>
<property name="text"> </item>
<string>Register</string> <item>
</property> <property name="text">
</column> <string/>
<column> </property>
<property name="text"> </item>
<string>Value</string> <item>
</property> <property name="text">
</column> <string>vreg0</string>
<item> </property>
<property name="text"> <property name="text">
<string>VIP</string> <string/>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>VSP</string> <string>vreg1</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>DKEY</string> <string>vreg2</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string/> <string>vreg3</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>vreg0</string> <string>vreg4</string>
</property> </property>
<property name="text"> </item>
<string/> <item>
</property> <property name="text">
</item> <string>vreg5</string>
<item> </property>
<property name="text"> </item>
<string>vreg1</string> <item>
</property> <property name="text">
</item> <string>vreg6</string>
<item> </property>
<property name="text"> </item>
<string>vreg2</string> <item>
</property> <property name="text">
</item> <string>vreg7</string>
<item> </property>
<property name="text"> </item>
<string>vreg3</string> <item>
</property> <property name="text">
</item> <string>vreg8</string>
<item> </property>
<property name="text"> </item>
<string>vreg4</string> <item>
</property> <property name="text">
</item> <string>vreg9</string>
<item> </property>
<property name="text"> </item>
<string>vreg5</string> <item>
</property> <property name="text">
</item> <string>vreg10</string>
<item> </property>
<property name="text"> </item>
<string>vreg6</string> <item>
</property> <property name="text">
</item> <string>vreg11</string>
<item> </property>
<property name="text"> </item>
<string>vreg7</string> <item>
</property> <property name="text">
</item> <string>vreg12</string>
<item> </property>
<property name="text"> </item>
<string>vreg8</string> <item>
</property> <property name="text">
</item> <string>vreg13</string>
<item> </property>
<property name="text"> </item>
<string>vreg9</string> <item>
</property> <property name="text">
</item> <string>vreg14</string>
<item> </property>
<property name="text"> </item>
<string>vreg10</string> <item>
</property> <property name="text">
</item> <string>vreg15</string>
<item> </property>
<property name="text"> </item>
<string>vreg11</string> <item>
</property> <property name="text">
</item> <string>vreg16</string>
<item> </property>
<property name="text"> </item>
<string>vreg12</string> <item>
</property> <property name="text">
</item> <string>vreg17</string>
<item> </property>
<property name="text"> </item>
<string>vreg13</string> <item>
</property> <property name="text">
</item> <string>vreg18</string>
<item> </property>
<property name="text"> </item>
<string>vreg14</string> <item>
</property> <property name="text">
</item> <string>vreg19</string>
<item> </property>
<property name="text"> </item>
<string>vreg15</string> <item>
</property> <property name="text">
</item> <string>vreg20</string>
<item> </property>
<property name="text"> </item>
<string>vreg16</string> <item>
</property> <property name="text">
</item> <string>vreg21</string>
<item> </property>
<property name="text"> </item>
<string>vreg17</string> <item>
</property> <property name="text">
</item> <string>vreg22</string>
<item> </property>
<property name="text"> </item>
<string>vreg18</string> <item>
</property> <property name="text">
</item> <string>vreg23</string>
<item> </property>
<property name="text"> </item>
<string>vreg19</string> </widget>
</property> </item>
</item> <item>
<item> <widget class="QTreeWidget" name="native_regs">
<property name="text"> <attribute name="headerDefaultSectionSize">
<string>vreg20</string> <number>70</number>
</property> </attribute>
</item> <column>
<item> <property name="text">
<property name="text"> <string>Register</string>
<string>vreg21</string> </property>
</property> </column>
</item> <column>
<item> <property name="text">
<property name="text"> <string>Value</string>
<string>vreg22</string> </property>
</property> </column>
</item> <item>
<item> <property name="text">
<property name="text"> <string>R15</string>
<string>vreg23</string> </property>
</property> </item>
</item> <item>
</widget> <property name="text">
</item> <string>R14</string>
<item> </property>
<widget class="QTreeWidget" name="native_regs"> </item>
<attribute name="headerDefaultSectionSize"> <item>
<number>70</number> <property name="text">
</attribute> <string>R13</string>
<column> </property>
<property name="text"> </item>
<string>Register</string> <item>
</property> <property name="text">
</column> <string>R12</string>
<column> </property>
<property name="text"> </item>
<string>Value</string>
</property>
</column>
<item>
<property name="text">
<string>R15</string>
</property>
</item>
<item>
<property name="text">
<string>R14</string>
</property>
</item>
<item>
<property name="text">
<string>R13</string>
</property>
</item>
<item>
<property name="text">
<string>R12</string>
</property>
</item>
<item>
<property name="text">
<string>R11</string>
</property>
</item>
<item>
<property name="text">
<string>R10</string>
</property>
</item>
<item>
<property name="text">
<string>R9</string>
</property>
</item>
<item>
<property name="text">
<string>R8</string>
</property>
</item>
<item>
<property name="text">
<string>RBP</string>
</property>
</item>
<item>
<property name="text">
<string>RDI</string>
</property>
</item>
<item>
<property name="text">
<string>RSI</string>
</property>
</item>
<item>
<property name="text">
<string>RDX</string>
</property>
</item>
<item>
<property name="text">
<string>RCX</string>
</property>
</item>
<item>
<property name="text">
<string>RBX</string>
</property>
</item>
<item>
<property name="text">
<string>RAX</string>
</property>
</item>
<item>
<property name="text">
<string/>
</property>
</item>
<item>
<property name="text">
<string>RFLAGS</string>
</property>
<item> <item>
<property name="text"> <property name="text">
<string>ZF</string> <string>R11</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>PF</string> <string>R10</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>AF</string> <string>R9</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>OF</string> <string>R8</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>SF</string> <string>RBP</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>DF</string> <string>RDI</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>CF</string> <string>RSI</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>TF</string> <string>RDX</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>IF</string> <string>RCX</string>
</property> </property>
</item> </item>
</item> <item>
</widget> <property name="text">
</item> <string>RBX</string>
</layout> </property>
</widget> </item>
</item> <item>
<item> <property name="text">
<widget class="QGroupBox" name="groupBox_4"> <string>RAX</string>
<property name="title"> </property>
<string>Virtual Stack</string> </item>
</property> <item>
<layout class="QVBoxLayout" name="verticalLayout_4"> <property name="text">
<item> <string/>
<widget class="QScrollArea" name="scrollArea_3"> </property>
<property name="widgetResizable"> </item>
<bool>true</bool> <item>
</property> <property name="text">
<widget class="QWidget" name="scrollAreaWidgetContents_3"> <string>RFLAGS</string>
<property name="geometry"> </property>
<rect> <item>
<x>0</x> <property name="text">
<y>0</y> <string>ZF</string>
<width>729</width> </property>
<height>210</height> </item>
</rect> <item>
<property name="text">
<string>PF</string>
</property>
</item>
<item>
<property name="text">
<string>AF</string>
</property>
</item>
<item>
<property name="text">
<string>OF</string>
</property>
</item>
<item>
<property name="text">
<string>SF</string>
</property>
</item>
<item>
<property name="text">
<string>DF</string>
</property>
</item>
<item>
<property name="text">
<string>CF</string>
</property>
</item>
<item>
<property name="text">
<string>TF</string>
</property>
</item>
<item>
<property name="text">
<string>IF</string>
</property>
</item>
</item>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Virtual Stack</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QScrollArea" name="scrollArea_3">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>672</width>
<height>210</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QTreeWidget" name="virt_stack">
<column>
<property name="text">
<string>Stack Pointer</string>
</property>
</column>
<column>
<property name="text">
<string>Value</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string>Virtual Machine Instruction Handler</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>VM Handler Instructions</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QTreeWidget" name="vm_handler_instrs">
<column>
<property name="text">
<string>Address</string>
</property>
</column>
<column>
<property name="text">
<string>Instruction</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>VM Handler Transformations</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_9">
<item> <item>
<widget class="QTreeWidget" name="virt_stack"> <widget class="QTreeWidget" name="vm_handler_transforms">
<column> <column>
<property name="text"> <property name="text">
<string>Stack Pointer</string> <string>Address</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Value</string> <string>Instruction</string>
</property> </property>
</column> </column>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</widget> </item>
</item> </layout>
</layout> </widget>
</widget> </item>
</item> </layout>
<item> </widget>
<widget class="QGroupBox" name="groupBox_5"> </item>
<property name="title"> </layout>
<string>Virtual Machine Instruction Handler</string> </widget>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>VM Handler Instructions</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QTreeWidget" name="vm_handler_instrs">
<column>
<property name="text">
<string>Address</string>
</property>
</column>
<column>
<property name="text">
<string>Instruction</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>VM Handler Transformations</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QTreeWidget" name="vm_handler_transforms">
<column>
<property name="text">
<string>Address</string>
</property>
</column>
<column>
<property name="text">
<string>Instruction</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget> </widget>
</widget> </item>
</item> </layout>
</layout> </widget>
<widget class="QWidget" name="vm_handlers_tab">
<attribute name="title">
<string>Virtual Machine Handlers</string>
</attribute>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -508,7 +518,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1606</width> <width>1496</width>
<height>21</height> <height>21</height>
</rect> </rect>
</property> </property>
@ -519,7 +529,15 @@
<addaction name="action_open"/> <addaction name="action_open"/>
<addaction name="action_close"/> <addaction name="action_close"/>
</widget> </widget>
<widget class="QMenu" name="menuVTIL">
<property name="title">
<string>VTIL</string>
</property>
<addaction name="lift_specific_block_button"/>
<addaction name="lift_all_button"/>
</widget>
<addaction name="menuOpen_VMTrace"/> <addaction name="menuOpen_VMTrace"/>
<addaction name="menuVTIL"/>
</widget> </widget>
<widget class="QDockWidget" name="dockWidget"> <widget class="QDockWidget" name="dockWidget">
<property name="minimumSize"> <property name="minimumSize">
@ -572,12 +590,31 @@
<property name="text"> <property name="text">
<string>Open Trace</string> <string>Open Trace</string>
</property> </property>
<property name="shortcut">
<string>F1</string>
</property>
</action> </action>
<action name="action_close"> <action name="action_close">
<property name="text"> <property name="text">
<string>Close</string> <string>Close</string>
</property> </property>
</action> </action>
<action name="lift_specific_block_button">
<property name="text">
<string extracomment="F6">Lift Specific Block</string>
</property>
<property name="shortcut">
<string>F6</string>
</property>
</action>
<action name="lift_all_button">
<property name="text">
<string extracomment="F5">Lift All</string>
</property>
<property name="shortcut">
<string>F5</string>
</property>
</action>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<resources> <resources>

@ -9,39 +9,232 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vmprofiler", "dependencies\
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vmprofiler-qt", "vmprofiler-qt.vcxproj", "{A0485AE3-1965-4BE3-A2C4-A8257337C271}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vmprofiler-qt", "vmprofiler-qt.vcxproj", "{A0485AE3-1965-4BE3-A2C4-A8257337C271}"
EndProject 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 Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
DBG|x64 = DBG|x64 DBG|x64 = DBG|x64
DBG|x86 = DBG|x86 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|x64 = Release|x64
Release|x86 = Release|x86 Release|x86 = Release|x86
RelWithDebInfo|x64 = RelWithDebInfo|x64
RelWithDebInfo|x86 = RelWithDebInfo|x86
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x64.ActiveCfg = Debug MT DLL|x64 {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|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.ActiveCfg = Debug MT|Win32
{88A23124-5640-35A0-B890-311D7A67A7D2}.DBG|x86.Build.0 = 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.ActiveCfg = Release MT|x64
{88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x64.Build.0 = 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.ActiveCfg = Release MT DLL|Win32
{88A23124-5640-35A0-B890-311D7A67A7D2}.Release|x86.Build.0 = 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.ActiveCfg = DBG|x64
{D0B6092A-9944-4F24-9486-4B7DAE372619}.DBG|x64.Build.0 = 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}.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.ActiveCfg = Release|x64
{D0B6092A-9944-4F24-9486-4B7DAE372619}.Release|x64.Build.0 = 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}.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.ActiveCfg = Debug|x64
{A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x64.Build.0 = 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.ActiveCfg = Debug|x64
{A0485AE3-1965-4BE3-A2C4-A8257337C271}.DBG|x86.Build.0 = 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.ActiveCfg = Release|x64
{A0485AE3-1965-4BE3-A2C4-A8257337C271}.Release|x64.Build.0 = 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}.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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection 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 GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {08AD2EFA-1756-4AF3-B8B4-F629F3A29A19} SolutionGuid = {08AD2EFA-1756-4AF3-B8B4-F629F3A29A19}
EndGlobalSection EndGlobalSection

@ -11,6 +11,27 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\dependencies\capstone\msvc\capstone-static.vcxproj">
<Project>{a0471fdd-f210-3d7e-b4ea-20543bc10911}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\dependencies\keystone\msvc\llvm\keystone\keystone.vcxproj">
<Project>{e4754e3e-2503-307a-8076-8ac2ad8b75b2}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\VTIL-Architecture\VTIL-Architecture.vcxproj">
<Project>{a79e2869-7626-4801-b09d-5c12f5163ba3}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\VTIL-Common\VTIL-Common.vcxproj">
<Project>{ec6b8f7f-730c-4086-b143-4664cc16df8f}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\VTIL-Compiler\VTIL-Compiler.vcxproj">
<Project>{f960486b-2db4-44af-91bb-0f19f228abcf}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\VTIL-SymEx\VTIL-SymEx.vcxproj">
<Project>{fe3202ce-d05c-4e04-ae9b-d30305d8ce31}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\vtil\VTIL\VTIL.vcxproj">
<Project>{8163e74c-dde4-4507-bd3d-064cd95ff33b}</Project>
</ProjectReference>
<ProjectReference Include="dependencies\vmprofiler\dependencies\zydis\msvc\zydis\Zydis.vcxproj"> <ProjectReference Include="dependencies\vmprofiler\dependencies\zydis\msvc\zydis\Zydis.vcxproj">
<Project>{88a23124-5640-35a0-b890-311d7a67a7d2}</Project> <Project>{88a23124-5640-35a0-b890-311d7a67a7d2}</Project>
</ProjectReference> </ProjectReference>
@ -46,6 +67,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="dependencies\ia32-doc\out\ia32.hpp" /> <ClInclude Include="dependencies\ia32-doc\out\ia32.hpp" />
<ClInclude Include="x64\Release\uic\ui_framelesswindow.h" />
<QtMoc Include="src\darkstyle\framelesswindow\windowdragger.h" /> <QtMoc Include="src\darkstyle\framelesswindow\windowdragger.h" />
<QtMoc Include="src\darkstyle\framelesswindow\framelesswindow.h" /> <QtMoc Include="src\darkstyle\framelesswindow\framelesswindow.h" />
<QtMoc Include="src\darkstyle\DarkStyle.h" /> <QtMoc Include="src\darkstyle\DarkStyle.h" />
@ -104,16 +126,18 @@
<IncludePath>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\</IncludePath> <IncludePath>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\</IncludePath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<IncludePath>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\</IncludePath> <IncludePath>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\</IncludePath>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpplatest</LanguageStandard>
<PreprocessorDefinitions>ZYDIS_STATIC_DEFINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>ZYDIS_STATIC_DEFINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalDependencies>$(ProjectDir)..\libs\*;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(ProjectDir)..\libs\*;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateMapFile>true</GenerateMapFile> <GenerateMapFile>true</GenerateMapFile>
<StackReserveSize>4194304</StackReserveSize>
<StackCommitSize>4194304</StackCommitSize>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

@ -88,6 +88,9 @@
<ClInclude Include="dependencies\ia32-doc\out\ia32.hpp"> <ClInclude Include="dependencies\ia32-doc\out\ia32.hpp">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="x64\Release\uic\ui_framelesswindow.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Image Include="src\icon.ico"> <Image Include="src\icon.ico">

Loading…
Cancel
Save