最近在做一些关于应急响应方面的练习,关于挖矿木马的排查问题。涉及到System32文件夹下的一些dll文件,于是搜集并整理一下所有System32文件夹下的dll文件及其说明。使用 Gradio 模块创建一个简单的 web 应用程序,以html形式显示 Windows 系统中的 System32 文件夹下 DLL 文件及其相关说明。Gradio 是一个非常便捷的工具,能够帮助开发者快速构建用户界面,无需过多的前端开发经验。
步骤概述
- 安装 Gradio
- 准备要展示的数据
- 编写 Gradio 应用程序代码
- 运行应用程序并查看结果
1. 安装 Gradio
首先,你需要确保你的 Python 环境中已安装 Gradio。如果还没有安装,可以使用以下命令:
pip install gradio
2. 准备要展示的数据
我们将准备一组包含 DLL 文件名和其说明的 JSON 数据。这些数据可以直接嵌入到代码中,如下所示:
data = {
"System32下的文件说明":[
{
"name": "aclui.dll",
"remark": "Security Descriptor Editor,没有它,注册表编缉器会无法运行"
},
{
"name": "ACTIVEDS.DLL",
"remark": "(ADs 路由层 DLL). 没有它, 打开事件查看器会出错"
},
{
"name": "ADSLDPC.DLL",
"remark": "ADs LDAP 提供程序 C DLL"
},
{
"name": "ADVAPI32.DLL",
"remark": "(高级 Windows 32 基本 API)...这个 avicap32.dll 用于将从数码摄像头捕获的视频另存为 AVI 格式. 如果你正在录制视频或是正在视频聊天, 那么你将服务终止这个进程"
},
{
"name": "ADVPACK.DLL",
"remark": "(Advpack Library). Windows 用它来验证 .inf 文件. 如果 advpack.dll 不可用, windows 将无法正常工作. (没有它, 打开系统属性会出错.)"
},
{
"name": "AUTHZ.DLL",
"remark": "认证框架"
},
{
"name": "BASESRV.DLL",
"remark": "Windows NT BASE API Server DLL"
},
{
"name": "BATMETER.DLL",
"remark": "(电池助手 DLL). 打开电源选项需要这个文件"
},
{
"name": "bootvid.dll",
"remark": "VGA 启动驱动"
},
{
"name": "BROWSELC.DLL",
"remark": "外壳浏览器用户界面库"
},
{
"name": "browser.dll",
"remark": "Computer Browser Service DLL"
},
{
"name": "BROWSEUI.DLL",
"remark": "外壳浏览器用户界面库"
},
{
"name": "CABINET.DLL",
"remark": "(Microsoft® Cab 文件 API). 想要正常打开系统选项就要保留这个文件"
},
{
"name": "CALC.EXE",
"remark": "(计算器). Windows 自带的计算器程序"
},
{
"name": "clb.dll",
"remark": "Column List Box,没有它,注册表编缉器会无法运行"
},
{
"name": "comcat.dll",
"remark": "Microsoft C 运行时库文件"
},
{
"name": "COMCTL32.DLL",
"remark": "通用控件库"
},
{
"name": "COMDLG32.DLL",
"remark": "通用对话框 DLL"
},
{
"name": "CREDUI.DLL",
"remark": "授权证书管理程序用户界面"
},
{
"name": "crtdll.dll",
"remark": "加密管理器"
},
{
"name": "CRYPT32.DLL",
"remark": "32 位加密 API"
},
{
"name": "CRYPTDLL.DLL",
"remark": "加密管理程序"
},
{
"name": "CRYPTUI.DLL",
"remark": "Microsoft 加密用户界面提供程序"
},
{
"name": "CSRSRV.DLL",
"remark": "客户端服务器运行时进程"
},
{
"name": "CSRSS.EXE",
"remark": "(客户端-服务器运行时服务器子系统). 用于维护Win32 系统环境控制台以及其它基本功能."
},
{
"name": "desk.cpl",
"remark": "显示属性"
},
{
"name": "devmgr.dll",
"remark": "设备管理器 MMC 管理工具"
},
{
"name": "dmintf.dll",
"remark": "磁盘管理 DCOM 接口存根"
},
{
"name": "dmutil.dll",
"remark": "逻辑磁盘管理器工具库"
},
{
"name": "DNSAPI.DLL",
"remark": "DNS 客户端 API DLL"
},
{
"name": "fmifs.dll",
"remark": "FM IFS 工具 DLL"
},
{
"name": "GDI32.DLL",
"remark": "GDI 客户端 DLL(含有XCMD设置字体的函数)"
},
{
"name": "hal.dll",
"remark": "(硬件抽象层). 隐藏 Windows 应用程序处理硬件问题的复杂性(启动之后可删除的文件)"
},
{
"name": "hccoin.dll",
"remark": "USB 协同安装程序"
},
{
"name": "icaapi.dll",
"remark": "TermDD 设备驱动的 DLL 接口"
},
{
"name": "IMAGEHLP.DLL",
"remark": "Windows NT 图像助手(IE显示图像需要)"
},
{
"name": "imm32.dll",
"remark": "(Windows XP IMM32 API 客户端 DLL). 用于正常打开系统属性"
},
{
"name": "input.dll",
"remark": "(文本输入 DLL). 语言和区域设置需要这个文件来显示相关对话框"
},
{
"name": "IPHLPAPI.DLL",
"remark": "IP 助手API"
},
{
"name": "kbdus.dll",
"remark": "美国键盘布局"
},
{
"name": "kdcom.dll",
"remark": "内核调试程序硬件扩展 DLL(启动之后可删除的文件)"
},
{
"name": "KERBEROS.DLL",
"remark": "Kerberos 安全包"
},
{
"name": "kernel32.dll",
"remark": "Windows NT BASE API 客户端 DLL"
},
{
"name": "LINKINFO.DLL",
"remark": "Windows 卷目追踪"
},
{
"name": "lpk.dll",
"remark": "会话注销工具"
},
{
"name": "LSASRV.DLL",
"remark": "LSA 服务器 DLL"
},
{
"name": "LSASS.EXE",
"remark": "(LSA 安全服务). 本地安全认证服务器进程"
},
{
"name": "main.cpl",
"remark": "鼠标"
},
{
"name": "MFC42.DLL",
"remark": "MFCDLL 共享库"
},
{
"name": "mfc42u.dll",
"remark": "MFCDLL 共享库"
},
{
"name": "MPRAPI.DLL",
"remark": "(Windows NT MP 路由管理DLL)"
},
{
"name": "mprui.dll",
"remark": "多个提供程序"
},
{
"name": "MSASN1.DLL",
"remark": "ASN.1 运行时 API"
},
{
"name": "mscms.dll",
"remark": "(Microsoft 色彩匹配系统 DLL). 这个模块中包含了一些用于校正图像色彩,以及用于色彩映射, 色彩管理的函数"
},
{
"name": "MSCTF.DLL",
"remark": "MSCTF 服务器 DLL"
},
{
"name": "MSGINA.DLL",
"remark": "Windows NT 登录 GINA DLL"
},
{
"name": "MSIMG32.DLL",
"remark": "GDIEXT 客户端 DLL"
},
{
"name": "MSIMTF.DLL",
"remark": "Active IMM 服务器 DLL"
},
{
"name": "msls31.dll",
"remark": "(Microsoft 线性服务库文件). Internet Explorer 需要这个文件"
},
{
"name": "MSPRIVS.DLL",
"remark": "Microsoft 特权转换"
},
{
"name": "MSVCP60.DLL",
"remark": "Microsoft (R) C++ 运行时库文件"
},
{
"name": "MSVCRT.DLL",
"remark": "Windows NT CRT DLL"
},
{
"name": "mydocs.dll",
"remark": "我的文档文件夹用户界面"
},
{
"name": "ncxpnt.dll",
"remark": "Netork (不是 Network) 安装向导支持 DLL"
},
{
"name": "NDDEAPI.DLL",
"remark": "Network DDE 共享管理 APIs"
},
{
"name": "NET1.EXE",
"remark": "(Network). 与 NET.EXE 的功能相同(在使用net命令的时候需要调用net1,若不存在就无法完成操作)"
},
{
"name": "NET.EXE",
"remark": "(Network). 用于管理, 配置和查看与网络相关的信息, 例如 net use, net print, net user, 等等"
},
{
"name": "NETAPI32.DLL",
"remark": "Net Win32 API DLL"
},
{
"name": "netrap.dll",
"remark": "网络远程管理协议DLL"
},
{
"name": "netui0.dll",
"remark": "NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180)"
},
{
"name": "netui1.dll",
"remark": "NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180)"
},
{
"name": "NOTEPAD.EXE",
"remark": "(记事本). 文本编辑工具"
},
{
"name": "NTDLL.DLL",
"remark": "NT Layer DLL"
},
{
"name": "NTDSAPI.DLL",
"remark": "(NT5DS Library) Windows 的目录服务需要这个ntdsapi.dll 库文件. 目录服务可令 Windows 能够更容易地定位设备以及网络上的资源"
},
{
"name": "NTMARTA.DLL",
"remark": "Windows NT MARTA 提供程序"
},
{
"name": "ODBC32.DLL",
"remark": "Microsoft Data Access - ODBC 驱动管理器"
},
{
"name": "ODBCBCP.DLL",
"remark": "(Microsoft BCP for ODBC). 没有这个文件的话, 当你打开电脑管理时会遇到一个错误. 但还是可以打开电脑管理. (我把电脑管理删掉了.)"
},
{
"name": "ODBCINT.DLL",
"remark": "Microsoft Data Access - ODBC 资源"
},
{
"name": "OLE32.DLL",
"remark": "Microsoft OLE for Windows"
},
{
"name": "oleacc.dll",
"remark": "(Active Accessibility 核心组件)"
},
{
"name": "OLEAUT32.DLL",
"remark": "Windows 要用它执行OLE (对象链接和嵌入) 操作. OLE 允许将程序创建的对象嵌入到另一个程序的文档或对象中. 例如. 将一个 Excel 表格嵌入到 Word 文档中. Windows 应用程序要经常用到OLE, 因此一般你是无法将其删除的"
},
{
"name": "OLECLI32.DLL",
"remark": "对象链接和嵌入客户端库文件"
},
{
"name": "OLECNV32.DLL",
"remark": "Microsoft OLE for Windows"
},
{
"name": "oledlg.dll",
"remark": "(Microsoft Windows(TM) OLE 2.0 用户接口支持)"
},
{
"name": "OLESVR32.DLL",
"remark": "对象链接和嵌入服务器库"
},
{
"name": "OLETHK32.DLL",
"remark": "Microsoft OLE for Windows"
},
{
"name": "POWRPROF.DLL",
"remark": "(电源配置助手 DLL). 如要正常打开设备管理器中的键盘属性, 需要保留这个文件"
},
{
"name": "PROFMAP.DLL",
"remark": "Userenv"
},
{
"name": "PSAPI.DLL",
"remark": "进程状态助手"
},
{
"name": "pstorec.dll",
"remark": "受保护存储的COM 接口"
},
{
"name": "REG.EXE",
"remark": "(注册表控制台). 一个用于查询和修改注册表的命令行工具"
},
{
"name": "REGAPI.DLL",
"remark": "注册表配置 APIs"
},
{
"name": "rnr20.dll",
"remark": "Windows Socket2 命名空间 DLL"
},
{
"name": "RPCRT4.DLL",
"remark": "远程过程调用运行时"
},
{
"name": "RPCSS.DLL",
"remark": "分布式 COM 服务"
},
{
"name": "RSAENH.DLL",
"remark": "Microsoft 增强加密提供程序"
},
{
"name": "RTUTILS.DLL",
"remark": "路由工具"
},
{
"name": "SAMLIB.DLL",
"remark": "SAM 库DLL"
},
{
"name": "SAMSRV.DLL",
"remark": "SAM 服务器 DLL"
},
{
"name": "SCESRV.DLL",
"remark": "Windows安全配置编辑器引擎"
},
{
"name": "SCHANNEL.DLL",
"remark": "TLS / SSL 安全提供程序"
},
{
"name": "SECUR32.DLL",
"remark": "安全支持提供程序接口"
},
{
"name": "services.exe",
"remark": "(安全和控制程序). Windows XP 用它管理服务"
},
{
"name": "SETUP.EXE",
"remark": "(Setup). Windows 安装程序"
},
{
"name": "SETUPAPI.DLL",
"remark": "Windows Setup API"
},
{
"name": "SFC_OS.DLL",
"remark": "Windows 文件保护"
},
{
"name": "sfcfiles.dll",
"remark": "Windows 2000 系统文件检查工具"
},
{
"name": "SHDOCVW.DLL",
"remark": "外壳文档对象和控件库"
},
{
"name": "SHELL32.DLL",
"remark": "Windows 外壳通用 Dll"
},
{
"name": "SHFOLDER.DLL",
"remark": "(外壳文件夹服务). 若要正常打开系统属性, 需要保留此文件"
},
{
"name": "shgina.dll",
"remark": "Windows 外壳用户登录 <-- 这个文件用于从你的桌面上重启电脑. 进一步讲, 一旦你将其删除或是将其从 system32 文件夹中移走, 那么即使你将其放回, 也照样无法从你的桌面重新启动"
},
{
"name": "shimgvw.dll",
"remark": "(Windows 图片和传真查看器). 我要用它看电脑上的图片"
},
{
"name": "SHLWAPI.DLL",
"remark": "外壳 Light-weight 工具库"
},
{
"name": "sigtab.dll",
"remark": "文件完整性设置(系统属性-->硬件-->驱动程序签名选项的对话框)"
},
{
"name": "SMSS.EXE",
"remark": "(会话管理器). 是个会话管理器, 用于在启动期间创建Windows XP 环境"
},
{
"name": "STOBJECT.DLL",
"remark": "(Systray 外壳服务对象). stobject.dll 是个库文件, 包含了一些像是图标这样的资源"
},
{
"name": "SVCHOST.EXE",
"remark": "Win32 服务的常规宿主进程"
},
{
"name": "sysdm.cpl",
"remark": "系统属性"
},
{
"name": "themeui.dll",
"remark": "Windows 主题 API"
},
{
"name": "ufat.dll",
"remark": "FAT 工具 DLL"
},
{
"name": "ULIB.DLL",
"remark": "..文件工具支持 DLL"
},
{
"name": "umdmxfrm.dll",
"remark": "Unimodem 转换模块"
},
{
"name": "umpnpmgr.dll",
"remark": "用户模式即插即用服务"
},
{
"name": "untfs.dll",
"remark": "NTFS 工具 DLL"
},
{
"name": "ureg.dll",
"remark": "注册表工具 DLL"
},
{
"name": "urlmon.dll",
"remark": "Win32 OLE32 扩展"
},
{
"name": "user32.dll",
"remark": "Windows XP 用户 API 客户端 DLL"
},
{
"name": "userenv.dll",
"remark": "用户环境"
},
{
"name": "usp10.dll",
"remark": "Uniscribe Unicode 脚本处理器"
},
{
"name": "UXTHEME.DLL",
"remark": "Microsoft UxTheme Library"
},
{
"name": "VERSION.DLL",
"remark": "版本检查和文件安装库"
},
{
"name": "vga64k.dll",
"remark": "32K/64K 色 VGA/SVGA 显示驱动"
},
{
"name": "vga.dll",
"remark": "VGA 16 色显示驱动"
},
{
"name": "WDIGEST.DLL",
"remark": "Microsoft 采集访问"
},
{
"name": "WIN32K.SYS",
"remark": "多用户 Win32 驱动"
},
{
"name": "WININET.DLL",
"remark": "Internet 扩展"
},
{
"name": "WINLOGON.EXE",
"remark": "Windows NT 登录应用程序"
},
{
"name": "WINMM.DLL",
"remark": "MCI API DLL"
},
{
"name": "WINRNR.DLL",
"remark": "LDAP RnR 提供程序 DLL"
},
{
"name": "WINSRV.DLL",
"remark": "Windows Server DLL"
},
{
"name": "WINSTA.DLL",
"remark": "工作站库文件"
},
{
"name": "WINTRUST.DLL",
"remark": "Microsoft 受信任证书 APIs"
},
{
"name": "WLDAP32.DLL",
"remark": "Win32 LDAP API DLL"
},
{
"name": "WS2_32.DLL",
"remark": "Windows Socket 2.0 32 位 DLL"
},
{
"name": "WS2HELP.DLL",
"remark": "Windows Socket 2.0 助手"
},
{
"name": "WSOCK32.DLL",
"remark": "(Windows 32 位套接层 DLL). 某些涉及到网络的软件会需要它"
},
{
"name": "WTSAPI32.DLL",
"remark": "Windows 终端服务器 SDK API"
}
]
}
3. 编写 Gradio 应用程序代码
接下来,我们将编写一个 Python 脚本,使用 Gradio 创建一个界面。在这个界面中,我们将定义一个函数来格式化和返回 DLL 文件信息,并通过 Gradio 显示它。
以下是完整的代码示例:
import gradio as gr
# 要展示的文件说明
data = {
"System32下的文件说明": [
{
"name": "aclui.dll", "remark": "Security Descriptor Editor,没有它,注册表编缉器会无法运行"},
{
"name": "ACTIVEDS.DLL", "remark": "(ADs 路由层 DLL). 没有它, 打开事件查看器会出错"},
{
"name": "ADSLDPC.DLL", "remark": ".ADs LDAP 提供程序 C DLL"},
{
"name": "ADVAPI32.DLL", "remark": "(高级 Windows 32 基本 API)...这个 avicap32.dll 用于将从数码摄像头捕获的视频另存为 AVI 格式. 如果你正在录制视频或是正在视频聊天, 那么你将服务终止这个进程"},
{
"name": "ADVPACK.DLL", "remark": ".(Advpack Library). Windows 用它来验证 .inf 文件. 如果 advpack.dll 不可用, windows 将无法正常工作. (没有它, 打开系统属性会出错.)"},
# ... 添加其他 DLL 信息
{
"name": "WTSAPI32.DLL", "remark": "Windows 终端服务器 SDK API"}
]
}
def display_dll_info():
html_content = "<h2 id="h0">System32下的文件说明</h2><ul>"
for item in data["System32下的文件说明"]:
html_content += f"<li><strong>{item['name']}</strong>: {item['remark']}</li>"
html_content += "</ul>"
return html_content
# 创建Gradio界面
iface = gr.Interface(
fn=display_dll_info,
inputs=[],
outputs="html",
title="System32 DLL 文件说明",
description="以下是 System32 下 DLL 文件及其对应的说明"
)
# 启动应用
iface.launch()
4. 运行应用程序并查看结果
保存上述代码为 app.py,然后在终端中运行以下命令启动 Gradio 应用:
python app.py
运行后,Gradio 会在控制台中提供一个 URL(通常是 http://127.0.0.1:7860),你可以在浏览器中打开这个链接,看到如下效果:
- 一个标题为 “System32 DLL 文件说明” 的页面。
- 列出了所有 DLL 文件及其对应的说明。
总结
通过以上步骤,我们成功地创建了一个简单的 Gradio 应用程序,用于展示 Windows System32 文件夹下的 DLL 文件和其说明。这种方式不仅简洁,而且用户友好,适合快速展示和分享信息。如果你有更多的 DLL 信息,只需在数据字典中添加相应的条目即可。
希望你能在项目中找到此方法的价值!如果有任何问题或建议,请随时反馈。