一直以为检测Windows打了哪些补丁要从很底层的方面入手,曾经尝试利用漏洞原理写缓冲区检测(汗一个先……),结果今天手动杀毒的时候在注册表搜索IFEO的时候点错了,到了如下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix
里面有些什么,明眼人一看就知道了,也不多说了,只能说要么孤陋寡闻要么忽略了很基本的东西……也希望大家以后不要犯类似的错误

解决方案 »

  1.   

    接分...貌似使用WMI的Win32_QuickFixEngineering也可以获取已经安装的补钉,但不太完整...
      

  2.   

    貌似 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\下也有补丁列表,而且比HotFix项下的的资料更详细,但是不明白为什么我电脑用360能检测出已安装43个补丁,而这两个分支下的注册表只检测了27个?难道有些补丁安装后没有注册到注册表?
      

  3.   

    学习之,记录到 http://hi.baidu.com/lobtao/blog/item/5bf48a51dffe4a10377abe84.html 这里珍藏之。
      

  4.   

    昨天看了下,似乎是因为有些补丁是会被覆盖的,比如360里面的已过期补丁,上面会有说明“此补丁已被最新补丁MSXXXXX替换”,既然替换了,以前的补丁估计就不存在或者注册表项被删了
      

  5.   

    貌似HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates也有补钉列表...
      

  6.   

    ms很倾向用注册表缓存自己的东西。连vs2010的toolbox都要用注册表来记录控件的载入列表
      

  7.   

    WINDOWS编程不需要知道底层的东西,呵呵
      

  8.   

    Microsoft.Update.Session
    这才是王道。