fixed the 'push ss', 'pop ss' problem (by setting a breakpoint on the next instruction)

This commit is contained in:
Mr. eXoDia 2014-12-08 23:55:20 +01:00
parent c541b9d764
commit 29f8973700
1 changed files with 5 additions and 0 deletions

View File

@ -55,6 +55,11 @@ __declspec(dllexport) void TITCALL StepInto(LPVOID StepCallBack)
char* DisassembledString = (char*)StaticDisassembleEx(ueCurrentPosition, (LPVOID)instr); char* DisassembledString = (char*)StaticDisassembleEx(ueCurrentPosition, (LPVOID)instr);
if(strstr(DisassembledString, "PUSHF")) if(strstr(DisassembledString, "PUSHF"))
StepOver(StepCallBack); StepOver(StepCallBack);
else if(strstr(DisassembledString, "POP SS") || strstr(DisassembledString, "MOV SS")) //prevent the 'PUSH SS', 'POP SS' step trick
{
ueCurrentPosition += StaticLengthDisassemble((void*)instr);
SetBPX(ueCurrentPosition, UE_BREAKPOINT_TYPE_INT3 + UE_SINGLESHOOT, StepCallBack);
}
else else
{ {
ULONG_PTR ueContext = NULL; ULONG_PTR ueContext = NULL;