2005年1月5日-在此问题中:

  1. 编辑

    • 已获得 DEP?
  2. WINDOWS 内部,第四版

  3. SYSINTERNALS 上的新增功能

    • 11月统计信息
    • Sysinternals 杂志文章
    • Sysinternals RSS 源
    • Mark 是 Microsoft MVP
    • Autoruns.exe v 6.01
    • 进程资源管理器 v 8.61
    • Sigcheck v1。0
    • Bginfo v 4.07
    • Regjump v1。0
    • Hex2dec v1。0
    • Tcpvcon v 2.34
    • PsTools 更新
    • Microsoft Sysinternals
  4. 内部信息

    • Internet 浏览
    • 使用 LiveKd 对病假系统进行故障排除
    • CreekSide?
    • ChkReg 注册表修复程序
    • Windows 内存诊断
    • 研究未记录的接口
  5. 内部培训

    • 旧金山 Windows 连接
    • 通过标记 Russinovich David 所罗门群岛 Windows 内部/Sysinternals 类的动手操作 &

Sysinternals 新闻稿由 Winternals 软件赞助,网址为 http://www.winternals.com 。 Winternals Software 是高级系统工具的领先开发人员和提供商,适用于 Windows NT/2000/XP/2003。

Winternals 非常高兴地宣布即将发布的管理员 Pak 5.0,其中包含 ERD Commander 2005 的全面更新。

ERD Commander 2005 中的新功能包括:

  • 故障分析器:快速轻松地诊断负责 Windows 崩溃的驱动程序,即使系统无法启动
  • DiskWipe-安全删除硬盘或卷;autoruns.exe:查看哪些应用程序从 Windows 安装和用户登录开始-适用于诊断系统资源问题和查找潜在恶意软件
  • FireFox Web 浏览器:下载修补程序,驱动程序更新,在 Microsoft 知识库中搜索帮助-所有操作都在您尝试修复的系统上
  • 修补程序卸载向导,允许您在无法引导的系统上删除修补程序和 service pack
  • 系统文件修复,用于检查 Windows 系统文件的完整性。

这些功能在 2005 2005 年1月晚些时候都包括在新管理员的 Pak 5.0 中,这是 ERD Commander 的多种改进和可用性增强功能,并且更容易构建并使用基于 Windows PE 的远程恢复客户端。 若要在发布管理员的 Pak 5.0 时注册对它的评估,请访问 http://www.winternals.com/ap5preview/.

编辑

大家好,

欢迎使用 Sysinternals 新闻稿。 新闻稿当前包含40000个订阅者。

恶意软件(包括间谍软件和病毒)日益 tide,每个人都担心安全性。 良好的安全措施包括与操作系统和应用程序修补程序保持一致、安装和配置防火墙、防病毒和间谍软件删除工具,以及在从 Internet 下载或打开电子邮件附件时进行判断。 尽管有了全面的措施,但恶意软件仍可找到防御方法抢先了解并感染计算机的方法。 系统防御中最常见的漏洞是缓冲区溢出漏洞,这就是你应该熟悉 Windows XP Service Pack 2 的数据执行保护 (DEP) 功能的原因。

缓冲区溢出是一种编程错误,恶意程序可以利用该错误来控制执行编码错误的线程。 缓冲区溢出通常基于堆栈,这意味着,攻击者为程序提供的数据比存储在堆栈中的缓冲区的数据要多。 数据的设计方式如下:当具有溢出的函数尝试返回到从中调用该函数的函数时,该函数返回到数据中的位置。

遗憾的是,缓冲区溢出错误可能灾难,甚至是最佳的经过审核的软件。 (Linux,每月对 Windows 及其组件软件宣布了多个缓冲区溢出,并且其应用程序不会受到免疫的干扰,但与 Windows) 同等的缓冲区溢出。 大多数缓冲区溢出利用的常见主题是,它们会导致执行放置在应只包含数据的内存区域中的代码。

虽然 Intel Itanium 处理器从其版本支持不执行保护,但它不是在 Windows XP SP2 (和即将推出的 Windows Server 2003 SP1) 之前,Windows 实际上利用了此硬件支持,例如将线程堆栈和堆内存标记为不可执行。 其他支持非执行硬件保护的处理器包括64位 AMD64 皓龙、速龙64和称为 "EM64T" 的 Intel 克隆,现在可在最强和奔腾4处理器上使用。 AMD 和 Intel 最近引入了32位处理器,但没有执行支持: AMD Sempron 和 Pentium 4 "J" 系列 (如520J、540J 等) 。

在默认情况下,Windows 应为堆栈和应用程序堆内存强制执行非执行保护,以防止缓冲区溢出攻击,但有成千上万的现有应用程序,其中某些应用程序可能实际上依赖于不强制执行正确操作的设置。 因此,在 Windows XP SP2 中,第一次发布的是强制执行不执行保护的 Windows,它使管理员可以控制受保护的进程以及哪些进程不受保护。 首先,按照旨在提高安全性的决策,64位版本的 Windows 始终对所有64位进程强制执行无执行标志。 如果软件供应商想要发布64位应用程序,他们需要确保它们不会从内存的非可执行区域执行代码 (可以将数据区域标记为可执行文件(如果它们是动态生成的),因为 Java 和 .NET 应用程序通常) 。

其次,因为缓冲区溢出攻击最常见于操作系统组件,32位 Windows XP 和 Windows Server 2003 默认保护核心操作系统映像。 但是,对于32位应用程序 (在32位 Windows 或64位 Windows) 上运行,Windows XP 默认为 "选择加入" 策略 (默认情况下,) Server 2003 默认为 "选择退出" Windows 应用程序默认受到保护,但可以 (中排除特定的应用程序。 这样做很有意义,因为安全性在服务器系统上的优先级通常较高。 你可以在 "DEP 配置" 对话框中更改 "选择加入" 或 "选择退出" 设置,该对话框可通过系统控制面板小程序的 "高级" 页的 "性能" 部分中的 "设置" 按钮访问。

如前文所述,除了相对新的 AMD Sempron 和 Pentium 4 "J" 处理器以外,已发布到目前为止的所有与 x86 兼容的芯片均缺少无执行支持。 不过,Windows XP 和 Windows Server 2003 在称为 "软件 DEP" 的处理器上实现了有限形式的 DEP。 因为当线程生成错误时,操作系统会控制线程,因此它可以确保执行的错误处理程序是由程序的代码静态注册的处理程序。 这会阻止重定向线程的错误处理程序以在溢出堆栈缓冲区中执行恶意代码的攻击,这是 CodeRed 病毒在2001中发布时导致 IIS 执行的操作。

尽管 DEP 相对简单,但 DEP 仍是操作系统在其防护板中提供的最强防御机制,以防范自我传播的恶意软件。 不幸的是,三个因素限制了它的强大功能:对于 "无-执行" 设置,当前部署的处理器缺少硬件支持,Windows XP 中的默认选择加入设置,以便仅保护核心操作系统进程,并且缺少感知。 软件 DEP 的作用域有限,因此,只有在支持非执行的硬件上运行 Windows,dep 才会略微有效。 Windows XP 默认为选择使用,这意味着,即使用户在无执行硬件上运行 Windows,仅当用户在不执行的硬件上运行时,才能获得 DEP 保护的唯一过程是操作系统的进程-如果你是第三方防火墙、Web 浏览器、电子邮件读取器或其他启用网络的应用程序,则你仍有漏洞。 事实上,恶意软件、IIS 和 Outlook 最常利用的一些应用程序不受选择加入设置的保护。 最后,由于大多数人都不知道其默认行为,甚至完全是 DEP,因此,大多数情况下,系统会面临缓冲区溢出问题的风险。

Microsoft 使用户能够在 exchange 中支付兼容性价格以获得更好的安全性,或者用户最终会获得更高的费用,并将其转交给 Microsoft。 同时,强烈建议升级到 Windows xp SP2 (Windows xp 64 位版本,Windows Server 2003 SP1 还支持无需) ,切换到 "选择加入" 并升级到无需执行支持的处理器 (遗憾的是,我将不会获得) 的佣金。

请将新闻稿传递给你认为可能对其内容感兴趣的朋友。

谢谢!

-标记

WINDOWS 内部,第四版

Windows Server 2003、Windows 2000 和 Windows XP 的内部的官方 Microsoft 书籍现在可在书籍商店中找到。 Dave 和我将以前版本的覆盖范围增加了约25%,同时添加新材料不仅 Windows Server 2003 和 XP 更改,还增加了疑难解答工具和技术。 你将了解有关使用进程资源管理器、Filemon 和 Regmon 的高级提示,以及 Windows 故障转储分析的整个新章节。

详细了解书籍的内容和订单

http://www.sysinternals.com/windowsinternals.shtml

SYSINTERNALS 上的新增功能

SYSINTERNALS RSS 源

我收到了向 Sysinternals 添加新的发布通知机制的请求,因此,我最后遵循 web 范围内的趋势并添加了 RSS 源 (如果不熟悉 RSS 源,以下是一个不错的入门教程: http://rss.softwaregarden.com/aboutrss.html). 源还提供了一种机会,通知你不能在前面页面上获得完整的 bug 修复和更新。 它看起来就像是用户根据数据源每天获取的命中数来了解更新的首选方式。

访问以下位置的 Sysinternals RSS 源:

http://www.sysinternals.com/sysinternals.xml

SYSINTERNALS 杂志文章

大约六个月之前,我开始在 Windows Pro 杂志 (以前 Windows 和 .net 杂志) 在 Sysinternals 工具上创建一个半月专栏。 每个专栏都介绍了一个不同的工具,其中提供了有关高级使用情况的提示以及有关其工作原理的信息。

在下面列出的三个已发布的中,对于非订阅服务器,前两个可通过联机访问,而第三个则很快:

Autoruns.exe http://www.win2000mag.com/Windows/Article/ArticleID/44089/44089.html

Pslist 和 Pskill: http://www.winnetmag.com/Windows/Article/ArticleID/43569/43569.html

PsExec http://www.winnetmag.com/Windows/Issues/IssueID/714/Index.html

MARK 是 MICROSOFT MVP

平台 SDK Microsoft 最有价值的 Professional (mvp) 主管将 mvp 命名为2005。 我非常感谢他和 Microsoft 对 Microsoft 客户对 Sysinternals 进行的贡献确认。

11月统计信息

我最终获得了一个适用于 Sysinternals 的 web 流量分析计划,并分析了11月份的日志文件。 数字的大小很惊奇甚至我。 它拥有以下亮点:

  • 3600000页面视图
  • 775000唯一访问者
  • 1200000实用工具下载
  • 200000下载进程资源管理器 #1 下载

AUTORUNS.EXE V 6.01

在过去的几个月中,autoruns.exe 发展了很多时间,并且更新了两个主要版本号。 最新版本的 Autoruns.exe 除了显示标准运行密钥和启动文件夹,还显示自动启动位置,包括 Winlogon 通知 Dll、资源管理器工具栏、命名空间扩展和浏览器帮助程序对象和自动初始化 Dll。 另一项新功能(Google menu item (借用自进程资源管理器) 可帮助你通过打开浏览器并启动对所选映像名称的搜索来确定未知的映像。

另一项新功能(图像签名验证)可帮助你区分恶意软件和系统组件或受信任的应用程序。 Microsoft 通常包含用 Microsoft 的私钥签名的操作系统文件的哈希值。 Windows 加密函数使用 Microsoft 的公共签名密钥来解密签名的哈希值,autoruns.exe 会通过将其哈希与解密版本进行比较来验证系统中的映像,并在存在匹配项时,在该映像的公司名称前面加上 " (验证) "。 如果图像已被篡改、损坏、替换或具有由系统不信任的发布者签名的哈希,则 Autoruns.exe 会将该映像的公司名称报告为 " (未验证) "。

作为系统管理员,你可能想要在帐户之外的帐户(而不是你登录的帐户)中检查自动启动的映像,因此 Autoruns.exe 现在包含一个用户菜单,其中包含一个在计算机上存储了配置文件的每个帐户的选项。

最后,现在有一个命令行等效于 Autoruns.exe GUI (称为 Autorunsc),它将 autoruns.exe 信息列出到控制台。 它可以将输出的格式设置为 CSV,并与 Sysinternals ' PsExec 实用程序结合在一起,使你可以轻松地为网络中的计算机生成已配置的自动启动映像的清单。

下载 Autoruns.exe
http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml

进程资源管理器 V 8.61

同样,进程资源管理器是一种将任务管理器替换为高级过程管理实用工具的工具,它是我最专注于的工具,这是因为我会获得如此多的反馈。 由于上一新闻稿处理资源管理器已从版本8.4 到8.6。 新功能的许多标记了这两个版本,其中包括一个 Google menu 项,该菜单项用于启动搜索,其中列出了进程映像文件对话框中的 ASCII 和 Unicode 字符串,后者列出了在所选 DLL 映像文件中列出字符串的字符串菜单项, 在工具提示中,当您将鼠标悬停在 "进程资源管理器" 任务栏图标上时,显示的最消耗 CPU 的进程的名称。

许多用户在从任务管理器切换时请求了其丢失的功能,如 "任务管理器应用程序" 选项卡。"应用程序" 选项卡显示交互式桌面上顶级窗口的列表以及拥有每个窗口的线程的状态: "如果当前线程正在等待接收 windows 消息或在过去5秒内处理过 windows 消息,并且 (具有讽刺意味,则这通常意味着" 正在运行 "指示线程正在等待,并且" 未响应 "它的运行) 。 现在,您可以通过将 "窗口标题" 和 "窗口状态" 列添加到 "进程" 视图来获取与 "进程资源管理器" 相同的信息。

进程资源管理器具有面向一段时间的 at.NET 进程的功能,包括在 .NET 进程的 "进程属性" 对话框中突出显示 .NET 进程和 ".NET 性能" 选项卡。 .NET 进程是指已加载并注册到 .NET 运行时的进程。 如果某个进程在启动进程资源管理器后进行注册,则可能不会意识到它是 .NET 进程,但当您手动刷新显示时,通过按 "刷新" 工具栏按钮、按 F5 键或选择 "刷新" 菜单项,最新的版本复查列为将处理 .NET 状态和作业对象成员身份。

对于不确定哪个进程拥有窗口的情况,可以使用新的 "窗口查找器" 工具栏按钮来识别它。 只需将工具栏按钮(看起来像是目标)拖出工具栏,然后在相关窗口上拖动,进程资源管理器就可以在 "进程" 视图中选择拥有的进程。

添加的会立即显示在工具栏附近的小型 CPU 图形上。 此图显示了系统的 CPU 使用情况历史记录,并像在单击它打开 "进程资源管理器系统信息" 对话框时获取的扩展版本,其中显示了一个工具提示,其中包含用于移动鼠标的关系图中的点的时间戳和最高 CPU 消耗进程。 您可以将图形移到工具栏区域中的任何位置,甚至可以将其移动到 "进程资源管理器" 窗口的宽度。

与安全相关的两项功能是映像签名验证和数据执行保护 (DEP) 状态。 当你启用 "映像签名选项" 时,进程资源管理器将检查进程映像是否已由受信任的签名者进行了数字签名,如 Autoruns.exe,在 "进程属性" 对话框中以 "已验证" 或 "未验证" 为公司名称添加前缀。 默认情况下,此选项处于禁用状态,因为当检查到网站以验证签名证书的有效性时,映像签名检查可能需要几秒钟时间。

我在本新闻稿的简介中介绍了 DEP,你应该在 Windows XP SP2 上启用此功能,以便增强对缓冲区溢出利用的防护。 您可以通过将 "DEP 状态" 列添加到 "进程" 视图中,或者通过选中 "进程属性" 对话框的 "映像" 页上的 "DEP 状态" 字段来检查进程的 DEP 状态。

最后,进程资源管理器现在列出系统进程的 DLL 视图中系统上加载的驱动程序,该进程是与内核和设备驱动程序工作线程关联的进程。 对于为其他进程列出的 Dll (包括版本、公司名称、完整路径和系统地址空间中的加载地址),每个驱动程序都提供相同的信息。

下载进程资源管理器
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

SIGCHECK V1。0

许多 Sysinternals 工具都采用一些功能,这些功能可帮助用户识别恶意软件,Sigcheck 是一个命令行实用程序,几乎专门针对该目标。 它使用 "Autoruns.exe" 和 "进程资源管理器" 中包含的相同映像签名验证功能来告诉您文件是否已由受信任的发布者进行数字签名。 此外,它还报告指定的一个或哪些映像的文件版本信息,包括产品名称、说明、公司名称和版本。 此信息类似于 Windows XP 和 Windows Server 2003 报表附带的 Filever 工具,但 Sigcheck 还会报告最初 "链接" 该文件或为未签名的映像创建文件时的时间戳,以及对签名的文件进行签名的时间戳。 最后,大多数签名的哈希使用自身签名的密钥进行签名,这是一个构成证书签名链的序列。 Sigcheck 支持命令行选项,该选项指示它使用有关链中每个签名者的信息打印签名链。

Sigcheck 的其中一个潜在的安全相关用途是调查任何未签名的 .exe .dll 或在 Windows 安装的根目录下的任何目录中 .sys 映像, (通常为 \ Windows) 。 通过使用此命令行运行 Sigcheck,可以轻松识别未签名的 .exe 映像,例如:

sigcheck -s -u c:\windows\*.exe

所有 Microsoft 映像都应该包含有效的签名,但上述命令会很遗憾地显示,而不会导致可能被利用的文件隐藏恶意软件。

下载 Sigcheck
http://www.sysinternals.com/ntw2k/source/misc.shtml

BGINFO V 4.07

对 Bginfo 的这次更新(一种工具,该工具显示你在其上运行以方便查看的计算机)上配置的信息,它必须进行拉伸以适合你指定的大小、CPU 检测增强功能、对 MySQL 的支持,并改进了多监视器显示的兼容性。

下载 Bginfo
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

REGJUMP V1。0

如果你曾经想过创建特定注册表项的资源管理器快捷方式,或者只是输入了密钥的路径,并让 Regedit 打开目标位置,那么你会发现 Regjump 非常有用。 Regjump 是一个命令行实用工具,它使用我们在 Regmon 中介绍的相同注册表 "跳转" 技术。 为 Regjump 指定一个注册表路径作为其命令行参数,Regedit 将打开并导航到指定的键或值。

下载 Regjump
http://www.sysinternals.com/ntw2k/source/misc.shtml

HEX2DEC V1。0

使用调试器和反汇编,我经常发现自己不得不将十六进制转换为十进制,反之亦然。 我最终厌倦了开始计算,输入一个数字,然后切换基数以查看转换,因此我编写了一个小的命令行转换实用工具。 Hex2dec 在任意方向上进行转换,并方便地将输入标识为十六进制(如果它具有 "0x" 或 "x" 前缀或包含字母 "a-'f") (不区分) 的大小写。

下载 Hex2dec
http://www.sysinternals.com/ntw2k/source/misc.shtml

TCPVCON V 2.34

Netstat 是 Windows NT 和更高版本中内置的命令行实用工具,用于显示系统上当前处于活动状态的 TCP 和 UDP 终结点。 Windows XP 中引入的 Microsoft 版本包含一项有用的信息:打开每个终结点的进程的进程标识符 (PID) 。 但是,若要确定进程的名称或其他任何信息,必须打开进程列表工具,并使用该 PID 查找进程。

TCPView 是一个 Sysinternals 的 GUI 应用程序,它显示相同的活动终结点信息,但比 Netstat 更方便,因为它包括进程的名称、在 DNS 名称和原始 IP 地址之间快速切换,以及使用颜色新的和已删除的终结点突出显示的内容。 现在,TCPView 的下载包括 TCPVCon,这是 TCPView 的控制台版本,你希望使用命令行接口。 与 Netstat 不同,TCPVCon 显示与每个终结点相关联的进程的完整路径,并包含一个以 CSV 格式转储输出的开关。

下载 Tcpvcon
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

PSTOOLS 更新

PsKill 和 PsLoglist 是在过去几个月内获得增强功能的两个 PsTools。 PsKill 是一种命令行实用工具,用于终止本地或远程系统上的进程,现在支持 -t 交换机,以便您可以结束整个进程树。 许多人都要求提供此选项,以便轻松地清理超出批处理脚本的树。

PsLoglist 是一个命令行工具,可在本地或远程系统上转储事件日志。 最近的更新已将5个选项添加到其已有冗长的命令行限定符列表。 新参数允许从输出中排除指定的事件类型或事件源,或者只转储过去几分钟或几小时内的事件。 它现在还支持事件日志监视模式,在此模式下,它会在你终止它时运行,并在事件日志生成时打印事件日志记录。

下载 PsTools,包括 PsKill 和 PsLoglist,网址为
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

WWW.MICROSOFT.COM 上的 SYSINTERNALS

下面是自上一新闻稿以来发布的 Microsoft 知识库中 Sysinternals 参考的最新分期付款 (KB) 。 这会将公共 KB 引用总数 Sysinternals 为63。

  • 修复: Windows Windows Media Player 9 系列频繁访问注册表,可能会影响性能http://support.microsoft.com/?kbid=886423

  • GDI+ 1.0 安全更新概述http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/gdiplus10security.asp

  • 注册表编辑 http://support.microsoft.com/default.aspx?scid=kb ; en-gb; 835818

  • 当你尝试访问 Project 视图时,会收到 "没有可在此视图中显示的信息" 错误消息 http://support.microsoft.com/default.aspx?scid=kb ; en-us; 810596

内部信息

INTERNET 浏览

大约一年前,我公布了从 IE 切换到 Mozilla,因为 IE 缺乏适当的 Internet 浏览器所需的功能,例如弹出窗口阻止、选项卡式浏览、自动填写表单和广告筛选。 不久之后有人将我指向因浏览器,这是一个使用 IE 的小型下载 (它并不是它自己的浏览器) 将其全部放在一起。 Mozilla 的笨 UI,缺少与某些站点的兼容性,我经常做出这一决定。 尽管新的 FireFox 版本在这两个方面都更好,但仍有一些不兼容的站点 (如 Windows 更新的) 情况,因此,我并不强制再次切换。

Microsoft 的进度缓慢改善 ie,即使是 ie 的适度 Windows XP SP2 增强功能,也应该 shame 它们购买因 Browser,并将其构建到下一版本的 IE 中。

下载因浏览器,网址为: http://www.avantbrowser.com

使用 LIVEKD 排查疑难解答系统问题

LiveKd 是我在 Windows 2000 年第 3 版中为它撰写的实用工具 (它现在是 Sysinternals) 上的免费软件工具。 它使你能够使用适用于 Windows 的 Microsoft 调试工具包的 Windbg 或 Kd 执行调试命令,这些命令通常用于调查在线且处于活动状态的系统上的故障转储和冻结系统。 在 XP 及更高版本上运行时,Microsoft 为调试工具引入了Windows"本地内核调试"功能。 但是,可以通过 LiveKd 执行几项操作,但本地内核调试无法执行这些操作。 例如,在本地内核调试中执行时,无法查看具有本地内核调试和 list-kernel modules 命令 的内核模式线程堆栈,而只列出操作系统内核,而未列出其他加载 lm k 驱动程序。 这两个命令在 LiveKd 中工作。

另一个命令在本地内核调试中不起作用,但在 LiveKd 中为 .dump 。 我从 MICROSOFT 产品支持服务 (PSS) 工程师那里了解到,该命令可用于排查 .dump 系统问题。 遇到问题但提供 Web 或数据库等服务的计算机可能不是重新启动或系统在调查期间暂停的传统调试的候选项。 运行 LiveKd 并执行 .dump 会导致崩溃转储格式化文件,其中包含系统物理内存的内容。 可以通过将转储文件加载到 WinDbg 或 Kd 中,将转储文件加载到另一台计算机并分析操作系统和服务应用程序的状态,从而避免在查找问题原因时发生中断。

在 下载 LiveKd
http://www.sysinternals.com/ntw2k/freeware/livekd.shtml

SIDESIDE?

我最近调查了 Windows XP Service Pack 2 版本的 Winlogon 的初始化,这是一个负责显示登录用户界面的系统进程,当我在反汇编中遇到代码时,Winlogon 检查目录中是否存在名为 ediskeer.dll 的 DLL,确保它由受信任的签名者进行数字签名( \Windows\System32 如果存在), 然后加载它并调用 DLL 导出的未命名函数。 当有人登录到系统时执行的 Winlogon 代码也会调用 DLL(如果在初始化过程中加载了 DLL)。

我在系统上查找了 DLL,但找不到它,并且它也不存在于 Service Pack 2 CD 上。 那么,什么是 DLL? 使用 Microsoft 为操作系统提供调试符号时,如果 ediskeer.dll 存在且已签名,则我可以看到 Winlogon 配置名为"用户"的变量,然后我意识到"ediskeer"由最后 8 个字母的"side"以相反顺序组成。 我仍不确定Side 指的是什么,但强烈建议 DLL 是仅随 Windows XP Starter Edition(Microsoft 最近为其他国家/地区引入的 Windows XP 的低成本版本)一起提供。 Starter Edition 基于与 Windows XP Professional 和 Home Edition 相同的操作系统核心,但它对用户可以同时运行的应用程序数施加限制。 如果正确,Winlogon 将加载 DLL 以强制实施该限制,每次新用户登录时激活它。

CHKREG 注册表修复程序

多年来,Bryce 和我在 Chkdsk(文件系统一致性检查实用工具)的 Registry 类比方面收到大量请求。 我们从未编写过,因为我们觉得一个的受众太小,无法证明工作的合理性。 大约一年前,Microsoft 发布了一个很少为人知的 Chkreg,这是注册表的 Chkdsk,可修复许多注册表损坏类型。

遗憾的是,Chkreg 仅在 Windows 2000 (上受支持 (它也可能在 Windows NT 4 和 Windows XP 注册表) 上运行,并且作为使用本机 API 而不是 Windows API 的"本机"应用程序实现,因此它不会在 Windows 下运行。 下载时,必须将其安装到一组六个Windows启动软盘,这是一个繁琐且耗时的麻烦。 我们已与 Chkreg 的开发人员联系,建议他们公开发布已了解到 Microsoft 产品支持服务 (PSS) 内部使用的 Windows 版本,但没有关于何时或是否发布此版本的字样。

可在 下载 Chkreg
http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en

WINDOWS 内存诊断

对于用户来说,最Windows之一是崩溃系统。 在大多数情况下,该故障是一个第三方设备驱动程序 buggy,可以通过禁用驱动程序或更新到具有修补程序的版本来解决此问题。 向 Microsoft Online Crash Analysis (OCA) 约 10% 的崩溃是由硬件问题引起的,其中大多数故障与磁盘和内存相关。

如果发生崩溃,导致 OCA 无法诊断或怀疑存在内存问题,应花费几分钟时间使用 Microsoft Windows 内存诊断 (WMD) ,这是 Microsoft 最近发布的内存检查工具。 WMD 安装程序会请求将 WMD 程序保存到的软盘或 CD。 从软盘或 CD 启动计算机时,创建的 WMD 运行并执行计算机内存的彻底测试,向屏幕报告计算机进度和任何问题。 如果发生内存错误,WMD 可以省去崩溃时Windows感。

可以在 http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C& displaylang=en 上Windows内存诊断

研究未记录的接口

我之前在新闻稿中有关进程资源管理器增强功能的部分中介绍的 DEP 状态功能依赖于未记录的函数。 我认为你们中的许多人会有兴趣了解我在无法访问 Windows 源代码的情况下如何发现 (Dave(我的 Windows Internals 共同作者)具有访问权限,但) 函数及其正确用法。

分析过程的第一步是假设进程的 DEP 状态查询会通过 NtQueryInformationProcess API 路由。 许多Windows检索进程相关信息的 API 函数都使用 NtQueryInformationProcess 接口来获取信息。 此函数在 Windows 驱动程序开发工具包 (DDK) 的 Ntddk.h 文件中原型化,可通过"本机 API"系统调用接口从用户模式访问:

NTSYSAPI
NTSTATUS
NTAPI
NtQueryInformationProcess(
    IN HANDLE ProcessHandle,
    IN PROCESSINFOCLASS ProcessInformationClass,
    OUT PVOID ProcessInformation,
    IN ULONG ProcessInformationLength,
    OUT PULONG ReturnLength OPTIONAL
);

它的前两个参数是进程的句柄和"进程信息类"。 PROCESSINFOCLASS 枚举(其前几个定义如下所示)也包含在 NTDDK 中。H:

typedef enum _PROCESSINFOCLASS {
    ProcessBasicInformation,
    ProcessQuotaLimits,
    ProcessIoCounters,
    ProcessVmCounters,
    ProcessTimes,
//...

由于 DEP 是在 Windows XP SP2 中引入的,我预计 DEP 查询的信息类不会在 Windows XP 或 Windows Server 2003 版本的 Ntddk.h 中列出,并且快速检查确认其不存在。 因此,我必须调查 SP 2 的反汇编Ntoskrnl.exe实现的图像,以确定我能否从经验上确定 NtQueryInformationProcess DEP 查询信息类。

反汇编程序采用可执行映像并列出其代码的汇编语言指令。 汇编语言指令直接映射到处理器执行的指令。 我使用的反汇编程序是 IDA Pro,因为它了解 Microsoft 的调试信息文件,并将信息 http://www.datarescue.com 集成到汇编语言输出中。 在反汇编中,我在 NtQueryInformationProcess 的开始处发现了一系列卷积指令,该指令使用进程信息类参数并执行特定于每个类的代码。 由于我了解信息类是新的,因此我可以跳过执行我在 Ntddk 的 枚举中看到了定义的 PROCESSINFOCLASS 类。 这会将调查范围缩小到自 XP 发布以来引入的大约 3 Windows 4 个新类。

其中一个类(对应于 0x22 的值)将我通过代码路径进入名为 的函数,其开始 ProcessInformationClassMmGetExecuteOptions 如下所示:

PAGE:0054D7CC ; __stdcall MmGetExecuteOptions(x)
PAGE:0054D7CC _MmGetExecuteOptions@4 proc near ; CODE XREF:
NtQueryInformationPro0063ess(x,x,x,x,x)+251C p
PAGE:0054D7CC
PAGE:0054D7CC arg_4 = dword ptr 8
PAGE:0054D7CC
PAGE:0054D7CC mov edi, edi
PAGE:0054D7CE push ebp
PAGE:0054D7CF mov ebp, esp
PAGE:0054D7D1 mov eax, large fs:124h
PAGE:0054D7D7 mov eax, [eax+44h]
PAGE:0054D7DA mov cl, [eax+6Bh]
PAGE:0054D7DD mov eax, [ebp+arg_4]
PAGE:0054D7E0 and dword ptr [eax], 0
PAGE:0054D7E3 xor edx, edx
PAGE:0054D7E5 inc edx
PAGE:0054D7E6 test dl, cl
PAGE:0054D7E8 jz short loc_54D7EC
PAGE:0054D7EA mov [eax], edx
PAGE:0054D7EC
PAGE:0054D7EC loc_54D7EC: ; CODE XREF:
MmGetExecuteOptions(x)+1C j
PAGE:0054D7EC test cl, 2
PAGE:0054D7EF jz short loc_54D7F4
PAGE:0054D7F1 or dword ptr [eax], 2
PAGE:0054D7F4
PAGE:0054D7F4 loc_54D7F4: ; CODE XREF:
MmGetExecuteOptions(x)+23 j
PAGE:0054D7F4 test cl, 4
PAGE:0054D7F7 jz short loc_54D7FC
PAGE:0054D7F9 or dword ptr [eax], 4
PAGE:0054D7FC

IDA Pro上述输出的第一行显示函数接受一个参数,我怀疑该参数是指向接收 DEP 设置的变量的指针。 我花费了足够的时间查看 Windows 内核的反汇编,以将指令序列识别为处理器控制区域 mov eax, large fs:124h; mov eax,[eax+44h]_KTHREAD (PCR) 结构中当前线程数据结构的读取,后跟结构中偏移量 0x44 的 KPROCESS 字段引用。 _KTHREAD 这些指令按照这些指令读取字节中偏移位置的单个位0x6B结构中 _KPROCESS

不知道在局部内核调试模式下0x6B Windbg 的偏移量是什么,并执行了命令 _KPROCESSdt _kprocess ,该命令报告:

+0x06b Flags : _KEXECUTE_OPTIONS

Looking at that structure with another dt command showed the bit definitions:

+0x000 ExecuteDisable : Pos 0, 1 Bit
+0x000 ExecuteEnable : Pos 1, 1 Bit
+0x000 DisableThunkEmulation : Pos 2, 1 Bit
+0x000 Permanent : Pos 3, 1 Bit
+0x000 ExecuteDispatchEnable : Pos 4, 1 Bit
+0x000 ImageDispatchEnable : Pos 5, 1 Bit
+0x000 Spare : Pos 6, 2 Bits

当然,这些位与 DEP 相关,似乎将它们从该结构复制到作为 参数传递给 的内存位置 MmGetExecuteOptionsProcessInformation 中的相应位 NtQueryInformationProcess 。 因此,我已确定可以通过调用 0x22、 (4 字节整数地址和长度为 4 的) 来查询进程的 DEP NtQueryInformationProcessProcessInformationClassDWORD 状态。 它似乎只返回当前进程的标志,并忽略参数 (进程资源管理器通过 API 驱动程序切换到其他进程的帮助程序驱动程序来查询其他进程的 MmGetExecuteOptionsProcessHandle DEP KeAttachProcess) 。

我已完成操作,但 64 位版本的 Windows 存在一些细微差异,因为提供了 64 位版本的进程资源管理器。 在 64 位Windows要求为 -1,如果当前进程是 64 位进程,则返回错误,因为 DEP 对于 MmGetExecuteOptionsProcessHandle 64 位进程始终打开 STATUS_INVALID_PARAMETER 。 我使用了 Windbg 来反汇编 64 位版本的 Ntoskrnl.exe,但此后便获得了支持 AMD64 映像反汇编的 IDA Pro 版本。

INTERNALS 训练

旧金山的 WINDOWS 连接

我将在 Windows 连接会议上进行两场会议,该会议由 Windows IT Pro 杂志运行,于 4 月 17-20 日于旧金山进行。 一个称为"了解和冲突恶意软件:病毒、间谍软件和 Rootkit"的常规会话,我介绍恶意软件如何利用漏洞来传播和绕过安全措施,如何使用称为"rootkit"的复杂技术进行隐藏,以及如何检测它们以及如何从系统中清除它们。

另一个会话是"排查 Windows 内存问题",其中我展示如何回答年龄旧的"我在 任务管理器 中看到的值的含义是什么"、"使用内存的内容"和"我的分页文件的大小"问题。

下载会议手册并注册
http://www.devconnections.com/shows/win/default.asp?s=60#

通过标记 RUSSIN一文实现 WINDOWS INTERNALS/SYSINTERNALS 类

与新书 Windows Internals 第 4 版的作者 Mark Russin一起花费 5 天的时间,学习高级故障排除技术,同时深入探究 Windows NT/2000/XP/2003 操作系统内核的内部机制。 如果你是一名 IT 专业人员,Windows和工作站进行部署和支持,则需要能够在出现问题时深入挖掘。 了解操作系统的内部Windows并了解如何使用高级故障排除工具将有助于你处理此类问题并更有效地了解系统性能问题。 了解内部机制可帮助程序员更好地利用 Windows 平台,并提供高级调试技术。 由于本课程是使用完全访问权限开发Windows内核源代码和开发人员的,因此你知道自己正在获取真实信息。

即将推出的日期包括:

  • 6 月 6-10 日,迈阿密、迈阿密
  • 7 月 11-15 日,德国
  • 9 月 19-23 日,加利福尼亚州旧金山
  • 12 月 5-9 日,德克萨斯州 TEXAS

注意:这是一个动手课程 -每个参与者必须自带笔记本电脑 (配置说明将提前发送) 。

你将深入了解 Windows NT/2000/XP/2003 的内核体系结构,包括进程的内部机制、线程计划、内存管理、I/O、服务、安全性、注册表和启动过程。 此外,还包括高级故障排除技术,例如恶意软件攻击、故障转储 (蓝屏) 分析以及获取过去的启动问题。 你还将了解有关使用www.sysinternals.com (中的关键工具(如 Filemon、Regmon、进程资源管理器) )排查一系列系统和应用程序问题(例如计算机速度缓慢、病毒检测、DLL 冲突、权限问题和注册表问题)的高级提示。 这些工具由 Microsoft 产品支持人员每日使用,并有效地用于解决各种桌面和服务器问题,因此熟悉其操作和应用程序有助于你处理 Windows。 将给出真实示例,展示成功应用这些工具来解决实际问题。

若要注册,请访问 http://www.sysinternals.com/troubleshoot.shtml


感谢你阅读 Sysinternals 新闻稿。

发布时间:2005 年 1 月 5 日,星期三下午 4:36,由 ottoh 发布

[新闻稿存档 ^][ 第 6 卷,第 2 卷][第 7 卷,特别公告 ]

[新闻稿存档 ^][ 第 6 卷,第 2 卷][第 7 卷,特别公告 ]

系统内部信息新闻稿第 7 卷,第 1 号

http://www.sysinternals.com
版权所有 (C) 2005 Mark Russin中