Bootstrap

使用 Gradio显示System32文件夹下的所有文件简单说明

最近在做一些关于应急响应方面的练习,关于挖矿木马的排查问题。涉及到System32文件夹下的一些dll文件,于是搜集并整理一下所有System32文件夹下的dll文件及其说明。使用 Gradio 模块创建一个简单的 web 应用程序,以html形式显示 Windows 系统中的 System32 文件夹下 DLL 文件及其相关说明。Gradio 是一个非常便捷的工具,能够帮助开发者快速构建用户界面,无需过多的前端开发经验。

步骤概述

  1. 安装 Gradio
  2. 准备要展示的数据
  3. 编写 Gradio 应用程序代码
  4. 运行应用程序并查看结果

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>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 文件及其对应的说明。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

截屏2024-09-26 16.15.47

总结

通过以上步骤,我们成功地创建了一个简单的 Gradio 应用程序,用于展示 Windows System32 文件夹下的 DLL 文件和其说明。这种方式不仅简洁,而且用户友好,适合快速展示和分享信息。如果你有更多的 DLL 信息,只需在数据字典中添加相应的条目即可。

希望你能在项目中找到此方法的价值!如果有任何问题或建议,请随时反馈。

;