首页
论坛
课程
招聘
[原创]检测本进程有无硬件断点的程序
2011-5-31 21:25 3946

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

2011-5-31 21:25
3946
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;

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

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