,安全技术   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,安全技术
您的位置:Yesky > 软件 > 网络安全 > 安全防范 > 正文
防止全局钩子的入侵
[文章信息]
作者:
时间:2005-05-23
出处:黑基
责任编辑:原野
[文章导读]
Windows消息钩子一般都很熟悉了。它的用处很多,耳熟能详的就有——利用键盘钩子获取目标进程的键盘输入……
advertisement
热点推荐
· 图文详解:黑客入侵方式演示
· Java异常处理的陋习展播
· 多媒体系列教程:网页设计制作
· Powerpoint动画演示教程连载
· 光盘刻录手册:禁忌与技巧(下)
[正文]
网络安全精华专题点击打开里面有更多内容
黑客 蠕虫 恶意代码 防火墙 木马 黑客常用软件 黑客技术 配置安全系统 IM软件安全 DOS攻击 入侵检测系统 加、解密 手机病毒 病毒防御手册 后门技术 Linux安全 十大网页炸弹 04年安全综述 安全应用知识讲座

  Windows消息钩子一般都很熟悉了。它的用处很多,耳熟能详的就有——利用键盘钩子获取目标进程的键盘输入,从而获得各类密码以达到不可告人的目的。朋友想让他的软件不被别人的全局钩子监视,有没有办法实现呢?答案是肯定的,不过缺陷也是有的。

  首先简单看看全局钩子如何注入别的进程。

  消息钩子是由Win32子系统提供,其核心部分通过NtUserSetWindowsHookEx为用户提供了设置消息钩子的系统服务,用户通过它注册全局钩子。当系统获取某些事件,比如用户按键,键盘driver将扫描码等传入win32k的KeyEvent处理函数,处理函数判断有无相应hook,有则callhook。此时,系统取得Hook对象信息,若目标进程没有装载对应的Dll,则装载之(利用KeUserModeCallback“调用”用户例程,它与Apc调用不同,它是仿制中断返回环境,其调用是“立即”性质的)。

  进入用户态的KiUserCallbackDispatcher后,KiUserCallbackDispatcher根据传递的数据获取所需调用的函数、参数等,随后调用。针对上面的例子,为装载hook dll,得到调用的是LoadLibraryExW,随后进入LdrLoadDll,装载完毕后返回,后面的步骤就不叙述了。

  从上面的讨论我们可以得出一个最简单的防侵入方案:在加载hook dll之前hook相应api使得加载失败,不过有一个缺陷:系统并不会因为一次的失败而放弃,每次有消息产生欲call hook时系统都会试图在你的进程加载dll,这对于性能有些微影响,不过应该感觉不到。剩下一个问题就是不是所有的LoadLibraryExW都应拦截,这个容易解决,比如判断返回地址。下面给出一个例子片断,可以添加一些判断使得某些允许加载的hook dll被加载。

  这里hook api使用了微软的detours库,可自行修改。

以下内容为程序代码:

typedef HMODULE (__stdcall *LOADLIB)(
  LPCWSTR lpwLibFileName,
  HANDLE hFile,
  DWORD dwFlags);

extern "C" {
  DETOUR_TRAMPOLINE(HMODULE __stdcall Real_LoadLibraryExW(
               LPCWSTR lpwLibFileName,
               HANDLE hFile,
               DWORD dwFlags),
              LoadLibraryExW);
}

ULONG user32 = 0;

HMODULE __stdcall Mine_LoadLibraryExW(
       LPCWSTR lpwLibFileName,
       HANDLE hFile,
       DWORD dwFlags)
{
  ULONG addr;

  _asm mov eax, [ebp+4]
  _asm mov addr, eax

  if ((user32 & 0xFFFF0000) == (addr & 0xFFFF0000))
  {
    return 0;
  }

  HMODULE res = (LOADLIB(Real_LoadLibraryExW)) (
            lpwLibFileName,
            hFile,
            dwFlags);

  return res;
}

BOOL ProcessAttach()
{
  DetourFunctionWithTrampoline((PBYTE)Real_LoadLibraryExW,
         (PBYTE)Mine_LoadLibraryExW);
  return TRUE;
}

BOOL ProcessDetach()
{
  DetourRemove((PBYTE)Real_LoadLibraryExW,
         (PBYTE)Mine_LoadLibraryExW);
  return TRUE;
}

CAnti_HookApp::CAnti_HookApp() //在使用用户界面服务前调用ProcessAttach
{
  user32 = (ULONG)GetModuleHandle("User32.dll");
  ProcessAttach();


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
,安全技术相关内容,安全技术焦点新闻
  • 利用键盘钩子捕获Windows键盘动作
  • 防范Windows消息钩子的侵入
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,安全技术Advertisement

    天极无线
    经典名曲 华语流行 欧美风情 人声音效 原声大碟
    你好周杰伦-安又琪
    直线-张韶涵
    天边-张韶涵
    看我72变-蔡依林
    乱世佳人-Twins
    全世界下雨-张娜拉
    我们的爱-飞儿乐队
    分手快乐-梁静茹
    爱在西元前-周杰伦
    三万英尺-迪克牛仔
    爱如潮水-张信哲
    爱情宣言-齐秦
    寻找玛依拉-刀郎
    驼铃-刀郎
    老鼠爱大米-杨臣刚
    功夫主题曲
    仙剑主题曲杀破狼
    天下无贼片尾曲
    冲动的惩罚-刀郎
    情人-刀郎
    爱情-莫文蔚
    挪威的森林-伍佰
    奔跑 - 羽泉
    因为爱 - 羽泉
      ·时尚女人圈
    ·经典影视专集
    ·美女秀场
    ·美丽大自然专题
    ·流行金曲
    ·科幻电影特区
    | 最新推荐
    ·你好周杰伦
    ·杀破狼
    ·寻找玛依拉
    ·孤单公园
    ·男人海洋
    | 魔术铃声
    ·少女丰胸
    ·少妇丰胸
    ·减肥魔铃
    ·增高魔铃
    ·美容魔铃

    今日报价查询 更多报价