61阅读

哈勃文件分析系统-哈勃分析系统整装再出发 打造用户身边的“安全专家”

发布时间:2018-01-27 所属栏目:系统分析论文

一 : 哈勃分析系统整装再出发 打造用户身边的“安全专家”

  11月2日,腾讯电脑管家旗下的国内知名安全辅助平台“哈勃分析系统”改版升级上线。升级后的“哈勃分析系统”将加强精准鉴定、极速响应、全网监控的能力,并依靠海量分析集群、基于大数据处理的智能检测技术和业内顶尖的反病毒分析团队三大“法宝”保障用户网络安全。

  

1

 

  (“哈勃分析系统”改版升级上线)

  据了解,“哈勃分析系统”是 “腾讯反病毒实验室”自主研发的安全辅助平台,升级后能够提供精准鉴定、极速响应和全网监控的服务。具体来说,首先通过独有集群智能系统,深度挖掘病毒恶意行为,样本分析准确率99.9%以上,实现精准鉴定。其次,依托海量数据解决方案,实时输出文件分析结论,保证平台能够极速响应。最后,云端平台具备7*24小时提供全面服务的能力,全网监控随时随地多维度保护用户的安全。

  为实现上述服务,“哈勃分析系统”则主要依靠海量分析集群、基于大数据处理的智能检测技术和业内顶尖的反病毒分析团队三大“法宝”。其中,用户主动上传的样本和腾讯反病毒实验室深度挖掘的恶意软件,形成海量分析集群。云端平台海量数据处理后,智能检测技术提高识别速度。另外,哈勃系统的开发团队全部来自“腾讯反病毒安全实验室”,其核心成员均有10年以上奋战在安全第一线的实战经验,是保证用户安全的坚强后盾。

  据悉,“哈勃分析系统”在2014年5月30日正式上线以来,多次针对业内安全事件第一时间做出预警、发声。例如在2015年7月,“哈勃分析系统”针对“成绩单”木马诈骗一案,协助警方并提供线索,帮助警方迅速破案。值得注意的是,国际知名病毒分析网站VirSCAN在2014年11月5日开始使用“哈勃分析系统”的平台能力,“哈勃分析系统”也成为VirSCAN至今唯一一家对用户提供详细行为分析报告的分析平台。

  目前,“哈勃分析系统”(官方网站:http://habo.qq.com)已上线哈勃APP检测工具、锁屏敲诈木马专杀工具、FBI敲诈病毒专杀工具和LINE杀手专杀工具,提供一键检测手机上安装APP安全性及病毒查杀等服务。用户面对未知的文件,也可以通过简单的上传操作,由“哈勃分析系统”分析获得样本基本信息、可能产生的行为、安全等级等信息,实现更便捷识别恶意文件,真正成为用户身边的安全专家。

二 : Windows XP系统内核文件分析

regsvc.dll .....远程注册表服务
REGWIZ.EXE .....(注册向导). 令注册 XP 的过程自动化.
regwizc.dll .... 注册向导的相关模块
rend.dll .......Microsoft 集合控件
REPLACE.EXE ....(Replace). 用于替换文件的命令行工具.
rnr20.dll ......Windows Socket2 命名空间 DLL
routetab.dll ...Microsoft 路由表 DLL
rpcns4.dll .....Remote Procedure Call 命名服务客户端
rsmps.dll ......RSM 代理存根
rsaci.rat ...... <-- 属于 msrating.dll. 你可在以下位置查看分级选项:
Internet 选项 -> 内容 -> 分级审查 -> 启用
RTCSHARE.EXE ...(RTC 程序共享). 实时时钟组件.
rtipxmib.dll ...Microsoft Router IPX MIB subagent
RUNAS.EXE ......(运行方式). 这个工具可用一个新用户名和密码执行一个进程.
一般, 可用来在低权限用户登录的系统上以高权限的管理员身份来运行一个程序.
safrdm.dll .....Microsoft 帮助中心桌面管理器
safrslv.dll ....Microsoft 帮助中心会话处理程序
SAVEDUMP.EXE ...(转储). 当系统出现 STOP 错误时, 可用于将内存中的内容转
储为文件.
sbe.dll ........DirectShow 流缓冲滤镜
sbeio.dll ...... 流缓冲输入输出 DLL
SC.EXE .........( Windows NT 服务管理). 一个服务管理工具.
scrobj.dll .....Windows (r) 脚本组件运行时
scrrun.dll .....Microsoft (r) 脚本运行时
SDBINST.EXE ....(Installer). AppFix 和 AppHelp 安装程序.
sendcmsg.dll ....发送控制台消息
sdhcinst.dll ...Secure Digital Host 控制器类别控制器
sdpblb.dll .....Microsoft Sdpblb
secupd.sig .....
security.dll ...安全支持提供程序接口
senscfg.dll ....SENS 安装设置工具
serialui.dll ...串行端口属性页面
setup.bmp ......
SETUP.EXE ......(Setup). Windows 安装程序
setupdll.dll ...Windows 2000 安装 DLL
SETVER.EXE .....(设置版本). 用于定义报告给某个应用程序关于 DOS 的版本.
sfc.exe ........(Windows 2000 系统文件检查工具). 用于验证 XP 的文件是否
存在以及是否正确.
sfc_os.dll ...(Windows 文件保护). 用于保护 Windows 的系统文件.
sfmapi.dll .....Windows NT Macintosh 文件服务客户端
SHARE.EXE ......(Share). 能让两个程序同时使用一个文件的 DOS 工具.
shellstyle.dll ..Windows 外壳样式资源Dll
SHMGRATE.EXE ... Windows XP 用户数据转移工具.
SHRPUBW.EXE ....(共享文件夹创建工具). 用于在 Windows XP 系统上创建共享
文件夹.
shscrap.dll ....外壳碎片对象句柄
SHUTDOWN.EXE ...(远程关机工具). 允许关闭或重启本地或远程电脑.
sigtab.dll .....文件完整性设置
SIGVERIF.EXE ...(文件签名验证工具). 验证所选文件是否经过认证.
simpdata.tlb ....
sisbkup.dll ....单实例存储备份支持功能
skdll.dll ......序列号
SKEYS.EXE ......(序列号). 一个可提供支持序列号功能的系统服务.
slayerxp.dll ...”兼容性” 选项卡外壳扩展DLL
smbinst.exe ....系统管理 BIOS 驱动安装程序
softpub.dll ....Softpub Forwarder DLL
SORT.EXE .......(Sort). 用于整理键盘输入并将结果写入一个文件或是显示在
屏幕上.
spmsg.dll ......Service Pack 消息
spnike.dll .....用于 Nike 设备的 MDM 设备接口
spnpinst.exe ...点对点定制安装
SPRESTRT.EXE ...重启时还原注册表
sprio600.dll ... Rio 600 的 MDM 设备接口
sprio800.dll ... Rio 800 的 MDM 设备接口
spxcoins.dll ...Specialix MPS NT 升级协同安装程序
srvsvc.dll .....服务器服务 DLL
sti_ci.dll .....静止图像类别安装程序
sti.dll ........ 静止图像设备客户端 DLL
stimon.exe ..... 静止图像设备监视器
storage.dll ....OLE 2.1 16/32 相互操作库
strmfilt.dll ...流滤镜库
SUBST.EXE ......(虚拟). 可将一个路径虚拟为一个分区.
svcpack.dll ....Windows 2000 Service Pack 安装程序
SYNCAPP.EXE ....(同步). 公文包用于同步所含文件的工具.
synceng.dll ....Windows 公文包引擎
syncui.dll .....Windows 公文包资源文件
SYSEDIT.EXE .....(系统编辑器). 一个用于打开编辑 system.ini, win.ini,
config.sys, 和 autoexec.bat 的编辑器.
sysinv.dll .....Windows 系统清单
SYSKEY.EXE .....(Windows XP 帐户数据库管理器). 用于设置Windows XP 帐户
数据库的安全特性.
sysmon.ocx .....系统监视控件
sysprint.sep ...
sysprtj.sep ....
SYSTRAY.EXE ....(系统栏). 系统栏提供程序. 它能控制任务栏和系统栏. 但是,
没它的话, 也没有什么不正常的地方.
t2embed.dll ....t2embed
taskman.exe ....任务管理器 (不是平时使用的那个. 平时那个是:
"taskmgr.exe")
tdc.ocx ........TDC ActiveX 控件
TELNET.EXE .....(Telnet). 一个 Telnet 客户端, 可用于访问远程Telnet 服务
器系统.
tftp.exe .......简单文件传输协议应用程序
toolhelp.dll ...Windows 调试工具助手库
traffic.dll ....Microsoft 网络交通控制 1.0 DLL
tree.com .......将文件夹列为树形结构
tsbyuv.dll .....东芝视频解码器
typelib.dll ....OLE 2.1 16/32 相互操作库
ufat.dll .......FAT 工具 DLL
umandlg.dll ....UManDlg DLL
unimdm.tsp .....
unimdmat.dll ...通用调制解调器服务提供程序 AT 微型驱动
ureg.dll .......注册表工具 DLL
usbmon.dll .....标准动态打印端口监视器DLL
USER.EXE .......(Windows 用户界面核心组件). 用于保持 Win16 的兼容性. 不
是一个有效的 Win32 应用程序.
v7vga.rom .......
vbajet32.dll ...Visual Basic 应用程序开发环境- Expression 服务加载器
vcdex.dll ......32 位MSCDEX 虚拟设备驱动
vdmredir.dll ...DOS 虚拟机网络接口库
verifier.dll ...标准应用程序验证提供程序dll
VERIFIER.EXE ...(驱动验证管理器). 可用它探测一个驱动的操作是否会导致系
统冲突.
vfpodbc.dll ....vfpodbc
vga256.dll .....256 色 VGA/SVGA 显示驱动
vga64k.dll .....32K/64K 色 VGA/SVGA 显示驱动
View Channels.scf ..(查看频道).
vjoy.dll .......32 位手柄虚拟设备驱动 (我没有手柄)
w32topl.dll ....Windows NT Topology 维护工具
wavemsp.dll ....Microsoft Wave MSP
wdl.trm ........
webvw.dll ......网页视图外壳扩展库
WEXTRACT.EXE ...(Win32 Cab 自解压程序创建工具). 用于提取 Cab 压缩包中的
文件.
wiasf.ax .......WIA 流快照滤镜
wifeman.dll ....Windows WIFE 接口核心组件
win.com ........用于保持兼容性
win87em.dll ....
winbrand.dll ...Windows Branding 资源
WINCHAT.EXE ....简单的聊天工具
winfax.dll .....Microsoft 传真 API 支持 DLL (我没有传真机.)
winhelp.hlp ....
WINHLP32.EXE ...(Windows 帮助). 用于打开帮助文件.
WINMSD.EXE .....(Windows XP 诊断工具或是系统信息工具). Windows XP 诊断
工具.
winnls.dll .....Windows IME 接口核心组件
winntbbu.dll ...Windows 安装画面 DLL
winoldap.mod ...
winshfhc.dll ...文件风险评估
winsock.dll ....Windows Socket 16-Bit DLL
winstrm.dll ....Streams DLL
wkssvc.dll .....Workstation 服务 DLL
wmidx.dll ......Windows Media 索引 DLL
wmiprop.dll ....WDM 动态属性页面协同安装程序
wmv8ds32.ax ....(文件版本: 8.0.0.4000). Windows Media 视频解码器 V8
wmvds32.ax .....Windows Media 视频解码器
WOWDEB.EXE .....(WOW 调试程序). WOW 调试程序. Win16 调试助手
wowexec.exe ....Windows Win16 程序启动工具
wowfax.dll .....Windows 3.1 兼容传真驱动 DLL
wowfaxui.dll ...Windows 3.1兼容传真驱动DLL
WPABALN.EXE ....(Windows 产品激活). Windows 产品激活气球提示器.
WRITE.EXE ......写字板, 支持纯文本和 RTF 文档.有 Word 就不用它了
wscntfy.exe ....Windows 安全中心通知程序
wscui.cpl ...... 安全中心控制面板小程序
WSCRIPT.EXE ....(脚本宿主). 基于 Windows 的脚本宿主.
wshatm.dll .....Windows 套接层助手 DLL
wshbth.dll .....Windows套接层助手DLL
wshcon.dll .....Microsoft (r) Windows 脚本控制器
wshisn.dll .....NWLINK2套接层助手DLL
wshnetbs.dll ...Netbios Windows套接层助手DLL
wshom.ocx ......Windows 脚本宿主运行时库
WshRm.dll ......用于 PGM 的 Windows套接层助手
wsnmp32.dll ....Microsoft WinSNMP v2.0 Manager API
xactsrv.dll ....下级 API 服务器 DLL
xcopy.exe ......加强版的复制命令
xenroll.dll ....XEnroll
xpob2res.dll ...Service Pack 2 OOB 消息
............350 个没有删除的 System32 文件...以及原因............
我为什么不删除这些文件是有很多重要原因的, 其中有许多文件要经常用到. 我
会把为什么不想删除这些文件的原因列在下面.
NVDVD 需要以下文件
acelpdec.ax .....ACELP.net 音频解码器
以下是 NVDVD 安装的文件:
DolbyHph.dll .....杜比耳机引擎
license.955200 ...... <-- 在我把这个看起来无害的文件删除之后,当我重启电
脑时就会提示内存出错,还会在事件查看器中显示程序错误. 即使我将其放回
system32 文件夹中, 错误仍然存在.
msxml3a.dll ....XML 资源文件
-------------------------------------------------
Needed for Regedit
aclui.dll .....Security Descriptor Editor
clb.dll .....Column List Box
-------------------------------------------------
重启电脑需要以下文件
AUTOCHK.EXE ..(自动检查磁盘). 如果存储卷被标记为杂乱的话 (有坏簇, 错误
区块, 或是有其它损坏), 那么在 WinXP 启动期间就会自动运行这个程序.
bootvid.dll .....VGA 启动驱动
csseqchk.dll ....CSSeqChk
dpcdll.dll ......Dpcdll Module
hal.dll ........(硬件抽象层). 隐藏 Windows 应用程序处理硬件问题的复杂性
.
kdcom.dll .......内核调试程序硬件扩展 DLL
shgina.dll .....Windows 外壳用户登录 <-- 这个文件用于从你的桌面上重启电
脑.进一步讲, 一旦你将其删除或是将其从 system32 文件夹中移走,那么即使你
将其放回, 也照样无法从你的桌面重新启动.
USERINIT.EXE ..(用户初始化). 在用户登录之后, 用于确定操作系统的环境.
-------------------------------------------------
安装 Yahoo Messenger 需要以下文件
AVICAP32.dll .....AVI 捕获类
当我安装 Yahoo Messenger 时,弹出以下错误对话框:
"无法启动这个程序, 因为没有找到AVICAP32.dll. 请安装此文件以解决这个问题
."
然而, 即使出现了这个消息, 也能成功安装 Yahoo Messenger.
-------------------------------------------------
这些文件属于 Windows Media Player 10
avifil32.dll .....Microsoft AVI 文件支持库 <-- Plus! MP3 Audio
Converter LE 需要此文件
blackbox.dll ..BlackBox DLL
LOGAGENT.EXE ..(Windows Media Player 日志代理). 可记录 Windows Media
Player 出现的错误.
MsPMSP.dll ....Microsoft Media 设备服务提供程序
MSSCP.dll .....Windows Media 安全内容提供程序
msvfw32.dll ...Microsoft Video for Windows DLL
MSWMDM.dll ....Windows Media 设备管理器核心
qasf.dll ......DirectShow ASF 支持
wmadmod.dll ...Windows Media 音频解码器
wmadmoe.dll ...Windows Media 音频编码器/转换器
WMASF.DLL ......Windows Media ASF DLL
WMDMLOG.dll ...Windows Media 设备管理器日志程序
WMDMPS.dll ....Windows Media 设备管理器 Proxy Stub
wmnetmgr.dll ..Windows Media 网络插件管理器 DLL
WMP.DLL ........Windows Media Player 核心
wmp.ocx ......Windows Media Player
wmpasf.dll ....Windows Media Filter Shim
wmpcd.dll .....Windows Media Player
wmpcore.dll ...Windows Media Player
wmpdxm.dll ....Windows Media 6.4 Player Shim
WMPLOC.DLL .....Windows Media Player
wmpshell.dll ..Windows Media Player 启动程序
wmpui.dll .....Windows Media Player
wmsdmod.dll ...Windows Media 屏幕解码器
WMVCORE.DLL ....Windows Media 回放/认证 DLL
wmvdmod.dll ...Windows Media 视频解码器
-------------------------------------------------------
NLS 文件 = 多国语言资源文件. 字符集转换; 本地语言服务驱动(字体或字体映
射).
就我的 U.S.English (美国英文) 设置而言, 保留了以下NLS 文件:
c_437.nls
c_932.nls
c_936.nls?简体中文代码页
c_1250.nls
c_1251.nls
c_1252.nls?ANSI Latin 代码页
c_1255.nls
c_20127.nls
c_28591.nls
c_28592.nls
C_28595.NLS
c_28605.nls
ctype.nls
l_intl.nls
locale.nls
sortkey.nls
sorttbls.nls
unicode.nls
-------------------------------------------------
.cab 文件夹
cabview.dll ....Cab 文件查看器外壳扩展
-------------------------------------------------
我需要 cards.dll 来玩纸牌游戏
cards.dll ......纸牌游戏相关 DLL
-------------------------------------------------
Windows Update 需要以下文件
CDM.DLL ........Windows Update CDM Stub
DCIMAN32.DLL ...DCI 管理器
dssenh.dll .....Microsoft Enhanced DSS 和 Diffie-Hellman 加密提供程序
iuengine.dll ...Windows Update 控制引擎
JSCRIPT.DLL ....Microsoft (r) JScript
licdll.dll .....Licdll Module
pidgen.dll .....Pid3.0 生成器
rasapi32.dll ....远程访问 API
rasman.dll ......远程访问连接管理器
wshext.dll .....Microsoft (r) Windows 脚本宿主外壳扩展
WUAPI.DLL ......Windows Update 客户端 API
wuauclt1.exe ...Windows Update 自动更新客户端
WUAUCLT.EXE ....(Windows Update). 自动更新客户端
wuaucpl.cpl ....自动更新控制面板
WUAUENG1.DLL ...Windows Update 自动更新引擎
WUCLTUI.DLL ....Windows Update 客户端用户界面插件
wupdmgr.exe ....Windows Update 管理器
WUWEB.DLL ......Windows Update 网络控件
----------------------------------------------
以下文件属于 CHKDSK
CFGMGR32.DLL ...配置管理转发器 DLL
CHKDSK.EXE ..(检查磁盘). 一个磁盘检查工具, 可用于搜索和修复磁盘错误.
dskquota.dll ...Windows 外壳磁盘配额支持 DLL
dskquoui.dll ...Windows外壳磁盘配额用户界面DLL
fmifs.dll ......FM IFS 工具 DLL
ifsutil.dll ....IFS 工具 DLL
MFC42.DLL ......MFCDLL 共享库
rshx32.dll ....安全外壳扩展
twext.dll ......上一版本属性页面
ULIB.DLL .......文件工具支持 DLL
untfs.dll ....., .NTFS 工具 DLL
-------------------------------------------------
CMD.EXE ....(命令行).可提供 Windows NT 下的命令行提示符 (MS-DOS 外壳解
释程序).
-------------------------------------------------
Cryptographic 加密服务需要以下文件
crtdll.dll .....加密管理器
cryptsvc.dll ...加密服务
-------------------------------------------------
文件的摘要选项卡需要以下文件:
cryptext.dll ...加密外壳扩展
docprop.dll ....OLE Doc 文件属性页面
docprop2.dll ...Microsoft DocProp 外壳扩展
-------------------------------------------------
我没有删掉所有的 DirectX 文件...只是接近全部.
我保留了一些 DirectX 文件, 因为NVDVD 需要它们.
我发现 WMP 10 另外需要 2 个DirectX 文件: "dsound.dll" 和 "quartz.dll"
我不在我的电脑上玩游戏, 因此我把别的 DX 文件都删掉了.
以下保留的文件属于 Direct3D:
d3d8thk.dll ....Microsoft Direct3D OS Thunk Layer
d3d9.dll .......Microsoft Direct3D
d3dim700.dll ...Microsoft Direct3D
以下保留的文件属于DirectShow that:
devenum.dll ....设备枚举.
msdmo.dll ......DMO 运行时
qdvd.dll .......DirectShow DVD 回放运行时
quartz.dll .....(DirectShow 运行时). <-- WMP 10 需要此文件.
以下保留的文件属于 DirectX:
ddraw.dll ......Microsoft DirectDraw
dsound.dll .....(DirectSound). <-- WMP 10 需要此文件.
ksuser.dll .....用户 CSA 库
-------------------------------------------------------
电脑管理控制台
devmgmt.msc ......设备管理器
dfrg.msc .........磁盘碎片整理
eventvwr.msc .....事件查看器
services.msc .....服务查看器
-------------------------------------------------
观看 Yahoo 电影预告片所需文件
davclnt.dll ....Web DAV (网络文件夹) 客户端 DLL
dbghelp.dll ....(Windows 图像助手). <-- 并不是真的需要用它来观看 Yahoo
电影预告片,只是保留它可以避免程序提示无法找到dbghelp.dll...没有
dbghelp.dll 也可正常播放电影.
dispex.dll .....Microsoft (r) DispEx
hhsetup.dll ....Microsoft? HTML 帮助
iepeers.dll ....Internet Explorer 对等对象
mmcshext.dll ...MMC 外壳扩展 DLL
perfos.dll .....Windows 系统性能对象 DLL
ssdpapi.dll ....SSDP 客户端 API DLL
upnp.dll .......通用即插即用 API
-------------------------------------------------
显示属性 -> 设置 -> 高级页面上的适配器, 监视器和疑难解答选项卡需要以下
文件:
deskadp.dll ....高级显示适配器属性
deskmon.dll .... 高级显示监视器属性
deskperf.dll ... 高级显示性能属性
-------------------------------------------------
硬件设备管理器需要以下文件:
devmgr.dll .....设备管理器 MMC 管理工具
dmocx.dll ......树形视图 OCX
-------------------------------------------------
Windows 默认磁盘碎片整理工具需要以下文件:
虽然我用 PerfectDisk 整理磁盘, 但是我发现需要保留 Windows 默认的磁盘碎
片整理工具才能安装PerfectDisk.
你的电脑在用过一段时间之后, 磁盘上的文件分布就会比较乱, 也就产生了不少
磁盘碎片, 这会导致访问操作文件变慢. 用磁盘碎片整理工具将其整理一遍之后,
就会好多了.
DFRGNTFS.EXE ..(NTFS 磁盘碎片整理工具). 用于整理 NTFS 分区.
dfrgres.dll .... 磁盘碎片整理工具资源模块
dfrgsnap.dll ... 磁盘碎片整理管理工具模块
dfrgui.dll ..... 磁盘碎片整理用户界面模块
vssapi.dll ....Microsoft? 卷影复制请求方/写入方服务API DLL
-------------------------------------------------
DivX.dll .......DivX? 编解码器 for Windows
divxdec.ax .....DivX? 解码滤镜
-------------------------------------------------
我所安装的第三方编解码器, 以避免播放损坏的视频时画面定格
DivXAF.ax ......DivX 反定格滤镜
-------------------------------------------------
添加或删除模块所需的文件:
duser.dll ......Windows DirectUser 引擎
-------------------------------------------------
ELS.DLL ........事件查看器管理工具
EVENTVWR.EXE ...(事件查看器). 事件查看器的可执行文件.
-------------------------------------------------
服务窗口所需的文件
filemgmt.dll .....服务和共享文件夹
mfc42u.dll .....MFCDLL 共享库
-------------------------------------------------
用于维护字体文件夹的特殊结构, 且用于显示字体图标:
fontext.dll ....Windows 字体文件夹外壳扩展
FONTVIEW.EXE ..(字体查看器). 用于在窗口中查看字体示例.
-------------------------------------------------
用于安全模式下, 避免图像看起来像是被撕裂了一样:
framebuf.dll ...帧缓冲显示驱动
-------------------------------------------------
framedyn.dll ...WMI SDK 提供程序框架
我把 wbem 文件夹中的 framedyn.dll 移动到 system32 中了, 然后又把wbem 文
件夹以及其中的内容都删掉了.
有时当你运行系统还原时会出现错误, 它会提示你, 没有framedyn.dll 的话, 将
无法运行系统还原.
没有 "framedyn.dll" 的话, 当你右击我的电脑时会出错. 将其保留到 system32
文件夹中可避免出错.
-------------------------------------------------
glu32.dll ......(OpenGL 工具库 DLL). OpenGL 3D 图形渲染函数库.
-------------------------------------------------
GRPCONV.EXE .....(组转换). 将 Microsoft Windows 3.x 的程序管理器组转换
为开始菜单项目.
没有GRPCONV.EXE 的话, 我就无法安装Microsoft 的文件检查工具以检查正确的
DVD 编解码器.
-------------------------------------------------
Acronis True Image 所需的文件
hhctrl.ocx .....Microsoft? HTML 帮助控件
-------------------------------------------------
hid.dll .....(Hid 用户库文件).
Realtek’s 音频配置工具需要此文件 (C:/WINDOWS 中的soundman.exe)
-------------------------------------------------
html.iec .......(Microsoft HTML 转换器) 用于将从网页上复制的文本粘贴到
写字板中. (用于保留网页文本格式?)
-------------------------------------------------
我需要以下第三方解码器来回放某些格式的视频.
I263_32.DRV ....Intel I.263 视频驱动 2.55.012
系统默认 MP3 解码器:
l3codecx.ax .....MPEG Layer-3 音频解码器
-------------------------------------------------
以下文件属于 Internet Explorer
imgutil.dll ....IE 图像解码插件DLL
MSCTF.DLL ......MSCTF 服务器 DLL
MSIMTF.DLL .....Active IMM 服务器 DLL
pngfilt.dll ....IE PNG 图像解码插件
-------------------------------------------------
IMAPI.EXE .....(刻录服务).通过 IMAPI 管理光盘刻录, 可用 Nero 等代替.
-------------------------------------------------
Plus! MP3 Audio Converter LE所需用于将 .mp3 转为 .wma 的编解码器:
IMC32.ACM ......Intel MSACM 音频编解码器
l3codeca.acm ...(MPEG Layer-3 音频编解码器). <- 系统默认的 MP3 解码器
sl_anet.acm .... MS ACM 音频编解码器
iac25_32.ax ....Indeo? 音频软件
msg723.acm .....Microsoft G.723.1 CODEC for MSACM
msaud32.acm ....(文件版本: 8.0.0.4487). Windows Media Audio
wmspdmoe.dll ...Windows Media Audio 9 语音编码器
-------------------------------------------------
inetcomm.dll ..(Microsoft Internet Messaging API). 当你点击 Outlook
Express 的快捷方式时, Windows 将无法找到位于C:/Program Files/Outlook
Express的 "msoe.dll".
inetres.dll ....(Microsoft Internet Messaging API 资源文件). 当你点击
Outlook Express 的快捷方式时, Windows 将无法找到位于C:/Program
Files/Outlook Express的"msoeres.dll".
Outlook Express 所需的其它文件
acctres.dll ....Microsoft Internet 帐户管理器资源文件
mapistub.dll ...(Extended MAPI 1.0 for Windows NT).当你选择将 Outlook
Express 设为默认的邮件处理程序时就会需要这个文件.
mshtmler.dll ...(Microsoft (R) HTML 编辑组件的资源DLL). <-- 用于向邮件
中插入图片:
msident.dll ....Microsoft 标识管理器
msidntld.dll ...Microsoft 标识管理器
MSOEACCT.DLL ...Microsoft Internet 帐户管理器
MSOERT2.DLL ....Microsoft Outlook Express RT Lib
sendmail.dll ...(发送邮件).
-------------------------------------------------
用于访问 Internet 选项
inetcplc.dll ..Internet 控制面板
-------------------------------------------------
没有此文件将无法打开 *.chm 帮助文件. 你会看到类似以下错误: "无法打开文
件: mkMSITStore".
itss.dll ...Microsoft? InfoTech 存储系统库文件
-------------------------------------------------
kbdus.dll .....美国键盘布局
-------------------------------------------------
安装 Realtec AC’97 音频驱动时会需要以下文件:
ksproxy.ax ....WDM Streaming ActiveMovie Proxy
-------------------------------------------------
用于正常访问控制面板中的用户帐号:
localsec.dll ..本地用户和组 MMC 管理工具
C:/WINDOWS/system32:
12520437.cpx ...代码页转换表.
12520850.cpx ... 代码页转换表.
6to4svc.dll ....在 IP4网络上提供IPv6 连接的服务
aaaamon.dll ....Aaaa Monitor Dll
acledit.dll ....访问控制列表编辑器
ac3filter.cpl ..ac3filter 控制面板扩展
属于我所安装用于看电影的 AC3Filter 编解码器.
ahui.exe .......应用程序兼容用户界面
ALSNDMGR.CPL ...Realtek AC97 音频控制面板
我用 RTLCPL.EXE (Realtek 音频控制面板) 作为代替.
amcompat.tlb ...
ansi.sys .......
apcups.dll .....APC 智能提供程序
APPEND.EXE .....(Append). 允许应用程序在当前文件夹中打开指定目录中的数
据文件. 此工具源于 MS-DOS 5.0.
asctrls.ocx ....Active Setup 控件
AT.EXE .........(AT). 用于设置在指定时间和日期执行任务. 需要运行计划任
务服务.
atkctrs.dll ....Windows NT AppleTalk 性能计数器 dll
ATMADM.EXE .....(ATM). ATM 呼叫管理器.
auditusr.exe ... 设置每用户审核策略
atmfd.dll ......Windows NT OpenType/Type 1 字体驱动
atmlib.dll .....Windows NT OpenType/Type 1 API 库.
atmpvcno.dll ...Atm Epvc Install DLL
atrace.dll .....Async Trace DLL
ATTRIB.EXE .....(文件属性). 显示或更改文件属性 (只读, 存档, 隐藏, 或系
统).
AUTOCONV.EXE ...(自动转换). 用于将 FAT 分区格式转为 NTFS.
autodisc.dll ...Windows AutoDiscovery API , 自动收取邮件
AUTOFMT.EXE ...(自动格式化). 用于转换文件系统的工具.
AUTOLFN.EXE ....长文件名转换工具. 用于 DOS模式下. 能够自动将长文件名转
换为8.3 格式.
-------------------------------------------------------
batt.dll .......电池类安装程序
如果你使用笔记本的话, 那么设备管理器会需要这个文件来访问你的电池属性.
-------------------------------------------------------
bidispl.dll ....Bidispl DLL
bios1.rom ......
bios4.rom ......
bitsprx2.dll ...后台智能传输服务代理
bitsprx3.dll ... 后台智能传输服务 2.0 代理
blastcln.exe ...Blaster/Nachi 移除工具
BOOTOK.EXE .....(启动确认). 在一次成功地登录系统之后, “上次正确的配置
” 会用它保存配置参数.
BOOTVRFY.EXE ...(启动验证). “上次正确的配置” 会用它验证一个引导选择.
browsewm.dll ...BrowseWM Player
bthci.dll ......蓝牙类别安装程序
bthprops.cpl ...蓝牙控制面板小程序 (无线公司)
bthserv.dll ....蓝牙支持服务
btpanui.dll ....蓝牙 PAN 用户界面
-------------------------------------------------------
capesnpn.dll ...Microsoft 证书模板管理扩展
ccfgnt.dll .....Internet 配置库
certmgr.dll ....证书管理工具
certmgr.msc .... <-- 证书管理控制台.
cdosys.dll .....Microsoft CDO for Windows Library
cdfview.dll ....频道定义文件文件查看器
cewmdm.dll .....Windows CE WMDM 服务提供程序
CHARMAP.EXE ....(字符映射表). 用于显示某个字体所能显示的所有字符.
-------------------------------------------------------
以下文件没有用批处理文件删除. 需要手动删除它们:
cdplayer.exe.manifest
logonui.exe.manifest
ncpa.cpl.manifest
nwc.cpl.manifest
sapi.cpl.manifest
WindowsLogon.manifest
-------------------------------------------------------
ChCfg.exe ......?? (我拿它没办法.)
chcp.com .......用于更换系统代码页的工具
cmos.ram .......
CHKNTFS.EXE ....(NTFS 驱动器检查工具). 用于检查 NTFS 分区的完整性.
ckcnv.exe ......Cookie 转换工具
cnvfat.dll .....FAT 文件系统转换工具 DLL
comcat.dll .....Microsoft C 运行时库文件
comctl32.ocx ...Windows 通用控件 ActiveX 控件 DLL
COMP.EXE .......(比较). 用于比较两个文件之间的差别.
compatUI.dll ...CompatUI Module
compobj.dll ....OLE 2.1 16/32 互用性
-------------------------------------------------------
compstui.dll ...通用属性表用户界面DLL
没有这个文件的话, 你可能无法访问打印机属性或是打印机参数.
-------------------------------------------------------
CONFIG.TMP .....
confmsp.dll ....Microsoft IP 会议媒体服务提供程序
CONIME.EXE .....(输入法控制台). 这个输入法控制台用于转换字符.
console.dll ....控制面板控制台小程序
control.exe ....Windows 控制面板 (这个不是实际上的控制面板.)
CONVERT.EXE ....(转换). 用于将分区格式从 FAT 转为 NTFS 以及从 NTFSv4 转
为 NTFSv5.
corpol.dll .....Microsoft COM 运行时执行引擎
country.sys ....
cryptdlg.dll ...Microsoft 通用证书对话框
cryptext.dll ...加密外壳扩展
cryptnet.dll ...加密网络相关 API
CSCRIPT.EXE ....(基于命令行的脚本宿主). 能让你通过命令行运行 VBScript
和 JScript 脚本.
ctfmon.exe ....CTF 加载器 (在你安装手写识别, 语音识别, 输入法编辑器之后
, 就会在任务栏上显示一个语言栏. 还有, 如果你添加了第二种语言或是键盘布
局, 也会导致显示语言栏的.)
ctl3d32.dll ....Ctl3D 3D Windows 控件
ctl3dv2.dll ....Ctl3D 3D Windows NT(WOW) 控件
Dcache.bin .....
dbgeng.dll .....符号调试引擎
DEBUG.EXE ......(调试程序). 命令行下的调试工具.
DEFRAG.EXE .....(磁盘碎片整理). 用于整理磁盘碎片的命令行工具.
desktop.ini ....
DFRGFAT.EXE ....(FAT 碎片整理工具). 用于整理 FAT 分区上的磁盘碎片.
dgnet.dll ......Dgnet Module
dgrpsetu.dll ...Digi RealPort? 驱动升级
dgsetup.dll ....DGSETUP DLL
dhcpmon.dll ....DHCP Monitor Dll
dhcpsapi.dll ...DHCP Server API Stub DLL
DIANTZ.EXE .....(Cab 打包程序). 用于将文件打包为 .cab 文件.
digest.dll .....Digest SSPI 认证包
DLLHOST.EXE ....(COM+ 服务器进程). COM+ 进程管理器.
DLLHST3G.EXE ...(COM 代替品). 一个 COM+ 进程组件.
dmconfig.dll ...逻辑磁盘管理器配置库
DOSKEY.EXE .....(DOS 键盘). MS-DOS 5.0 键盘输入历史记录器,能提供宏.
DOSX.EXE .......(DOS 扩展器). 一个 DOS 虚拟机 (VDM), 提供标准模式.
DRWATSON.EXE ...(Dr. Watson).16位的程序错误监测和记录工具.
DRWTSN32.EXE ...(Dr. Watson 32). 32位的程序错误监测和记录工具.
dsauth.dll .....用于服务的DS 认证
edit.com .......
edit.hlp .......
EDLIN.EXE ......(编辑行). 基于 DOS 的编辑器.
emptyregdb.dat ..
encdec.dll .....XDSCodec & Encypter/Decrypter 标识滤镜
EqnClass.Dll ...Equinox 多端口串行协同安装程序
esent97.dll ....Microsoft(R) Windows NT(TM) 服务器数据库存储引擎
esentprf.dll ... 服务器数据库存储性能库
esentprf.hxx ...
esentprf.ini ...
esentutl.exe ... 服务器数据库存储工具
EUDCEDIT.EXE ...(私有字符编辑器). 一个造字程序, 可让你创建大约6400 个私
有字符.
EXE2BIN.EXE ....(Exe to Bin). 基于 DOS, 用于将 .exe 文件转为.bin 文件.
EXPAND.EXE .....(Expand). 用于展开 Cab 压缩包中的某些文件.
expsrv.dll .....Visual Basic 运行时文件
extmgr.dll .....扩展管理器
EXTRAC32.EXE ...(CAB 文件提取工具). 用于解压缩 Cab 压缩包
exts.dll .......调试器扩展
FASTOPEN.EXE ...(快速打开). 一个 DOS 工具, 用于改善系统性能, 加速访问经
常用到的文件.
fc.exe .........文件比较工具
fe客户端.dll ...Windows NT 文件加密客户端接口
find.exe .......查找字符串 (Grep) 的工具
findstr.exe .... 查找字符串 (QGrep) 的工具
FIXMAPI.EXE ....(MAPI 修复工具). 探测并解决 (MAPI) 文件出现的问题.
fldrclnr.dll ...桌面清理向导
fltlib.dll .....筛选库
fltMc.exe ......筛选管理器控制程序
fontsub.dll ....字体设置DLL
FORCEDOS.EXE ...(强制 DOS). 强制在 Windows XP 下将包含 OS/2 和 DOS 代码
的程序运行在 DOS 模式下.
format.com .....Disk Format Utility格式化命令
fsmgmt.msc .....Microsoft 通用控制台文档 (共享文件夹)
fsquirt.exe ....(属于蓝牙)
fsusd.dll ......摄像头设备 DLL
FSUTIL.EXE .....(FSUtil). 一个卷管理工具. 重分析点管理和稀疏文件控制
FTP.EXE ........(FTP). 命令行模式下的 FTP 工具.
ftsrch.dll .....Microsoft? 文本搜索
g711codc.ax ....Intel G711 CODEC
gcdef.dll ......游戏控制器的默认表
GDI.EXE ........(物理设备接口). 一个核心系统组件, 可以提供 Win16 图形设
备接口API l库, 以实现向后兼容.
glmf32.dll .....OpenGL Metafiling DLL
gpkcsp.dll .....Gemplus 加密服务提供程序
gpkrsrc.dll ....Gemplus 加密服务提供程序资源文件
graftabl.com ...代码页工具
graphics.com ...
h323.tsp .......
h323msp.dll ....Microsoft H.323 媒体服务提供程序
hccoin.dll .....USB 协同安装程序
HELP.EXE .......(帮助). 显示 Windows XP 命令的基本常规帮助信息.
hidphone.tsp ...
hlink.dll ......Microsoft 超链接库
hnetmon.dll ....家庭网络监视 DLL
hnetwiz.dll ....网络安装向导
homepage.inf ...
hotplug.dll ....用于安全移除硬件, 比如, U 盘
HSFCISP2.dll ...HSF 协同安装程序
httpapi.dll ....HTTP 协议堆栈 API
iccvid.dll .....(Cinepak? Codec) 用于显示 ’’Cinepak’’ 格式的媒体文
件. (非常古老的 AVI 编解码格式.)
IE4UINIT.EXE ...(IE 安装工具). IE 5.0 每用户安装工具.
iedkcs32.dll ...Microsoft Internet Explorer 定制 DLL
ieencode.dll ...Microsoft 字符编码
iernonce.dll ...带用户界面的扩展 RunOnce 处理库
iesetup.dll ....IOD 版本映射
ieuinit.inf ....
IEXPRESS.EXE ...(自解压和自安装创建程序). 用于创建自解压包或是自安装程
序包.
ifmon.dll ......IF Monitor DLL
igmpagnt.dll ...Microsoft IGMP subagent
ils.dll ........用户位置服务组件模块
imeshare.dll ...Microsoft Office IME 共享属性库
inetmib1.dll ...Microsoft MIB-II subagent
initpki.dll ....Microsoft 受信赖的安装和设置
input.dll ......(文本输入 DLL). 语言和区域设置需要这个文件来显示相关对
话框
inseng.dll .....(安装引擎). Active Setup 安装引擎, 允许打开或执行 cab
文件. 用于控制安装.
instcat.sql ....用于安装编录
intl.cpl .......区域和语言设置
iologmsg.dll ...IO 日志 DLL
ipconf.tsp .....
iprop.dll ......OLE 属性集
ir32_32.dll ....
ir41_32.ax .....Intel Indeo? Video 4.5
ir41_qc.dll ....Intel Indeo? 视频快速压缩编码器 (文件版本: 4.30.62.2)
ir41_qcx.dll ...Intel Indeo?视频快速压缩编码器 (文件版本: 4.30.62.2)
ir50_32.dll ....Intel Indeo? video 5.10 (文件版本: 5.2562.15.55)
ir50_qc.dll ....Intel Indeo? 5.10视频快速压缩编码器(文件版本: 5.0.63.48
)
ir50_qcx.dll ...Intel Indeo? 5.10 视频快速压缩编码器 (文件版本:
5.0.63.48 )
irclass.dll ....Infrared Class 协同安装程序
isrdbg32.dll ...ISR 32 位调试引擎
ivfsrc.ax ......Intel Indeo? 视频IVF 源滤镜 5.10
itircl.dll .....Microsoft? InfoTech IR Local DLL
itss.dll .......Microsoft? InfoTech 存储系统库文件
iyuv_32.dll ....Intel Indeo(R) Video YUV Codec (文件版本:
5.1.2600.2180)
jet500.dll .....JET 引擎 DLL
jgaw400.dll ....JG 音频接口 DLL (AOL 文件)
jgdw400.dll ....JG ART DLL (AOL 文件)
jgmd400.dll ....JG MIDI Player DLL (AOL 文件)
jgpl400.dll ....JG ART Player DLL (AOL 文件)
jgsd400.dll ....JG ART DLL (AOL 文件)
jgsh400.dll ....JG 幻灯片播放器 DLL (AOL 文件)
jobexec.dll ....Active Setup 任务执行程序
joy.cpl ........游戏控制器控制面板小程序
jsproxy.dll ....JScript 代理自动配置
kd1394.dll .....核心调试程序IEEE 1394 HW Extension DLL
kb16.com .......
key01.sys ......
keyboard.sys ...
keymgr.dll .....存储的用户名和密码
kmddsp.tsp .....
KRNL386.EXE ....(Kernel 386). 包含了用于 Win16 增强模式下的核心Kernel
例程.
l3codecp.acm ...MPEG Audio Layer-3 Codec for MSACM (系统默认的 MP3 解码
器)
LABEL.EXE ......(卷标). 用于显示, 编辑, 或更改驱动器的卷标.
lanman.drv .....
laprxy.dll .....Windows Media Logagent Proxy
licmgr10.dll ...ActiveX 许可管理器
LIGHTS.EXE .....(Lights). 在 Win 9x 下通过监视 COM 端口来提供对于调制解
调器状态的设置.
LNKSTUB.EXE ....(Win95-Winnt 迁移工具). 用于把 Windows 95 升级至
Windows.
loadfix.com ....
localui.dll ....本地监视用户界面 DLL
LOCATOR.EXE ....(Locator). 向 Windows XP 的环境添加对于 Remote
Procedure Calls (RPCs) 的支持.
loghours.dll ...计划对话框
lpk.dll ........会话注销工具
lusrmgr.msc ....lusrmgr.msc = 本地用户和用户组. 无法在 Home 版 XP上使用
这个管理工具. 用于管理电脑上的用户帐号.
MAKECAB.EXE ....(Cab 文件创建工具). 用于创建 .cab 压缩包文件.
mapi32.dll .....Extended MAPI 1.0 for Windows NT
mcastmib.dll ...Microsoft 多播子代理
mcd32.dll ......OpenGL MCD 客户端 DLL
mcdsrv32.dll ...MCD 服务器
mchgrcoi.dll ...中级更改器协同安装程序
mciavi32.dll ... Windows MCI 视频驱动
mciole16.dll ...MCIOLE16 - OLE Handler DLL for MCI Objects
mciole32.dll ...MCI OLE DLL
mciwave.dll ....MCI 波形音频驱动
mdhcp.dll ......Microsoft MDHCP 客户端 COM 接口
mdwmdmsp.dll ...用于 MDM 驱动的WMDM 服务提供程序驱动
MEM.EXE ........(Memory). 一个用于显示当前内存状态的命令行工具.
mf3216.dll .....32 位至 16 位元文件的转换 DLL
mfc40.dll ......MFCDLL 共享库 - 零售版
mfc40u.dll .....MFCDLL 共享库 - 零售版
mfcsubs.dll ....
MSCTFIME.IME ...
mgmtapi.dll ....Microsoft SNMP 管理器 API (使用 WinSNMP)
mib.bin ........
MIGPWD.EXE .....(迁移 dll). 用于 Windows 95 至 Windows NT 的迁移工具.
miglibnt.dll ...NT 迁移支持 dll
mlang.dat ......
mll_hp.dll .....HP 媒体卷标库
mll_mtf.dll ....MTF (Microsoft 磁带格式) 媒体卷标库
mll_qic.dll ....QIC113媒体卷标库
mmdrv.dll ......多媒体核心支持驱动
mobsync.dll ....Microsoft 同步管理器
MOBSYNC.EXE ....(脱机工作同步程序). 同步脱机网站.
mode.com .......DOS 命令
modex.dll ......ModeX 显示驱动
more.com .......Dos 命令
moricons.dll ...Windows NT 安装图标资源库
MOUNTVOL.EXE ...(卷加载器). 创建, 列出以及修改你的存储卷加载点.
mpg4ds32.ax ....(文件版本: 8.0.0.4487). Microsoft MPEG-4 视频解码器
mplay32.exe ....Windows Media Player 5.1 (非常古老的媒体播放器.)
MRINFO.EXE .....(多播信息). 用于查询多播路由器接口的命令行工具.
msacm.dll ......Microsoft 音频压缩管理器
msaatext.dll ... Active Accessibility 文本支持
msadds32.ax ....(文件版本: 8.0.0.4487). Windows Media 音频解码器
msafd.dll ......Microsoft Windows Sockets 2.0 服务提供程序
msapsspc.dll ...32 位平台下的 DPA 客户端
msaudite.dll ...安全审核事件 DLL
mscat32.dll ....MSCAT32 Forwarder DLL
MSCTFP.dll .....MSCTFP Server DLL
msdadiag.dll ...Microsoft Data Access - 内建诊断
msdart.dll .....Microsoft Data Access - OLE DB 例行运行时
msdatsrc.tlb ...
msdtcprf.ini ...
msencode.dll ...Microsoft 字符编码器
msieftp.dll ....Microsoft Internet Explorer FTP 文件夹外壳扩展
msimsg.dll .....Windows? Installer 国际消息
mslbui.dll .....
msnsspc.dll ....MSN Internet Access
msobjs.dll .....系统对象审核名称
MsPMSNSv.dll ...Microsoft 媒体设备服务提供程序
msr2c.dll ......Microsoft Forms DLL
msr2cenu.dll ...Microsoft Forms DLL
msratelc.dll ...Internet 分级和本地用户管理DLL
msrating.dll ...Internet 分级和本地用户管理DLL
msrclr40.dll ...Microsoft Jet公文包调解程序
msrd2x40.dll ...Microsoft (R) Red ISAM
msrd3x40.dll ...Microsoft (R) Red ISAM
msrecr40.dll ...Microsoft Jet公文包调解程序资源库
msrepl40.dll ...Microsoft 复制库
msrle32.dll ....Microsoft RLE 压缩器
msscds32.ax ....(文件版本: 8.0.0.4487). Microsoft 屏幕视频解压器
msscript.ocx ...Microsoft (r) 脚本控件
mssign32.dll ...Microsoft 受信赖签证 APIs
mssip32.dll ....MSSIP32 Forwarder DLL
mstime.dll .....Microsoft (R) 用于 HTML 的定时交互多媒体扩展
msswch.dll .....(屏幕键盘). 用于 msswchx.exe.
msswchx.exe ....msswchx (属于屏幕键盘.)
msutb.dll ......MSUTB 服务器 DLL
-------------------------------------------------------
msvbvm50.dll ...Visual Basic 虚拟机 (文件版本: 5.2.82.44)
这是个老版本的 VB 虚拟机. msvbvm60.dll (也是 VB 虚拟机)文件版本:
6.0.96.90
----------------------------------------------
msvcirt.dll ....Windows NT IOStreams DLL
msvcp50.dll ....Microsoft (R) C++ 运行时库文件
msvcrt20.dll ...Microsoft? C运行时库文件
msvcrt40.dll ...VC 4.x CRT DLL (向后兼容 msvcrt.dll)
msvideo.dll ....Microsoft Video for Windows DLL
msxml.dll ......XML OM for Win32
msxml2.dll .....XML OM for Win32
msxml2r.dll ....XML2 资源文件
msxmlr.dll .....XML 资源文件
msyuv.dll ......Microsoft UYVY 视频解压器
mtxoci.dll .....对于Oracle 的 Microsoft 数据库支持 DLL
mydocs.dll .....我的文档文件夹用户界面
ncxpnt.dll .....Netork (不是 Network) 安装向导支持 DLL
ndptsp.tsp .....
NET.EXE ........(Network). 用于管理, 配置和查看与网络相关的信息, 例如
net use, net print, net user, 等等.
net.hlp ........
NET1.EXE .......(Network). 与 NET.EXE 的功能相同.
netapi.dll .....Microsoft 网络动态链接库
neth.dll .......网络帮助消息 DLL
netplwiz.dll ...映射网络驱动器向导
netsetup.cpl ...网络安装向导控制面板小程序
NETSETUP.EXE ...(网络安装向导). 通过软盘帮你配置电脑网络.
netui0.dll .....NT LM UI Common Code - GUI Classes (文件版本:
5.1.2600.2180)
netui1.dll .....NT LM UI Common Code - GUI Classes (文件版本:
5.1.2600.2180)
netui2.dll .....NT LM UI Common Code - GUI Classes (文件版本:
5.1.2600.0) <-- 版本要比 netui1.dll 老?
netrap.dll .....网罗远程管理协议DLL
所有的 "noise", "wbcache" 和 "wbdbase" 文件 (不同语言下的文件) 都可被删
除.
(它们大都是索引服务用到的文件, 可通过 nLite 删除)
(下列文件列在了注册表中的这个位置:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ContentIndex/Langua
ge)
noise.chs <<简体中文
noise.cht <<繁体中文
noise.dat
noise.deu <<...注意: ...DEU = 这是德国的
noise.eng
noise.enu <<英文
noise.esn < noise.fra < noise.ita < noise.nld < noise.sve < noise.tha
wbcache.deu
wbcache.enu <<英文
wbcache.esn < wbcache.fra < wbcache.ita < wbcache.nld < wbcache.sve <
wbdbase.deu
wbdbase.enu <<英文
wbdbase.esn < wbdbase.fra < wbdbase.ita < wbdbase.nld < wbdbase.sve <
-------------------------------------------------------
npptools.dll ...NPP 工具助手 DLL
nscompat.tlb ...
NSLOOKUP.EXE ...(域名服务器查寻). 用于显示 DNS 服务器的诊断和统计信息.
ntlsapi.dll ....Microsoft? 许可服务器接口 DLL
ntdos404.sys ...
ntdos411.sys ...
ntdos412.sys ...
ntdos804.sys ...
ntimage.gif ....
ntio404.sys ....
ntio411.sys ....
ntio412.sys ....
ntio804.sys ....
ntlanman.dll ...Microsoft? 局域网管理器
ntlanui.dll ....
ntlanui2.dll ...网络对象外壳用户界面
NTSD.EXE .......(符号调试器). 系统出问题时, 这个疑难解答工具就会详细列
出系统状态.
ntsdexts.dll ... Windows 2000 下的符号调试工具
nwprovau.dll ...用于 NetWare 提供程序和认证的客户端服务
NTVDM.EXE ......(NT DOS 虚拟机). 提供用于 DOS 程序和Windows-on-Windows
(WOW-支持 Win16) 的虚拟机.
ntvdmd.dll .....NTVDMD.DLL
oakley.dll .....Oakley 键盘管理器
objsel.dll .....对象挑选对话框
occache.dll ....对象控件查看器
OSUNINST.EXE ....(卸载工具). 用于卸载Windows XP, 并将其还原到升级前使用
的Windows 操作系统. 可在安全模式下运行于命令行模式.
ole2.dll .......OLE 2.1 16/32相互操作库
ole2disp.dll ...OLE 2.1 16/32相互操作库
ole2nls.dll ....OLE 2.1 16/32相互操作库
oleprn.dll .....Oleprn DLL
p2p.dll ........点对点群
p2pgasvc.dll ... 点对点群认证服务
p2pgraph.dll ... 点对点图形
p2pnetsh.dll ... 点对点NetSh 助手
p2psvc.dll ..... 点对点服务
PACKAGER.EXE ...(Object Packager). 用于在文档中创建嵌入数据的图标链接.
panmap.dll .....PANOSE(tm) 字体映射器
paqsp.dll ......PaqSP Module
pautoenr.dll ...自动注册 DLL
pcl.sep ........
PENTNT.EXE .....(NT Pentium 测试工具). 一个用于检测你的系统是否有
Pentium 浮点运算错误的命令行工具. (我还把在 “性能” 中的快捷方式删掉了
).
pifmgr.dll .....Windows NT PIF 管理器图标资源库
pjlmon.dll .....PJL 语言监视器
plustab.dll ....效果控制面板扩展
pmspl.dll ......Microsoft 局域网管理器 2.1 网络动态
polstore.dll …策略存储 dll
powercfg.exe ...电源设置命令行工具
pnrpnsp.dll ....PNRP 命名空间提供程序
proctexe.ocx ...Intel 程序纹理
prodspec.ini ...
PROGMAN.EXE ....(程序管理器). 可用于替换 Windows XP 资源管理器的外壳.
它的主界面基于 Windows 3.x, Windows for Workgroups, 和 Windows NT 3.51.
pschdcnt.h .....
pschdprf.dll ...Microsoft? Windows(TM) PSched 性能监视器
pschdprf.ini ...
pscript.sep ....
psnppagn.dll ... NPPAgent对象的 DCOM 代理
pubprn.vbs .....
proquota.exe ...ProQuota 能让你设置一个用户配置文件的最大大小.
PROXYCFG.EXE ...(代理配置工具). 一个用于查看和更改你当前代理设置的命令行工具.
qmgrprxy.dll ...后台智能传输服务代理
qosname.dll ....Microsoft Windows GetQosByName 服务提供程序
query.dll ......目录索引工具 DLL
rdpdd.dll ......RDP 显示驱动
RECOVER.EXE ....(还原). 一个用于从有问题的驱动器中还原可读数据的命令行工具.
REDIR.EXE ......(Redirector).Win16 网络重定向工具.
remotesp.tsp...
REG.EXE ........(注册表控制台). 一个用于查询和修改注册表的命令行工具.
REGEDT32.EXE ...(注册表编辑器). 一个 32 位的注册表工具, 可用于设置注册
表中相关项值的安全权限. 在 Windows XP 中, 原本带有更多功能的
regedt32.exe 已被合并regedit.exe 中了. Regedt32.exe 现在只不过相当于一
个快捷方式. 如果你运行 regedt32.exe, 那么系统就会自动启动 regedit.exe

三 : 哈勃分析系统解密:中招敲诈木马不用交赎金

  近日,破坏力极强的加密磁盘进而敲诈的木马Petya迎来克星。据外媒报道,国外安全人员针对此木马开发了密码破解工具,在不支付赎金的情况下能够获取绝大部分解密密码,并成功将被不法分子加密的磁盘还原正常。

  据哈勃分析系统(https://habo.qq.com/)进行测试,想要破解被不法分子加密的硬盘只需要六步:

  一,先将被加密的硬盘从受害电脑上取下,接入一个能正常运行的电脑。

  二,在新电脑上运行如下工具:http://download.bleepingcomputer.com/fabian-wosar/PetyaExtractor.zip ,使用此工具获取硬盘中必要的解密信息。

  

 

  图1:破解工具安装界面

  三,登录网站:https://petya-pay-no-ransom.herokuapp.com/ 或 https://petya-pay-no-ransom-mirror1.herokuapp.com/ ,使用上一步工具中的按钮“Copy Sector”和“Copy Nonce”,将复制出的内容分别粘贴到网站的对应文本框中,然后点击页面上的“Submit”按钮。

  

 

  

 

  图2:解密数据过程截图

  四,等待网站给出破解结果。绝大部分密码可以在30秒内破解出来,但是不排除部分情况下有可能破解失败。

  五,如果上一步得到了有效的密码,将硬盘重新接入到受害电脑上,开机并等待出现输入key的敲诈画面,并输入上一步中得到的密码,然后等待木马自动恢复硬盘数据。

  

 

  图3:输入破解的密码

  六、当屏幕上提示“Please reboot your computer!”时,即可重启电脑,这时硬盘解密已经完成,可以正常进入操作系统并使用。

  

 

  图4:出现上述字样即完成破解

  据了解,敲诈类木马Petya特点是首先修改系统MBR引导扇区,强制重启后执行引导扇区中的恶意代码,加密硬盘数据后显示敲诈信息,最后通过匿名网络索取比特币。此前,哈勃分析系统(https://habo.qq.com/)已经获取到了木马样本,拆解整个敲诈过程对用户提出警示和提醒。目前,上述破解文件经过哈勃分析系统检测均安全,不幸中招的用户可以放心使用。

四 : 哈勃分析系统整装再出发 打造用户身边的“安全专家”

11月2日,腾讯电脑管家旗下的国内知名安全辅助平台“哈勃分析系统”改版升级上线。升级后的“哈勃分析系统”将加强精准鉴定、极速响应、全网监控的能力,并依靠海量分析集群、基于大数据处理的智能检测技术和业内顶尖的反病毒分析团队三大“法宝”保障用户网络安全。

哈勃分析系统 腾讯电脑管家

(“哈勃分析系统”改版升级上线)

据了解,“哈勃分析系统”是“腾讯反病毒实验室”自主研发的安全辅助平台,升级后能够提供精准鉴定、极速响应和全网监控的服务。具体来说,首先通过独有集群智能系统,深度挖掘病毒恶意行为,样本分析准确率99.9%以上,实现精准鉴定。其次,依托海量数据解决方案,实时输出文件分析结论,保证平台能够极速响应。最后,云端平台具备7*24小时提供全面服务的能力,全网监控随时随地多维度保护用户的安全。

为实现上述服务,“哈勃分析系统”则主要依靠海量分析集群、基于大数据处理的智能检测技术和业内顶尖的反病毒分析团队三大“法宝”。其中,用户主动上传的样本和腾讯反病毒实验室深度挖掘的恶意软件,形成海量分析集群。云端平台海量数据处理后,智能检测技术提高识别速度。另外,哈勃系统的开发团队全部来自“腾讯反病毒安全实验室”,其核心成员均有10年以上奋战在安全第一线的实战经验,是保证用户安全的坚强后盾。

据悉,“哈勃分析系统”在2014年5月30日正式上线以来,多次针对业内安全事件第一时间做出预警、发声。例如在2015年7月,“哈勃分析系统”针对“成绩单”木马诈骗一案,协助警方并提供线索,帮助警方迅速破案。值得注意的是,国际知名病毒分析网站VirSCAN在2014年11月5日开始使用“哈勃分析系统”的平台能力,“哈勃分析系统”也成为VirSCAN至今唯一一家对用户提供详细行为分析报告的分析平台。

目前,“哈勃分析系统”(官方网站:http://habo.qq.com)已上线哈勃APP检测工具、锁屏敲诈木马专杀工具、FBI敲诈病毒专杀工具和liNE杀手专杀工具,提供一键检测手机上安装APP安全性及病毒查杀等服务。用户面对未知的文件,也可以通过简单的上传操作,由“哈勃分析系统”分析获得样本基本信息、可能产生的行为、安全等级等信息,实现更便捷识别恶意文件,真正成为用户身边的安全专家。

五 : Sys文件系统分析

还记得上篇讲到的platform总线、设备、驱动的知识??这里我们先来看一段documentation/filesystems/sysfs.txt里关于sysfs文件系统的描述:

sysfs is a ram-based filesystem initially based on ramfs.It provides a means to export kernel data structures,their attributes,and the linkages between them to userspace.

 sysfs 文件系统是基于ram文件系统的,

这里注意:

ramdisk 文件系统基于磁盘模拟技术,实际文件系统是ex2 ex3等

sysfs是一种基于ram文件系统,和proc一样。[www.61k.com)

Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。

其实,就是 在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等。

好了,下面直接去sys目录看看吧!!!

localhost:/sys#ls

/sys/ block/ bus/ class/ devices/ firmware/ kernel/ module/ power/

Block目录:包含所有的块设备,进入到block目录下,会发现下面全是link文件,link到sys/device/目录下的一些设备。

Devices目录:包含系统所有的设备,并根据设备挂接的总线类型组织成层次结构

Bus目录:包含系统中所有的总线类型

Drivers目录:包括内核中所有已注册的设备驱动程序

Class目录:系统中的设备类型(如网卡设备,声卡设备等)。去class目录中看一下,随便进到一个文件夹下,会发现该文件夹下的文件其实是连接文件,link到/sys/device/.http://www.cnblogs.com/...下的一个设备文件。 可以说明,其实class目录并不会新建什么设备,只是将已经注册的设备,在class目录下重新归类,放在一起。

但是,你可能根本没有去关心过sysfs的挂载过程,她是这样被挂载的。
mount -t sysfs sysfs /sys

但是sys文件是根据什么依据来创建其内容呢?他的信息来源是什么呢?

下面来分析sys的信息来源。

Linus设备底层模型

Kobject

应该说每个Kobject结构都对应一个 目录。for example:/sys/bus/pci/drivers/serial/ 路径, serial这个目录就是由一个kobject 结构体 来表示的。由此可见,Kobject是用来表示 直接对应着一个 设备,或设备驱动 的目录。Kobject包含了 这个目录的一些信息,如:目录名,父目录,设备名称等等一些信息。当然,如果Kobject用来表示一个目录,那么他所包含的信息是差不多了,但是Kobject表示的目录是用来描述某一个设备/设备驱动 的。所以仅仅Kobject这个结构体还不能完全的描述这个设备/设备驱动,再所以,Kobject这个结构体不会单独使用,一般都会包含在另一个结构体中,用网络上的话说就是包含在一个容器中。这个容器可以是:device结构体,device_drive结构体。现在层次就很明显了,device/device_drive来表示一个设备/设备驱动,当然包含了这个设备/设备驱动的信息,并且还包含了这个驱动所对应的目录的信息,Kobject结构。

当然device/device_drive在另外一层的东西了,后面再分析。我们在这里就先分析Kobject结构。

struct kobject {
const char *name; //目录的name
struct list_head entry; //Kobject插入到某个链表的指针。
struct kobject *parent; //父目录,刚才所述kobject所表示的是设备/设备驱动目录,但为什么他的父目录也用kobject来表示呢?后面讲解。
struct kset *kset; //kobject上上级目录可能是Kset,这个表示。 这个变量和parent有些相似的地方。 可以从kset_register函数中看出些端倪。
struct kobj_type *ktype;
struct sysfs_dirent *sd;
struct kref kref; //被引用的次数
unsigned int state_initialized:1;
unsigned int state_in_sysfs:1;
unsigned int state_add_uevent_sent:1;
unsigned int state_remove_uevent_sent:1;
unsigned int uevent_suppress:1;
};



注意:在kenerl中,如kref,前面讲到的 page_reference变量。 都用来表示被引用。 所以 以后看变量的时候要注意看 ref或reference,来表示被引用。

相关函数

void kobject_init(struct kobject * kobj);kobject初始化函数。

int kobject_set_name(struct kobject *kobj, const char *format, ...);设置指定kobject的名称。

struct kobject *kobject_get(struct kobject *kobj);将kobj 对象的引用计数加1,同时返回该对象的指针。

void kobject_put(struct kobject * kobj); 将kobj对象的引用计数减1,如果引用计数降为0,则调用kobject release()释放该kobject对象。

int kobject_add(struct kobject * kobj);将kobj对象加入Linux设备层次。挂接该kobject对象到kset的list链中,增加父目录各级kobject的引用计数,在其parent指向的目录下创建文件节点,并启动该类型内核对象的hotplug函数。

int kobject_register(struct kobject * kobj);kobject注册函数。通过调用kobject init()初始化kobj,再调用kobject_add()完成该内核对象的注册。

void kobject_del(struct kobject * kobj);从Linux设备层次(hierarchy)中删除kobj对象。

void kobject_unregister(struct kobject * kobj);kobject注销函数。与kobject register()相反,它首先调用kobject del从设备层次中删除该对象,再调用kobject put()减少该对象的引用计数,如果引用计数降为0,则释放kobject对象。

kobject下的结构体描述:

struct kobj_type

{

 void (*release)(struct kobject *);

struct sysfs_ops * sysfs_ops;

struct attribute ** default_attrs;

 };

Kobj type数据结构包含三个域:一个release方法用于释放kobject占用的资源;一个sysfs ops指针指向sysfs操作表和一个sysfs文件系统缺省属性列表。

Sysfs操作表包括两个函数store()和show()。当用户态读取属性时,show()函数被调用,该函数编码指定属性值存入buffer中返回给用户态;而store()函数用于存储用户态传入的属性值。

attribute struct attribute

 {

char * name;

struct module * owner;

mode_t mode;

};

attribute属性。它以文件的形式输出到sysfs的目录当中。在kobject对应的目录下面。文件 名就是name。文件读写的方法对应于kobj type中的sysfs ops。

Kset

像刚才所说,每个Kobject结构都对应一个 目录。for example:/sys/bus/pci/drivers/serial/ 路径, /serial/这个目录由一个kobject 结构体 来表示的。但是/serial/的上一级目录/drivers/如何表示呢?那么就出现了Kset这个结构体。

  1. /** 
  2.  * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem. 
  3.  * 
  4.  * A kset defines a group of kobjects.  They can be individually 
  5.  * different "types" but overall these kobjects all want to be grouped 
  6.  * together and operated on in the same manner.  ksets are used to 
  7.  * define the attribute callbacks and other common events that happen to 
  8.  * a kobject. 
  9.  * 
  10.  * @list: the list of all kobjects for this kset 
  11.  * @list_lock: a lock for iterating over the kobjects 
  12.  * @kobj: the embedded kobject for this kset (recursion, isn't it fun...) 
  13.  * @uevent_ops: the set of uevent operations for this kset.  These are 
  14.  * called whenever a kobject has something happen to it so that the kset 
  15.  * can add new environment variables, or filter out the uevents if so 
  16.  * desired. 
  17.  */  
  18. struct kset {  
  19.     struct list_head list;  //由于Kset下会有很多个Kobject的目录,所以使用一个list将他们全部link起来。  
  20.     spinlock_t list_lock;   //锁机制  
  21.     struct kobject kobj;    //Kest本质上来说,也是个目录,所以他也使用了Kobject,来表示他自己的这个目录  
  22.     struct kset_uevent_ops *uevent_ops;    //由于Kset是将很多的有公共特性的Kobject集中到一起,所以这个变量操作,在他的目录下的一些共性操作。  
  23. };  

subsystem

在以前的版本中,还有subsystem结构,但 是在现在的版本中都已经去掉了,用Kset来代替

1 struct subsystem {
2 struct kset kset;
3
4 struct rw semaphore rwsem;
5
6 };

由上面声明可以看出,完全可以让Kset来代替subsystem结构。

总结:

1,在sys下,表示一个目录使用的结构体是 Kobject,但是在linux的内核中,有硬件的设备 和 软件的驱动,在sys下都需要用一个目录来表示。 单纯的一个Kobject结构无法表示完全,增加了容器,来封装Kobject。 即下面要将的:device和drive_device结构。

2, 最底层驱动目录的上一层目录,从sys角度上来说,他依然是个目录,所以他也有Kobjec这个变量。但是从他的意义上讲,他将 一些有公共特性Kobjec 的 device/driver_device结构组织到了一起,所以除了有Kobject这个变量外,他又添加了一些变量,组成了Kset这个结构来表示这一级的目录。但是仅仅是用Kset来表示了这一级的目录,和1,一样,仅仅表示一个目录是不够的,在linux内核中,需要他在软件上有个映射。所以,也将Kset进行了封装,形成了 bus_type这个结构。

3, 从1 ,2,的解释可以看出,应为kobject在Kset的目录下,那么 device/device_driver 就在 bus_type结构下。所以,linux驱动模型中,驱动和设备都是挂在总线下面的。

4, 如上所述,Kset的意义:表示一个目录(由结构体下的Kobject来完成),并且这个目录下的所有目录有共同的特性(所以说,Kset表示的目录下,不一定非要是Kobject街头的,也可以是Kset结构的。即:Kset嵌套Kset)。所以使用Kset来代替了以前的 subsystem结构。

贴两张图来形象了解一下:

1, Kset和Kobject的连接图(from linux那些事之我是sys)

drivers文件夹 Sys文件系统分析

2,整个sys目录的结构体表示图:(from ULK--当然,在这里subsystem结构要换成Kset了,但我个人认为,以前的subsystem结构上会更清晰,不是吗?)

(但这边有个问题。。。Kobject通过下面的attribute来建立目录下的文件,但我看到目录下有好几个文件,难道是根据一个attribute来建立好几个文件?疑惑ing,好像attribute是个指针,还能当数组首地址?bus_add_attrs函数中如是说)

drivers文件夹 Sys文件系统分析

设备模型的上层容器

刚才讲了Kset和Kobject结构体,都是用来表示 sys下的目录结构的。下面来讲驱动中封装这些结构的容器。

总线bus

bus_type结构: 刚才上面已经将的够多的了,闲话少说,直接上code。

1 struct bus_type {
2 const char *name; //总线的名称,这个名字理论上并不是sys/bus/下的那些目录的目录名。那些目录的目录名应该是在下面变量 subsys_private p.sbusys的name变量中。但是往往那个name是由这个name赋值的,所以就一样的。但这里要明白的是(还是上面的老生常谈),表示目录是由Kset.Kobject这个东西来表示的。
3 struct bus_attribute *bus_attrs; //根据后面的bus_add_attrs函数分析,这些个属性可能是数组
4 struct device_attribute *dev_attrs;
5 struct driver_attribute *drv_attrs; //bus device driver的属性,一些操作导入导出的属性,等后面再分析。
6
7 int (*match)(struct device *dev, struct device_driver *drv);
8 int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
9 int (*probe)(struct device *dev);
10 int (*remove)(struct device *dev);
11 void (*shutdown)(struct device *dev);
12
13 int (*suspend)(struct device *dev, pm_message_t state);
14 int (*resume)(struct device *dev); //总线的操作
15
16 const struct dev_pm_ops *pm; //power manage 的operations
17
18 struct subsys_private *p; 见下面:
19 };

1 struct subsys_private { //为了保持和上面的代码的连贯,我将这个结构体的注释部分放到下面了。注释还是比较清楚的,不解释
2 &nbsp;struct kset subsys;
3 &nbsp;struct kset *devices_kset;</p><p>&nbsp;struct kset *drivers_kset;
4 &nbsp;struct klist klist_devices;
5 &nbsp;struct klist klist_drivers;
6 &nbsp;struct blocking_notifier_head bus_notifier;
7 &nbsp;unsigned int drivers_autoprobe:1;
8 &nbsp;struct bus_type *bus;</p><p>&nbsp;struct list_head class_interfaces;
9 &nbsp;struct kset glue_dirs;
10 &nbsp;struct mutex class_mutex;
11 &nbsp;struct class *class;
12 };
13 &nbsp;* struct subsys_private - structure to hold the private to the driver core portions of the bus_type/class structure.
14 &nbsp;*
15 &nbsp;* @subsys - the struct kset that defines this subsystem
16 &nbsp;* @devices_kset - the list of devices associated
17 &nbsp;*
18 &nbsp;* @drivers_kset - the list of drivers associated
19 &nbsp;* @klist_devices - the klist to iterate over the @devices_kset
20 &nbsp;* @klist_drivers - the klist to iterate over the @drivers_kset
21 &nbsp;* @bus_notifier - the bus notifier list for anything that cares about things
22 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on this bus.
23 &nbsp;* @bus - pointer back to the struct bus_type that this structure is associated
24 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with.
25 &nbsp;*
26 &nbsp;* @class_interfaces - list of class_interfaces associated
27 &nbsp;* @glue_dirs - "glue" directory to put in-between the parent device to
28 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; avoid namespace conflicts
29 &nbsp;* @class_mutex - mutex to protect the children, devices, and interfaces lists.
30 &nbsp;* @class - pointer back to the struct class that this structure is associated
31 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with.
32 &nbsp;*
33 &nbsp;* This structure is the one that is the actual kobject allowing struct
34 &nbsp;* bus_type/class to be statically allocated safely.&nbsp; Nothing outside of the
35 &nbsp;* driver core should ever touch these fields.
36 &nbsp;*/</p>

这个结构体用来描述比如:/sys/bus/pci pci总线,/sys/bus/platform platform总线等。

另外:从这个结构体分析下来,整个bus的目录结构都很清楚了eg:

1,可以找到总线下的设备目录: bus_type bus ---> subsys_private p---->Kest devices_kset

2,可以找到总线下的设备驱动目录: bus_type bus ---> subsys_private p---->Kest driver_kset

另外,找到的也只是目录,因为找到的仅仅是Kset结构。


设备device

首先明白,device这个结构并不是直接挂在bus下的,可以到/sys/bus/platform/device下随便看一下,发现里面的都是link文件,link到/sys/device/下。所以真正的device结构体的在/sys/device下的。

  1. struct device {  
  2.     struct device       *parent;  //设备的父设备指针,那么就是说device的目录也是可以嵌套的?到/sys/device/platform/serial8250目录下看看,竟然还存在着 tty/ 目录,是不是这样嵌套的呢??天知道。。。。。  
  3.   
  4.     struct device_private   *p;  
  5.   
  6.     struct kobject kobj;        //这个就是说了好久的 Kobject  
  7.     const char      *init_name; /* initial name of the device */  
  8.     struct device_type  *type;  
  9.   
  10.     struct mutex        mutex;  /* mutex to synchronize calls to 
  11.                      * its driver. 
  12.                      */  
  13.   
  14.     struct bus_type *bus;       /* type of bus device is on *///他所在的总线的类型  
  15.     struct device_driver *driver;   /* which driver has allocated this  //支持的驱动 
  16.                        device */  
  17.     void        *platform_data; /* Platform specific data, device 
  18.                        core doesn't touch it */  
  19.     struct dev_pm_info  power;  
  20.     struct dev_power_domain *pwr_domain;  
  21.   
  22. #ifdef CONFIG_NUMA  
  23.     int     numa_node;  /* NUMA node this device is close to */  
  24. #endif  
  25.     u64     *dma_mask;  /* dma mask (if dma'able device) */  
  26.     u64     coherent_dma_mask;/* Like dma_mask, but for 
  27.                          alloc_coherent mappings as 
  28.                          not all hardware supports 
  29.                          64 bit addresses for consistent 
  30.                          allocations such descriptors. */  
  31.   
  32.     struct device_dma_parameters *dma_parms;  
  33.   
  34.     struct list_head    dma_pools;  /* dma pools (if dma'ble) */  
  35.   
  36.     struct dma_coherent_mem *dma_mem; /* internal for coherent mem 
  37.                          override */  
  38.     /* arch specific additions */  
  39.     struct dev_archdata archdata;  
  40.   
  41.     struct device_node  *of_node; /* associated device tree node */  
  42.   
  43.     dev_t           devt;   /* dev_t, creates the sysfs "dev" */  
  44.   
  45.     spinlock_t      devres_lock;  
  46.     struct list_head    devres_head;  
  47.   
  48.     struct klist_node   knode_class;  
  49.     struct class        *class;  
  50.     const struct attribute_group **groups;  /* optional groups */  
  51.   
  52.     void    (*release)(struct device *dev);  
  53. };  


设备driver

  1. struct device_driver {  
  2.     const char      *name;  
  3.     struct bus_type     *bus;  
  4.   
  5.     struct module       *owner;  
  6.     const char      *mod_name;  /* used for built-in modules */  
  7.   
  8.     bool suppress_bind_attrs;   /* disables bind/unbind via sysfs */  
  9.   
  10.     const struct of_device_id   *of_match_table;  
  11.   
  12.     int (*probe) (struct device *dev);  
  13.     int (*remove) (struct device *dev);  
  14.     void (*shutdown) (struct device *dev);  
  15.     int (*suspend) (struct device *dev, pm_message_t state);  
  16.     int (*resume) (struct device *dev);  
  17.     const struct attribute_group **groups;  
  18.   
  19.     const struct dev_pm_ops *pm;  
  20.   
  21.     struct driver_private *p;  
  22. }; 

设备模型的注册等操作:

总线的操作:

用户可以自己注册一个总线,然后将自己喜欢的设备和驱动挂载到下面。但是linux 2.6中,有个默认的总线,platform总线。我们就分析一下这个总线。

小记:随手在Source insight里敲了个 platform_bus_init,结果的真的有这个函数,再看一下谁调用他了吧? 竟然是drive_init。啊。。终于找到组织了,在start_kernel的最后一步后调用这个drive_init了。

  1. int __init platform_bus_init(void)  
  2. {  
  3.     int error;  
  4.   
  5.     early_platform_cleanup();  //清除platform总线上的设备?不确定,,,好像就是将early_platform_device_list这个里的内容清空。  
  6.   
  7.     error = device_register(&platform_bus);  //设备注册。哦,linux将platform也当成了一个设备,他在/sys/device目录下。当然,以后会在platform这个设备下再建立其他的设备,回顾刚才介绍device结构体时候有个parent变量,应该就是用在这里的。具体device_register这个函数,后面再介绍  
  8.     if (error)  
  9.         return error;  
  10.     error =  bus_register(&platform_bus_type);  //总线的注册。  
  11.     if (error)  
  12.         device_unregister(&platform_bus);  
  13.     return error;  
  14. }  

  1.  * bus_register - register a bus with the system. 
  2.  * @bus: bus. 
  3.  * 
  4.  * Once we have that, we registered the bus with the kobject 
  5.  * infrastructure, then register the children subsystems it has: 
  6.  * the devices and drivers that belong to the bus. 
  7.  */  
  8. int bus_register(struct bus_type *bus)  
  9. {  
  10.     int retval;  
  11.     struct subsys_private *priv;  
  12.   
  13.     priv = kzalloc(sizeof(struct subsys_private), GFP_KERNEL);  
  14.     if (!priv)  
  15.         return -ENOMEM;  
  16.   
  17.     priv->bus = bus;  
  18.     bus->p = priv;  
  19.   
  20.     BLOCKING_INIT_NOTIFIER_HEAD(&priv->bus_notifier);       //bus_notifier就是个读写信号量,和RCU机制,这里进行初始化  
  21.   
  22.     retval = kobject_set_name(&priv->subsys.kobj, "%s", bus->name);  //设置name,这个name会显示在sys/bus/下  
  23.     if (retval)  
  24.         goto out;  
  25.   
  26.     priv->subsys.kobj.kset = bus_kset;  
  27.     priv->subsys.kobj.ktype = &bus_ktype;  
  28.     priv->drivers_autoprobe = 1;  
  29.   
  30.     retval = kset_register(&priv->subsys);               //这个应该是注册bus,但看函数名是ket_register,所以可能会根据刚才对subsys.kobj.kset的赋值来判定是bus,并注册。后面分析。  
  31.     if (retval)  
  32.         goto out;  
  33.   
  34.     retval = bus_create_file(bus, &bus_attr_uevent);       //在对应的bus目录下,根据attribute来创建一个文件  
  35.     if (retval)  
  36.         goto bus_uevent_fail;  
  37.   
  38.     priv->devices_kset = kset_create_and_add("devices", NULL,                  //这就函数应该是创建目录,所以在每个bus下会有 device和driver 两个目录。  
  39.                          &priv->subsys.kobj);  
  40.     if (!priv->devices_kset) {  
  41.         retval = -ENOMEM;  
  42.         goto bus_devices_fail;  
  43.     }  
  44.   
  45.     priv->drivers_kset = kset_create_and_add("drivers", NULL,  
  46.                          &priv->subsys.kobj);  
  47.     if (!priv->drivers_kset) {  
  48.         retval = -ENOMEM;  
  49.         goto bus_drivers_fail;  
  50.     }  
  51.   
  52.     klist_init(&priv->klist_devices, klist_devices_get, klist_devices_put);  
  53.     klist_init(&priv->klist_drivers, NULL, NULL);       //klist还是没搞明白怎么用,以后再说吧  
  54.   
  55.     retval = add_probe_files(bus);       //这个也是在对应的总线目录下,建立bus_attr_drivers_probe 和 bus_attr_drivers_autoprobe文件。应该是probe的时候使用。  
  56.     if (retval)  
  57.         goto bus_probe_files_fail;  
  58.   
  59.     retval = bus_add_attrs(bus);  //循环将所有的bus的属性都建立成一个文件。  
  60.     if (retval)  
  61.         goto bus_attrs_fail;  
  62.   
  63.     pr_debug("bus: '%s': registeredn", bus->name);  
  64.     return 0;  
  65.   
  66. bus_attrs_fail:  
  67.     remove_probe_files(bus);  
  68. bus_probe_files_fail:  
  69.     kset_unregister(bus->p->drivers_kset);  
  70. bus_drivers_fail:  
  71.     kset_unregister(bus->p->devices_kset);  
  72. bus_devices_fail:  
  73.     bus_remove_file(bus, &bus_attr_uevent);  
  74. bus_uevent_fail:  
  75.     kset_unregister(&bus->p->subsys);  
  76. out:  
  77.     kfree(bus->p);  
  78.     bus->p = NULL;  
  79.     return retval;  
  80. }  

 /** 

kset_register - initialize and add a kset. 

  1.  * @k: kset. 
  2.  */  
  3. int kset_register(struct kset *k)  
  4. {  
  5.     int err;  
  6.   
  7.     if (!k)  
  8.         return -EINVAL;  
  9.   
  10.     kset_init(k);          //初始化,没什么东西  
  11.     err = kobject_add_internal(&k->kobj);  //下面分析  
  12.     if (err)  
  13.         return err;  
  14.     kobject_uevent(&k->kobj, KOBJ_ADD);    //通过这个函数的注释可知,向usrspace发送信号。  
  15.     return 0;  
  16. }  

  1. static int kobject_add_internal(struct kobject *kobj)  
  2. {  
  3.  int error = 0;  
  4.  struct kobject *parent;</p><p> if (!kobj)  
  5.   return -ENOENT;</p><p> if (!kobj->name || !kobj->name[0]) {  
  6.   WARN(1, "kobject: (%p): attempted to be registered with empty "  
  7.     "name!n", kobj);  
  8.   return -EINVAL;  
  9.  }
  10.  
  11. parent = kobject_get(kobj->parent);</p><p> /* join kset if set, use it as parent if we do not already have one */  
  12.  if (kobj->kset) {  
  13.   if (!parent)  
  14.    parent = kobject_get(&kobj->kset->kobj);   //get kobject->kset, 判断与parent对比。        
  15. obj_kset_join(kobj);         //这个函数,是将kobject的entry这个变量 添加到 他的 上一级的kset结构的 list中。  
  16.   kobj->parent = parent;  
  17.  }
  18.  
  19.  
  20. pr_debug("kobject: '%s' (%p): %s: parent: '%s', set: '%s'n",  
  21.    kobject_name(kobj), kobj, __func__,  
  22.    parent ? kobject_name(parent) : "<NULL>",  
  23.    kobj->kset ? kobject_name(&kobj->kset->kobj) : "<NULL>");</p><p> error = create_dir(kobj);   //创建目录。比如:/sys/bus 下的 platform, pci等目录。  
  24.  if (error) {  
  25.   kobj_kset_leave(kobj);  
  26.   kobject_put(parent);  
  27.   kobj->parent = NULL;</p><p>  /* be noisy on error issues */  
  28.   if (error == -EEXIST)  
  29.    printk(KERN_ERR "%s failed for %s with "  
  30.           "-EEXIST, don't try to register things with "  
  31.           "the same name in the same directory.n",  
  32.           __func__, kobject_name(kobj));  
  33.   else  
  34.    printk(KERN_ERR "%s failed for %s (%d)n",  
  35.           __func__, kobject_name(kobj), error);  
  36.   dump_stack();  
  37.  } else  
  38.   kobj->state_in_sysfs = 1;</p><p> return error;  
  39. }</p>  

到此,bus_register解释完成。

  1.  * device_register - register a device with the system. 
  2.  * @dev: pointer to the device structure 
  3.  * 
  4.  * This happens in two clean steps - initialize the device 
  5.  * and add it to the system. The two steps can be called 
  6.  * separately, but this is the easiest and most common. 
  7.  * I.e. you should only call the two helpers separately if 
  8.  * have a clearly defined need to use and refcount the device 
  9.  * before it is added to the hierarchy. 
  10.  * 
  11.  * NOTE: _Never_ directly free @dev after calling this function, even 
  12.  * if it returned an error! Always use put_device() to give up the 
  13.  * reference initialized in this function instead. 
  14.  */  
  15. int device_register(struct device *dev)  
  16. {  
  17.     device_initialize(dev);  
  18.     return device_add(dev);  
  19. }  

  1.  * device_initialize - init device structure. 
  2.  * @dev: device. 
  3.  * 
  4.  * This prepares the device for use by other layers by initializing 
  5.  * its fields. 
  6.  * It is the first half of device_register(), if called by 
  7.  * that function, though it can also be called separately, so one 
  8.  * may use @dev's fields. In particular, get_device()/put_device() 
  9.  * may be used for reference counting of @dev after calling this 
  10.  * function. 
  11.  * 
  12.  * NOTE: Use put_device() to give up your reference instead of freeing 
  13.  * @dev directly once you have called this function. 
  14.  */  
  15. void device_initialize(struct device *dev)  
  16. {  
  17.     dev->kobj.kset = devices_kset;  
  18.     kobject_init(&dev->kobj, &device_ktype);  
  19.     INIT_LIST_HEAD(&dev->dma_pools);  
  20.     mutex_init(&dev->mutex);  
  21.     lockdep_set_novalidate_class(&dev->mutex);  
  22.     spin_lock_init(&dev->devres_lock);  
  23.     INIT_LIST_HEAD(&dev->devres_head);  
  24.     device_pm_init(dev);  
  25.     set_dev_node(dev, -1);  
  26. }  

dev_initialize,不解释。

这里有个疑问:在bus_register的时候,有条语句:priv->subsys.kobj.kset = bus_kset;。在dev_initialize的时候也有条dev->kobj.kset = devices_kset;语句。 刚才以为是上级目录的kset结构。但是如此看来好像不是很对,因为dev的上级目录是不定的,可能在/sys/device/platform下,也可能在其他。但是都赋值成devices_kset显然不对。 那么有可能在一个标志。所有的bus的subsys.kobj.kset 这个变量都是bus_kset, 所有dev->kobj.kset的变量都是devices_kset。具体为什么?

百度搜索:61阅读,发现并分享更多精彩生活。

天空中深沉的传来一句话:1+1=几?

我说:2

啪,一道雷劈死我了。答曰:你知道的太多了。 为了留条命,就不解释了。

  1. /** 
  2.  * device_add - add device to device hierarchy. 
  3.  * @dev: device. 
  4.  * 
  5.  * This is part 2 of device_register(), though may be called 
  6.  * separately _iff_ device_initialize() has been called separately. 
  7.  * 
  8.  * This adds @dev to the kobject hierarchy via kobject_add(), adds it 
  9.  * to the global and sibling lists for the device, then 
  10.  * adds it to the other relevant subsystems of the driver model. 
  11.  * 
  12.  * NOTE: _Never_ directly free @dev after calling this function, even 
  13.  * if it returned an error! Always use put_device() to give up your 
  14.  * reference instead. 
  15.  */  
  16. int device_add(struct device *dev)  
  17. {  
  18.     struct device *parent = NULL;  
  19.     struct class_interface *class_intf;  
  20.     int error = -EINVAL;  
  21.   
  22.     dev = get_device(dev);  
  23.     if (!dev)  
  24.         goto done;  
  25.   
  26.     if (!dev->p) {  
  27.         error = device_private_init(dev);  
  28.         if (error)  
  29.             goto done;  
  30.     }  
  31.   
  32.     /* 
  33.      * for statically allocated devices, which should all be converted 
  34.      * some day, we need to initialize the name. We prevent reading back 
  35.      * the name, and force the use of dev_name() 
  36.      */  
  37.     if (dev->init_name) {  
  38.         dev_set_name(dev, "%s", dev->init_name);  
  39.         dev->init_name = NULL;  
  40.     }  
  41.   
  42.     if (!dev_name(dev)) {  
  43.         error = -EINVAL;  
  44.         goto name_error;  
  45.     }  
  46.   
  47.     pr_debug("device: '%s': %sn", dev_name(dev), __func__);  
  48.   
  49.     parent = get_device(dev->parent);  
  50.     setup_parent(dev, parent);  
  51.   
  52.     /* use parent numa_node */  
  53.     if (parent)  
  54.         set_dev_node(dev, dev_to_node(parent));  
  55.     //以上是对device进行初始化,包括name,private,parent……  
  56.     /* first, register with generic layer. */  
  57.     /* we require the name to be set before, and pass NULL */  
  58.     error = kobject_add(&dev->kobj, dev->kobj.parent, NULL);   //device添加,根据他的parent等,当然还会根据他的attribute built一些文件。  
  59.     if (error)  
  60.         goto Error;  
  61.   
  62.     /* notify platform of device entry */  
  63.     if (platform_notify)  
  64.         platform_notify(dev);  
  65.   
  66.     error = device_create_file(dev, &uevent_attr);  //built attr file  
  67.     if (error)  
  68.         goto attrError;  
  69.   
  70.     if (MAJOR(dev->devt)) {  
  71.         error = device_create_file(dev, &devt_attr);  
  72.         if (error)  
  73.             goto ueventattrError;  
  74.   
  75.         error = device_create_sys_dev_entry(dev);  
  76.         if (error)  
  77.             goto devtattrError;  
  78.   
  79.         devtmpfs_create_node(dev);  
  80.     }  
  81.   
  82.     error = device_add_class_symlinks(dev);         //在其他文件夹 建立link文件,这就是为什么在class目录下也能看到device的目录和文件了  
  83.     if (error)  
  84.         goto SymlinkError;  
  85.     error = device_add_attrs(dev);  
  86.     if (error)  
  87.         goto AttrsError;  
  88.     error = bus_add_device(dev);      //在bus目录下 建立link文件,所以在/sys/bus/platform/device下回看到n多个link文件。  
  89.     if (error)  
  90.         goto BusError;  
  91.     error = dpm_sysfs_add(dev);  
  92.     if (error)  
  93.         goto DPMError;  
  94.     device_pm_add(dev);  
  95.   
  96.     /* Notify clients of device addition.  This call must come 
  97.      * after dpm_sysf_add() and before kobject_uevent(). 
  98.      */  
  99.     if (dev->bus)  
  100.         blocking_notifier_call_chain(&dev->bus->p->bus_notifier,  
  101.                          BUS_NOTIFY_ADD_DEVICE, dev);  
  102.   
  103.     kobject_uevent(&dev->kobj, KOBJ_ADD);  
  104.     bus_probe_device(dev);         //进行probe,看有没和device相对应的driver文件。  
  105.     if (parent)  
  106.         klist_add_tail(&dev->p->knode_parent,  
  107.                    &parent->p->klist_children);  
  108.   
  109.     if (dev->class) {  
  110.         mutex_lock(&dev->class->p->class_mutex);  
  111.         /* tie the class to the device */  
  112.         klist_add_tail(&dev->knode_class,  
  113.                    &dev->class->p->klist_devices);  
  114.   
  115.         /* notify any interfaces that the device is here */  
  116.         list_for_each_entry(class_intf,  
  117.                     &dev->class->p->class_interfaces, node)  
  118.             if (class_intf->add_dev)  
  119.                 class_intf->add_dev(dev, class_intf);  
  120.         mutex_unlock(&dev->class->p->class_mutex);  
  121.     }  
  122. done:  
  123.     put_device(dev);  
  124.     return error;  
  125.  DPMError:  
  126.     bus_remove_device(dev);  
  127.  BusError:  
  128.     device_remove_attrs(dev);  
  129.  AttrsError:  
  130.     device_remove_class_symlinks(dev);  
  131.  SymlinkError:  
  132.     if (MAJOR(dev->devt))  
  133.         devtmpfs_delete_node(dev);  
  134.     if (MAJOR(dev->devt))  
  135.         device_remove_sys_dev_entry(dev);  
  136.  devtattrError:  
  137.     if (MAJOR(dev->devt))  
  138.         device_remove_file(dev, &devt_attr);  
  139.  ueventattrError:  
  140.     device_remove_file(dev, &uevent_attr);  
  141.  attrError:  
  142.     kobject_uevent(&dev->kobj, KOBJ_REMOVE);  
  143.     kobject_del(&dev->kobj);  
  144.  Error:  
  145.     cleanup_device_parent(dev);  
  146.     if (parent)  
  147.         put_device(parent);  
  148. name_error:  
  149.     kfree(dev->p);  
  150.     dev->p = NULL;  
  151.     goto done;  
  152. }  

当然还有 drive_register的函数,其实和device_register差不多,另外,driver_register也会在最后进行probe,看有没有相应的设备。driver_register会先check这个drvier所在的bus上有没有probe函数,如果有就运行这个函数进行probe,如果没有,就运行自己的probe进行probe,这就是我们在驱动中经常看到的probe函数。

所以,在驱动中,先运行drive_register和先运行device_register都是一样的。

到这里,我们看完了platform总线如何对底层的kobject的封装机制了吧???亲们是否明白了呢???呵呵,下面的驱动内容会介绍不同的封装类型,请注意面向对象的思想。

本文标题:哈勃文件分析系统-哈勃分析系统整装再出发 打造用户身边的“安全专家”
本文地址: http://www.61k.com/1156008.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1