DBG: added support for flags in the scriptapi
This commit is contained in:
parent
61579618b8
commit
9992a0e90c
|
|
@ -0,0 +1,116 @@
|
|||
#include "_scriptapi_flag.h"
|
||||
#include "value.h"
|
||||
|
||||
static const char* flagTable[] =
|
||||
{
|
||||
"ZF",
|
||||
"OF",
|
||||
"CF",
|
||||
"PF",
|
||||
"SF",
|
||||
"TF",
|
||||
"AF",
|
||||
"DF",
|
||||
"IF"
|
||||
};
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::Get(FlagEnum flag)
|
||||
{
|
||||
duint value;
|
||||
return valfromstring(flagTable[flag], &value) ? !!value : false;
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::Set(FlagEnum flag, bool value)
|
||||
{
|
||||
return setflag(flagTable[flag], value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetZF()
|
||||
{
|
||||
return Get(ZF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetZF(bool value)
|
||||
{
|
||||
return Set(ZF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetOF()
|
||||
{
|
||||
return Get(OF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetOF(bool value)
|
||||
{
|
||||
return Set(OF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetCF()
|
||||
{
|
||||
return Get(CF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetCF(bool value)
|
||||
{
|
||||
return Set(CF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetPF()
|
||||
{
|
||||
return Get(PF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetPF(bool value)
|
||||
{
|
||||
return Set(PF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetSF()
|
||||
{
|
||||
return Get(SF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetSF(bool value)
|
||||
{
|
||||
return Set(SF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetTF()
|
||||
{
|
||||
return Get(TF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetTF(bool value)
|
||||
{
|
||||
return Set(TF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetAF()
|
||||
{
|
||||
return Get(AF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetAF(bool value)
|
||||
{
|
||||
return Set(AF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetDF()
|
||||
{
|
||||
return Get(DF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetDF(bool value)
|
||||
{
|
||||
return Set(DF, value);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::GetIF()
|
||||
{
|
||||
return Get(IF);
|
||||
}
|
||||
|
||||
SCRIPT_EXPORT bool Script::Flag::SetIF(bool value)
|
||||
{
|
||||
return Set(IF, value);
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef _SCRIPTAPI_FLAG_H
|
||||
#define _SCRIPTAPI_FLAG_H
|
||||
|
||||
#include "_scriptapi.h"
|
||||
|
||||
namespace Script
|
||||
{
|
||||
namespace Flag
|
||||
{
|
||||
enum FlagEnum
|
||||
{
|
||||
ZF,
|
||||
OF,
|
||||
CF,
|
||||
PF,
|
||||
SF,
|
||||
TF,
|
||||
AF,
|
||||
DF,
|
||||
IF
|
||||
};
|
||||
|
||||
SCRIPT_EXPORT bool Get(FlagEnum flag);
|
||||
SCRIPT_EXPORT bool Set(FlagEnum flag, bool value);
|
||||
|
||||
SCRIPT_EXPORT bool GetZF();
|
||||
SCRIPT_EXPORT bool SetZF(bool value);
|
||||
SCRIPT_EXPORT bool GetOF();
|
||||
SCRIPT_EXPORT bool SetOF(bool value);
|
||||
SCRIPT_EXPORT bool GetCF();
|
||||
SCRIPT_EXPORT bool SetCF(bool value);
|
||||
SCRIPT_EXPORT bool GetPF();
|
||||
SCRIPT_EXPORT bool SetPF(bool value);
|
||||
SCRIPT_EXPORT bool GetSF();
|
||||
SCRIPT_EXPORT bool SetSF(bool value);
|
||||
SCRIPT_EXPORT bool GetTF();
|
||||
SCRIPT_EXPORT bool SetTF(bool value);
|
||||
SCRIPT_EXPORT bool GetAF();
|
||||
SCRIPT_EXPORT bool SetAF(bool value);
|
||||
SCRIPT_EXPORT bool GetDF();
|
||||
SCRIPT_EXPORT bool SetDF(bool value);
|
||||
SCRIPT_EXPORT bool GetIF();
|
||||
SCRIPT_EXPORT bool SetIF(bool value);
|
||||
};
|
||||
};
|
||||
|
||||
#endif //_SCRIPTAPI_FLAG_H
|
||||
|
|
@ -564,7 +564,7 @@ bool valflagfromstring(uint eflags, const char* string)
|
|||
\param set The value of the flag.
|
||||
\return true if the flag was successfully set, false otherwise.
|
||||
*/
|
||||
static bool setflag(const char* string, bool set)
|
||||
bool setflag(const char* string, bool set)
|
||||
{
|
||||
uint eflags = GetContextDataEx(hActiveThread, UE_CFLAGS);
|
||||
uint xorval = 0;
|
||||
|
|
|
|||
|
|
@ -20,5 +20,6 @@ unsigned short valx87controlwordfieldfromstring(uint controlword, const char* st
|
|||
uint valfileoffsettova(const char* modname, uint offset);
|
||||
uint valvatofileoffset(uint va);
|
||||
bool setregister(const char* string, uint value);
|
||||
bool setflag(const char* string, bool set);
|
||||
|
||||
#endif // _VALUE_H
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@
|
|||
<ClCompile Include="_plugins.cpp" />
|
||||
<ClCompile Include="_scriptapi_assembler.cpp" />
|
||||
<ClCompile Include="_scriptapi_debug.cpp" />
|
||||
<ClCompile Include="_scriptapi_flag.cpp" />
|
||||
<ClCompile Include="_scriptapi_gui.cpp" />
|
||||
<ClCompile Include="_scriptapi_misc.cpp" />
|
||||
<ClCompile Include="_scriptapi_pattern.cpp" />
|
||||
|
|
@ -198,6 +199,7 @@
|
|||
<ClInclude Include="_plugin_types.h" />
|
||||
<ClInclude Include="_scriptapi_assembler.h" />
|
||||
<ClInclude Include="_scriptapi_debug.h" />
|
||||
<ClInclude Include="_scriptapi_flag.h" />
|
||||
<ClInclude Include="_scriptapi_gui.h" />
|
||||
<ClInclude Include="_scriptapi_misc.h" />
|
||||
<ClInclude Include="_scriptapi_pattern.h" />
|
||||
|
|
|
|||
|
|
@ -279,6 +279,9 @@
|
|||
<ClCompile Include="linearanalysis.cpp">
|
||||
<Filter>Source Files\Analysis</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="_scriptapi_flag.cpp">
|
||||
<Filter>Source Files\Interfaces/Exports\_scriptapi</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="x64_dbg.h">
|
||||
|
|
@ -641,5 +644,8 @@
|
|||
<ClInclude Include="dynamicptr.h">
|
||||
<Filter>Header Files\Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="_scriptapi_flag.h">
|
||||
<Filter>Header Files\Interfaces/Exports\_scriptapi</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Loading…
Reference in New Issue