diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d1adcb1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "capstone_wrapper"] + path = capstone_wrapper + url = https://github.com/x64dbg/capstone_wrapper.git diff --git a/GleeBug.sln b/GleeBug.sln index 5b2ce1c..e87b67b 100644 --- a/GleeBug.sln +++ b/GleeBug.sln @@ -4,6 +4,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GleeBug", "GleeBug\GleeBug.vcxproj", "{B65A3680-9B6B-44E6-A046-649F94DF9F56}" + ProjectSection(ProjectDependencies) = postProject + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15} = {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyDebugger", "MyDebugger\MyDebugger.vcxproj", "{4083DE5A-582F-4B15-B6F0-CB866E66F8C4}" ProjectSection(ProjectDependencies) = postProject @@ -15,6 +18,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TitanEngineEmulator", "Tita {B65A3680-9B6B-44E6-A046-649F94DF9F56} = {B65A3680-9B6B-44E6-A046-649F94DF9F56} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "capstone_wrapper", "capstone_wrapper\capstone_wrapper.vcxproj", "{C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -47,6 +52,14 @@ Global {2790D540-B51E-48F1-B8E9-F14F2EEAA676}.Release|Win32.Build.0 = Release|Win32 {2790D540-B51E-48F1-B8E9-F14F2EEAA676}.Release|x64.ActiveCfg = Release|x64 {2790D540-B51E-48F1-B8E9-F14F2EEAA676}.Release|x64.Build.0 = Release|x64 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Debug|Win32.ActiveCfg = Debug|Win32 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Debug|Win32.Build.0 = Debug|Win32 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Debug|x64.ActiveCfg = Debug|x64 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Debug|x64.Build.0 = Debug|x64 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Release|Win32.ActiveCfg = Release|Win32 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Release|Win32.Build.0 = Release|Win32 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Release|x64.ActiveCfg = Release|x64 + {C9B06E6E-3534-4E7B-9C00-C3EA33CC4E15}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GleeBug/Debugger.cpp b/GleeBug/Debugger.cpp index dc65e28..82ccac2 100644 --- a/GleeBug/Debugger.cpp +++ b/GleeBug/Debugger.cpp @@ -5,10 +5,12 @@ namespace GleeBug Debugger::Debugger() { mProcesses.clear(); + Capstone::GlobalInitialize(); //TODO: properly handle this } Debugger::~Debugger() { + Capstone::GlobalFinalize(); //TODO: properly handle this } bool Debugger::Init(const wchar_t* szFilePath, diff --git a/GleeBug/Debugger.h b/GleeBug/Debugger.h index a65ffa9..f44642d 100644 --- a/GleeBug/Debugger.h +++ b/GleeBug/Debugger.h @@ -4,6 +4,7 @@ #include "Debugger.Global.h" #include "Debugger.Process.h" #include "Debugger.Breakpoint.h" +#include namespace GleeBug { @@ -250,6 +251,7 @@ namespace GleeBug ProcessMap mProcesses; bool mIsRunning = false; bool mIsDebugging = false; + Capstone mCapstone; /** \brief The current process (can be null in some cases). diff --git a/GleeBug/GleeBug.vcxproj b/GleeBug/GleeBug.vcxproj index d07264f..b7729fc 100644 --- a/GleeBug/GleeBug.vcxproj +++ b/GleeBug/GleeBug.vcxproj @@ -68,25 +68,29 @@ $(SolutionDir)bin\$(Configuration)\x32\ .lib + $(ProjectDir)..;$(IncludePath) $(SolutionDir)bin\$(Configuration)\x64\ .lib + $(ProjectDir)..;$(IncludePath) $(SolutionDir)bin\$(Configuration)\x32\ .lib + $(ProjectDir)..;$(IncludePath) $(SolutionDir)bin\$(Configuration)\x64\ .lib + $(ProjectDir)..;$(IncludePath) Level3 Disabled true - MultiThreadedDLL + MultiThreadedDebugDLL true @@ -100,7 +104,7 @@ Level3 Disabled true - MultiThreadedDLL + MultiThreadedDebugDLL true @@ -116,7 +120,7 @@ true true true - MultiThreaded + MultiThreadedDLL true @@ -134,7 +138,7 @@ true true true - MultiThreaded + MultiThreadedDLL true diff --git a/MyDebugger/MyDebugger.vcxproj b/MyDebugger/MyDebugger.vcxproj index dffba95..841adc1 100644 --- a/MyDebugger/MyDebugger.vcxproj +++ b/MyDebugger/MyDebugger.vcxproj @@ -86,7 +86,7 @@ Level3 Disabled true - MultiThreadedDLL + MultiThreadedDebugDLL true @@ -98,11 +98,11 @@ Level3 Disabled true - MultiThreadedDLL + MultiThreadedDebugDLL true - $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;%(AdditionalDependencies) + $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;$(SolutionDir)capstone_wrapper\bin\x64\capstone_wrapper.lib;$(SolutionDir)capstone_wrapper\capstone\capstone_x64.lib;%(AdditionalDependencies) @@ -112,7 +112,7 @@ true true true - MultiThreaded + MultiThreadedDLL true @@ -128,13 +128,13 @@ true true true - MultiThreaded + MultiThreadedDLL true true true - $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;%(AdditionalDependencies) + $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;$(SolutionDir)capstone_wrapper\bin\x64\capstone_wrapper.lib;$(SolutionDir)capstone_wrapper\capstone\capstone_x64.lib;%(AdditionalDependencies) diff --git a/TitanEngineEmulator/TitanEngineEmulator.vcxproj b/TitanEngineEmulator/TitanEngineEmulator.vcxproj index 4dc3232..0288863 100644 --- a/TitanEngineEmulator/TitanEngineEmulator.vcxproj +++ b/TitanEngineEmulator/TitanEngineEmulator.vcxproj @@ -94,11 +94,11 @@ Level3 Disabled true - MultiThreadedDLL + MultiThreadedDebugDLL true - $(SolutionDir)bin\$(Configuration)\x32\GleeBug.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)bin\$(Configuration)\x32\GleeBug.lib;$(SolutionDir)capstone_wrapper\bin\x32\capstone_wrapper.lib;$(SolutionDir)capstone_wrapper\capstone\capstone_x86.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -106,11 +106,11 @@ Level3 Disabled true - MultiThreadedDLL + MultiThreadedDebugDLL true - $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;$(SolutionDir)capstone_wrapper\bin\x64\capstone_wrapper.lib;$(SolutionDir)capstone_wrapper\capstone\capstone_x64.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -120,13 +120,13 @@ true true true - MultiThreaded + MultiThreadedDLL true true true - $(SolutionDir)bin\$(Configuration)\x32\GleeBug.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)bin\$(Configuration)\x32\GleeBug.lib;$(SolutionDir)capstone_wrapper\bin\x32\capstone_wrapper.lib;$(SolutionDir)capstone_wrapper\capstone\capstone_x86.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -136,13 +136,13 @@ true true true - MultiThreaded + MultiThreadedDLL true true true - $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)bin\$(Configuration)\x64\GleeBug.lib;$(SolutionDir)capstone_wrapper\bin\x64\capstone_wrapper.lib;$(SolutionDir)capstone_wrapper\capstone\capstone_x64.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) diff --git a/capstone_wrapper b/capstone_wrapper new file mode 160000 index 0000000..65d1e69 --- /dev/null +++ b/capstone_wrapper @@ -0,0 +1 @@ +Subproject commit 65d1e69b29075dfeb4efee4b3daef4f477b80e71