Skip to content

Commit dd27c8c

Browse files
committed
Added more functionality
1 parent 867352f commit dd27c8c

6 files changed

Lines changed: 285 additions & 61 deletions

File tree

CMakeLists.txt

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,50 @@ if(NOT X64DBGFOLDER)
1010
endif()
1111
endif()
1212

13+
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
14+
set(SUFFIX "d")
15+
else()
16+
set(SUFFIX "")
17+
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
18+
1319
if(${CMAKE_SIZEOF_VOID_P} EQUAL 4)
1420
set(ARCH "32")
1521
else()
1622
set(ARCH "64")
1723
endif()
1824

19-
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${X64DBGFOLDER}/release/x${ARCH}/plugins)
20-
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${X64DBGFOLDER}/release/x${ARCH}/plugins)
25+
# Figure out if the folder given is a release or not
26+
if(EXISTS ${X64DBGFOLDER}/bin)
27+
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${X64DBGFOLDER}/bin/x${ARCH}${SUFFIX}/plugins)
28+
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${X64DBGFOLDER}/bin/x${ARCH}${SUFFIX}/plugins)
29+
include_directories( ${X64DBGFOLDER}/release )
30+
LINK_DIRECTORIES( ${X64DBGFOLDER}/bin/x${ARCH}${SUFFIX} )
31+
else()
32+
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${X64DBGFOLDER}/release/x${ARCH}${SUFFIX}/plugins)
33+
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${X64DBGFOLDER}/release/x${ARCH}${SUFFIX}/plugins)
34+
include_directories( ${X64DBGFOLDER} )
35+
LINK_DIRECTORIES( ${X64DBGFOLDER}/pluginsdk )
36+
endif()
2137

38+
include_directories( . ChaiScript/include)
2239
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2340
set(CMAKE_AUTOMOC ON)
2441

25-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
26-
2742
find_package(Qt5Widgets)
2843
find_package(Qt5Core)
2944

30-
include_directories( . ${X64DBGFOLDER} ChaiScript/include)
31-
LINK_DIRECTORIES( ${X64DBGFOLDER}/pluginsdk )
45+
add_definitions(/Zm250)
46+
add_definitions(/bigobj)
3247

3348
add_library(chaiScriptPlugin SHARED
49+
Std.cc
50+
Std.h
3451
pluginmain.cc
35-
dbgops.h
36-
chaiInterops.h
52+
dbgops.h
3753
)
3854

55+
set_source_files_properties(Std.cc PROPERTIES COMPILE_FLAGS "/YcStd.h")
56+
set_source_files_properties(pluginmain.cc PROPERTIES COMPILE_FLAGS "/YuStd.h")
57+
3958
target_link_libraries(chaiScriptPlugin x${ARCH}dbg x${ARCH}bridge Qt5::Core Qt5::Widgets )
4059
set_target_properties(chaiScriptPlugin PROPERTIES SUFFIX ".dp${ARCH}")

ChaiScript

Submodule ChaiScript updated 55 files

Std.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "Std.h"

chaiinterops.h renamed to Std.h

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
11
#pragma once
2-
#include <ChaiScript/chaiscript_defines.hpp>
3-
#include <ChaiScript/language/chaiscript_engine.hpp>
2+
3+
#include <windows.h>
4+
#include <chaiscript/chaiscript.hpp>
5+
#include <chaiscript/chaiscript_stdlib.hpp>
6+
7+
#include <QFileDialog>
8+
#include <pluginsdk/_plugins.h>
9+
#include <pluginsdk/_scriptapi.h>
10+
#include <pluginsdk/_scriptapi_debug.h>
11+
#include <pluginsdk/_scriptapi_register.h>
12+
#include <pluginsdk/_scriptapi_stack.h>
13+
#include <pluginsdk/_scriptapi_assembler.h>
14+
15+
#include <functional>
16+
#include <iomanip>
17+
18+
#include <regex>
19+
20+
#ifndef DLL_EXPORT
21+
#define DLL_EXPORT __declspec(dllexport)
22+
#endif //DLL_EXPORT
423

524
template <typename T> struct TypeWrapper {
625
typedef T f_arg;
@@ -44,5 +63,3 @@ FunctionWrapper( rtn (*fn)(args...), int __pref) {
4463
return TypeWrapper<rtn>::convert( fn( (TypeWrapper<args>::convert(in))... ) );
4564
};
4665
};
47-
48-
extern chaiscript::ChaiScript chai;

dbgops.h

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,184 @@ DBG_FUNCTION(DbgSetEncodeType)
7575
DBG_FUNCTION(DbgDelEncodeTypeRange)
7676
DBG_FUNCTION(DbgDelEncodeTypeSegment)
7777

78+
DBG_FUNCTION(Script::Debug::Wait)
79+
DBG_FUNCTION(Script::Debug::Run)
80+
DBG_FUNCTION(Script::Debug::Pause)
81+
DBG_FUNCTION(Script::Debug::Stop)
82+
DBG_FUNCTION(Script::Debug::StepIn)
83+
DBG_FUNCTION(Script::Debug::StepOver)
84+
DBG_FUNCTION(Script::Debug::StepOut)
85+
DBG_FUNCTION(Script::Debug::SetBreakpoint)
86+
DBG_FUNCTION(Script::Debug::DeleteBreakpoint)
87+
//DBG_FUNCTION(Script::Debug::DisableBreakpoint)
88+
DBG_FUNCTION(Script::Debug::SetHardwareBreakpoint)
89+
DBG_FUNCTION(Script::Debug::DeleteHardwareBreakpoint)
90+
91+
DBG_FUNCTION(Script::Register::GetDR0)
92+
DBG_FUNCTION(Script::Register::SetDR0)
93+
DBG_FUNCTION(Script::Register::GetDR1)
94+
DBG_FUNCTION(Script::Register::SetDR1)
95+
DBG_FUNCTION(Script::Register::GetDR2)
96+
DBG_FUNCTION(Script::Register::SetDR2)
97+
DBG_FUNCTION(Script::Register::GetDR3)
98+
DBG_FUNCTION(Script::Register::SetDR3)
99+
DBG_FUNCTION(Script::Register::GetDR6)
100+
DBG_FUNCTION(Script::Register::SetDR6)
101+
DBG_FUNCTION(Script::Register::GetDR7)
102+
DBG_FUNCTION(Script::Register::SetDR7)
103+
104+
DBG_FUNCTION(Script::Register::GetEAX)
105+
DBG_FUNCTION(Script::Register::SetEAX)
106+
DBG_FUNCTION(Script::Register::GetAX)
107+
DBG_FUNCTION(Script::Register::SetAX)
108+
DBG_FUNCTION(Script::Register::GetAH)
109+
DBG_FUNCTION(Script::Register::SetAH)
110+
DBG_FUNCTION(Script::Register::GetAL)
111+
DBG_FUNCTION(Script::Register::SetAL)
112+
DBG_FUNCTION(Script::Register::GetEBX)
113+
DBG_FUNCTION(Script::Register::SetEBX)
114+
DBG_FUNCTION(Script::Register::GetBX)
115+
DBG_FUNCTION(Script::Register::SetBX)
116+
DBG_FUNCTION(Script::Register::GetBH)
117+
DBG_FUNCTION(Script::Register::SetBH)
118+
DBG_FUNCTION(Script::Register::GetBL)
119+
DBG_FUNCTION(Script::Register::SetBL)
120+
DBG_FUNCTION(Script::Register::GetECX)
121+
DBG_FUNCTION(Script::Register::SetECX)
122+
DBG_FUNCTION(Script::Register::GetCX)
123+
DBG_FUNCTION(Script::Register::SetCX)
124+
DBG_FUNCTION(Script::Register::GetCH)
125+
DBG_FUNCTION(Script::Register::SetCH)
126+
DBG_FUNCTION(Script::Register::GetCL)
127+
DBG_FUNCTION(Script::Register::SetCL)
128+
DBG_FUNCTION(Script::Register::GetEDX)
129+
DBG_FUNCTION(Script::Register::SetEDX)
130+
DBG_FUNCTION(Script::Register::GetDX)
131+
DBG_FUNCTION(Script::Register::SetDX)
132+
DBG_FUNCTION(Script::Register::GetDH)
133+
DBG_FUNCTION(Script::Register::SetDH)
134+
DBG_FUNCTION(Script::Register::GetDL)
135+
DBG_FUNCTION(Script::Register::SetDL)
136+
DBG_FUNCTION(Script::Register::GetEDI)
137+
DBG_FUNCTION(Script::Register::SetEDI)
138+
DBG_FUNCTION(Script::Register::GetDI)
139+
DBG_FUNCTION(Script::Register::SetDI)
140+
DBG_FUNCTION(Script::Register::GetESI)
141+
DBG_FUNCTION(Script::Register::SetESI)
142+
DBG_FUNCTION(Script::Register::GetSI)
143+
DBG_FUNCTION(Script::Register::SetSI)
144+
DBG_FUNCTION(Script::Register::GetEBP)
145+
DBG_FUNCTION(Script::Register::SetEBP)
146+
DBG_FUNCTION(Script::Register::GetBP)
147+
DBG_FUNCTION(Script::Register::SetBP)
148+
DBG_FUNCTION(Script::Register::GetESP)
149+
DBG_FUNCTION(Script::Register::SetESP)
150+
DBG_FUNCTION(Script::Register::GetSP)
151+
DBG_FUNCTION(Script::Register::SetSP)
152+
DBG_FUNCTION(Script::Register::GetEIP)
153+
DBG_FUNCTION(Script::Register::SetEIP)
154+
155+
#ifdef _WIN64
156+
DBG_FUNCTION(Script::Register::GetRAX)
157+
DBG_FUNCTION(Script::Register::SetRAX)
158+
DBG_FUNCTION(Script::Register::GetRBX)
159+
DBG_FUNCTION(Script::Register::SetRBX)
160+
DBG_FUNCTION(Script::Register::GetRCX)
161+
DBG_FUNCTION(Script::Register::SetRCX)
162+
DBG_FUNCTION(Script::Register::GetRDX)
163+
DBG_FUNCTION(Script::Register::SetRDX)
164+
DBG_FUNCTION(Script::Register::GetRSI)
165+
DBG_FUNCTION(Script::Register::SetRSI)
166+
DBG_FUNCTION(Script::Register::GetSIL)
167+
DBG_FUNCTION(Script::Register::SetSIL)
168+
DBG_FUNCTION(Script::Register::GetRDI)
169+
DBG_FUNCTION(Script::Register::SetRDI)
170+
DBG_FUNCTION(Script::Register::GetDIL)
171+
DBG_FUNCTION(Script::Register::SetDIL)
172+
DBG_FUNCTION(Script::Register::GetRBP)
173+
DBG_FUNCTION(Script::Register::SetRBP)
174+
DBG_FUNCTION(Script::Register::GetBPL)
175+
DBG_FUNCTION(Script::Register::SetBPL)
176+
DBG_FUNCTION(Script::Register::GetRSP)
177+
DBG_FUNCTION(Script::Register::SetRSP)
178+
DBG_FUNCTION(Script::Register::GetSPL)
179+
DBG_FUNCTION(Script::Register::SetSPL)
180+
DBG_FUNCTION(Script::Register::GetRIP)
181+
DBG_FUNCTION(Script::Register::SetRIP)
182+
DBG_FUNCTION(Script::Register::GetR8)
183+
DBG_FUNCTION(Script::Register::SetR8)
184+
DBG_FUNCTION(Script::Register::GetR8D)
185+
DBG_FUNCTION(Script::Register::SetR8D)
186+
DBG_FUNCTION(Script::Register::GetR8W)
187+
DBG_FUNCTION(Script::Register::SetR8W)
188+
DBG_FUNCTION(Script::Register::GetR8B)
189+
DBG_FUNCTION(Script::Register::SetR8B)
190+
DBG_FUNCTION(Script::Register::GetR9)
191+
DBG_FUNCTION(Script::Register::SetR9)
192+
DBG_FUNCTION(Script::Register::GetR9D)
193+
DBG_FUNCTION(Script::Register::SetR9D)
194+
DBG_FUNCTION(Script::Register::GetR9W)
195+
DBG_FUNCTION(Script::Register::SetR9W)
196+
DBG_FUNCTION(Script::Register::GetR9B)
197+
DBG_FUNCTION(Script::Register::SetR9B)
198+
DBG_FUNCTION(Script::Register::GetR10)
199+
DBG_FUNCTION(Script::Register::SetR10)
200+
DBG_FUNCTION(Script::Register::GetR10D)
201+
DBG_FUNCTION(Script::Register::SetR10D)
202+
DBG_FUNCTION(Script::Register::GetR10W)
203+
DBG_FUNCTION(Script::Register::SetR10W)
204+
DBG_FUNCTION(Script::Register::GetR10B)
205+
DBG_FUNCTION(Script::Register::SetR10B)
206+
DBG_FUNCTION(Script::Register::GetR11)
207+
DBG_FUNCTION(Script::Register::SetR11)
208+
DBG_FUNCTION(Script::Register::GetR11D)
209+
DBG_FUNCTION(Script::Register::SetR11D)
210+
DBG_FUNCTION(Script::Register::GetR11W)
211+
DBG_FUNCTION(Script::Register::SetR11W)
212+
DBG_FUNCTION(Script::Register::GetR11B)
213+
DBG_FUNCTION(Script::Register::SetR11B)
214+
DBG_FUNCTION(Script::Register::GetR12)
215+
DBG_FUNCTION(Script::Register::SetR12)
216+
DBG_FUNCTION(Script::Register::GetR12D)
217+
DBG_FUNCTION(Script::Register::SetR12D)
218+
DBG_FUNCTION(Script::Register::GetR12W)
219+
DBG_FUNCTION(Script::Register::SetR12W)
220+
DBG_FUNCTION(Script::Register::GetR12B)
221+
DBG_FUNCTION(Script::Register::SetR12B)
222+
DBG_FUNCTION(Script::Register::GetR13)
223+
DBG_FUNCTION(Script::Register::SetR13)
224+
DBG_FUNCTION(Script::Register::GetR13D)
225+
DBG_FUNCTION(Script::Register::SetR13D)
226+
DBG_FUNCTION(Script::Register::GetR13W)
227+
DBG_FUNCTION(Script::Register::SetR13W)
228+
DBG_FUNCTION(Script::Register::GetR13B)
229+
DBG_FUNCTION(Script::Register::SetR13B)
230+
DBG_FUNCTION(Script::Register::GetR14)
231+
DBG_FUNCTION(Script::Register::SetR14)
232+
DBG_FUNCTION(Script::Register::GetR14D)
233+
DBG_FUNCTION(Script::Register::SetR14D)
234+
DBG_FUNCTION(Script::Register::GetR14W)
235+
DBG_FUNCTION(Script::Register::SetR14W)
236+
DBG_FUNCTION(Script::Register::GetR14B)
237+
DBG_FUNCTION(Script::Register::SetR14B)
238+
DBG_FUNCTION(Script::Register::GetR15)
239+
DBG_FUNCTION(Script::Register::SetR15)
240+
DBG_FUNCTION(Script::Register::GetR15D)
241+
DBG_FUNCTION(Script::Register::SetR15D)
242+
DBG_FUNCTION(Script::Register::GetR15W)
243+
DBG_FUNCTION(Script::Register::SetR15W)
244+
DBG_FUNCTION(Script::Register::GetR15B)
245+
DBG_FUNCTION(Script::Register::SetR15B)
246+
#endif //_WIN64
247+
248+
DBG_FUNCTION(Script::Register::GetCIP)
249+
DBG_FUNCTION(Script::Register::SetCIP)
250+
DBG_FUNCTION(Script::Register::GetCSP)
251+
DBG_FUNCTION(Script::Register::SetCSP)
252+
253+
DBG_FUNCTION(Script::Stack::Pop)
254+
DBG_FUNCTION(Script::Stack::Push)
255+
DBG_FUNCTION(Script::Stack::Peek)
256+
257+
DBG_FUNCTION(Script::Assembler::AssembleMem)
78258
#undef DBG_FUNCTION

0 commit comments

Comments
 (0)