首页
社区
课程
招聘
[原创]检测本进程有无硬件断点的程序
发表于: 2011-5-31 21:25 5579

[原创]检测本进程有无硬件断点的程序

2011-5-31 21:25
5579
var
  TestVar: Integer;

function NtGetContextThread(ThreadHandle: THANDLE; Context: PCONTEXT): Integer; stdcall; external 'ntdll' name 'NtGetContextThread';

function HBExists: Boolean;
var
  C: TContext;
begin
  C.ContextFlags:=Windows.CONTEXT_DEBUG_REGISTERS;
  NtGetContextThread(GetCurrentThread, @C);
  Result:=(C.Dr0<>0) or (C.Dr1<>0) or (C.Dr2<>0) or (C.Dr3<>0) or (C.Dr6<>0) or (C.Dr7<>0);
end;

procedure TXForm.BtTestVarClick(Sender: TObject);
begin
  Inc(TestVar);
end;

procedure TXForm.TimerTimer(Sender: TObject);
begin
  MmShow.Text:='TestVar地址: '+IntToHex(Cardinal(@TestVar), 8)+#13#10+'TestVar数值: '+IntToStr(TestVar);
  if HBExists then
    EtState.Text:='硬件断点 有!'
  else
    EtState.Text:='硬件断点 无...'
end;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 525
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
MARK一下  TAG:硬件断点
2011-5-31 23:47
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
习惯在seh里检查
2011-6-1 15:29
0
游客
登录 | 注册 方可回帖
返回
//