From 7d8be98087c6cb54bdcaf61ea9da10437dd17a74 Mon Sep 17 00:00:00 2001 From: "Mr. eXoDia" Date: Tue, 11 Mar 2014 00:50:09 +0100 Subject: [PATCH] - fixed a critical bug in the breakpoint filters - support for kernel32 -> kernelbase forwarding in SetAPIBreakPoint --- TitanEngine/Global.Breakpoints.cpp | 6 +- TitanEngine/TitanEngine.Breakpoints.cpp | 80 +++++++++++++++++++++---- 2 files changed, 71 insertions(+), 15 deletions(-) diff --git a/TitanEngine/Global.Breakpoints.cpp b/TitanEngine/Global.Breakpoints.cpp index 62b1093..a084a82 100644 --- a/TitanEngine/Global.Breakpoints.cpp +++ b/TitanEngine/Global.Breakpoints.cpp @@ -121,7 +121,7 @@ void BreakPointPostReadFilter(ULONG_PTR lpBaseAddress, unsigned char* lpBuffer, { BreakPointDetail* curBp=&BreakPointBuffer.at(i); //check if the breakpoint is one we should be concerned about - if(curBp->BreakPointActive != UE_BPXINACTIVE || (curBp->BreakPointType != UE_BREAKPOINT && curBp->BreakPointType != UE_SINGLESHOOT)) + if(curBp->BreakPointActive != UE_BPXACTIVE || (curBp->BreakPointType != UE_BREAKPOINT && curBp->BreakPointType != UE_SINGLESHOOT)) continue; ULONG_PTR cur_addr=curBp->BreakPointAddress; if(cur_addr>=start && cur_addrBreakPointActive != UE_BPXINACTIVE || (curBp->BreakPointType != UE_BREAKPOINT && curBp->BreakPointType != UE_SINGLESHOOT)) + if(curBp->BreakPointActive != UE_BPXACTIVE || (curBp->BreakPointType != UE_BREAKPOINT && curBp->BreakPointType != UE_SINGLESHOOT)) continue; ULONG_PTR cur_addr=curBp->BreakPointAddress; if(cur_addr>=start && cur_addrBreakPointActive != UE_BPXINACTIVE || (curBp->BreakPointType != UE_BREAKPOINT && curBp->BreakPointType != UE_SINGLESHOOT)) + if(curBp->BreakPointActive != UE_BPXACTIVE || (curBp->BreakPointType != UE_BREAKPOINT && curBp->BreakPointType != UE_SINGLESHOOT)) continue; ULONG_PTR cur_addr=curBp->BreakPointAddress; if(cur_addr>=start && cur_addr