您现在的位置:首页 >> 硬件系统 >> 硬件系统 >> 内容

Delphi制作防调试程序,19种反调试检测法

时间:2011/9/3 15:18:41 点击:

  核心提示:曾几何时,我徘徊在了调试与反调试的地平线上。 调试与反调试、反反调试是永远存在的问题,现在的大多数软件也加了反调试功能(尤其是网游),保护其不被调试破解。 调试大家都知道有很多这方面的工具,如OD、C...

曾几何时,我徘徊在了调试与反调试的地平线上。 调试与反调试、反反调试是永远存在的问题,现在的大多数软件也加了反调试功能(尤其是网游),保护其不被调试破解。

   调试大家都知道有很多这方面的工具,如OD、CE、ICE。。。,反调试大家也知道有很多种方法,如自己加代码实现、加壳等,反反调试。。。

今天做了一个小程序,采用了19种方式来检测自己是否被调试、下断等,这只是一个小测试,没有加入驱动和hook等乱七八糟的东西,纯以代码实现。有兴趣的朋友可以帮忙测试下。
单元包含以下函数:

function FD_IsDebuggerPresent(): Boolean;
  function PD_PEB_BeingDebuggedFlag(): Boolean;
  function FD_PEB_NtGlobalFlags(): Boolean;
  function FD_Heap_HeapFlags(): Boolean;
  function FD_Heap_ForceFlags(): Boolean;
  function FD_CheckRemoteDebuggerPresent(): Boolean;
  function FD_NtQueryInfoProc_DbgPort(): Boolean;
  function FD_NtQueryInfoProc_DbgObjHandle(): Boolean;
  function FD_NtQueryInfoProc_DbgFlags(): Boolean;
  function FD_SeDebugPrivilege(csrssPid: THandle): Boolean;
  function FD_Find_Debugger_Window(): Boolean;
  function FD_Exception_Closehandle(): Boolean;
  function FD_Exception_Int3(): Boolean;
  function FD_OutputDebugString(): boolean;
  function FD_Check_StartupInfo(): Boolean;
  function FD_INT_2d(): Boolean;
  function FS_OD_Int3_Pushfd(): Boolean;
  function FS_SI_Exception_Int1(): Boolean;
  function FB_HWBP_Exception(): Boolean;



迅雷专用高速下载

作者:网络 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 盒子文章(www.2ccc.com) © 2022 版权所有 All Rights Reserved.
  • 沪ICP备05001939号