Skip to content

[Bug] v1.18.2 安装器在 NSIS System.dll 中崩溃,留下注册表和快捷方式但未解压程序文件 #77

Description

@Xeznos

环境

  • WeChatDataAnalysis:v1.18.2
  • Windows:Windows 11 家庭中文版 10.0.22621,64 位
  • 安装包:官方 Release 中的 WeChatDataAnalysis-1.18.2-Setup.exe
  • 安装包大小:216,157,416 bytes
  • SHA-256:D4F819E36C7025F34BAEB54B201A734894B5B10886AAB6D86D23353E66EA5E89
  • Authenticode:NotSigned
  • 目标目录:D:\program files\WeChatDataAnalysis

问题现象

运行安装程序后:

  1. Windows“已安装的应用”中出现 WeChatDataAnalysis 1.18.2
  2. 桌面和开始菜单快捷方式已创建
  3. 卸载注册表项带有 /currentuser
  4. 实际安装目录不存在或为空
  5. 快捷方式指向的 WeChatDataAnalysis.exe 不存在

静默运行 /S 后结果相同。双击安装程序时,安装界面未正常出现。

系统事件日志记录到两次相同签名的崩溃。

Windows Error Reporting

Faulting application:
  WeChatDataAnalysis-1.18.2-Setup.exe
  Version: 1.18.2.0

Faulting module:
  System.dll
  Version: 0.0.0.0
  Path: %LOCALAPPDATA%\Temp\ns*.tmp\System.dll

Exception code: 0xc0000005
Fault offset: 0x00001581

安装器在复制应用程序文件之前退出,因此留下了注册表项和快捷方式,但没有应用主体。

补充观察

  • 安装包 SHA-256 与 GitHub Release 页面公布的摘要一致,应该没有下载损坏。
  • Windows Defender 中没有查到对应的拦截或威胁检测记录。
  • 目标父目录 D:\program files 不允许当前非提权进程创建子目录;通过 UAC 提权后可以写入。这个权限条件可能与问题有关。
  • 即使目标目录不可写,安装程序预期也应提示权限错误或回滚注册表和快捷方式,不应留下不可用的安装记录。
  • 使用 7-Zip 可以正常读取安装包内的 Electron 应用文件。
  • 提权后直接解压应用主体,共得到 399 个文件;WeChatDataAnalysis.exewechat-backend.exe 均可正常启动。这说明应用载荷本身完整,问题更可能发生在 NSIS 安装流程或权限处理阶段。

期望行为

  • 安装器需要提权时正常弹出 UAC,并完成文件写入;或
  • 无法写入目标目录时显示明确错误并退出;或
  • 安装失败时清理已创建的卸载注册表项和快捷方式。

请作者判断是否与 v1.18.2 的 NSIS 自定义安装页面、权限检测或 System.dll 调用有关。如需更完整的 WER 信息,我可以继续提供经过脱敏的日志。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions