github a1175815821/MegaDownloader-Revival v2.0.0

latest releases: v2.5.7, v2.5.6, v2.5.5...
3 months ago

MegaDownloader Revival v2.0.0

重大版本 - 安全加固 + 代码清理 + 暗色主题

v2.0 是复活计划的第二个里程碑版本,基于 v1.9 的链接格式修复,进一步完成 4 个阶段共 60+ 项修复,显著提升安全性、稳定性与可用性。本版本首次引入深/浅色主题切换。

下载

文件 说明
MegaDownloader-Revival-v2.0.0-win-x86.zip 完整包,包含主程序 + 8 个依赖 DLL,解压即用(推荐)
MegaDownloader.exe 仅主程序(需自行准备依赖 DLL,推荐下载完整包)

升级须知

  • v2.0 与 v1.9 的配置文件兼容,直接覆盖 MegaDownloader.exe 即可升级
  • 旧版 InternalConfig.xml 中的 14 个 goo.gl 短链已全部替换为 GitHub 直链
  • 已删除死代码:4 个 Crypter、3 个 MovieInfo、DLCHelper、Linkdecrypter、LinkProtectors、Serializer、ClipboardChangeNotifier(共 11 个文件)
  • 更新检查现已重定向到本 GitHub 仓库

新增功能

深色/浅色主题切换

  • 默认跟随系统:Auto 模式通过读取注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme 自动匹配 Windows 深浅色设置
  • 手动切换:在 设置 → 常规 → 主题 中可选 Auto / Light / Dark
  • 完整覆盖:
    • 主窗体下载列表(BrightIdeasSoftware.TreeListView,包括表头、选中行、交替行、树列展开图标)
    • 顶部按钮栏(TableLayoutPanel)、底部状态栏(StatusStrip)、所有右键菜单(ContextMenuStrip)
    • 所有弹出窗体(添加链接、属性、流媒体、解压、关于、ELC、编码、消息 等 9 个)
    • 标准控件(TextBox/Button/Label/CheckBox/RadioButton/ComboBox/NumericUpDown/RichTextBox)
    • 容器控件(GroupBox/Panel/SplitContainer/FlowLayoutPanel)
    • DataGridView、ListView、TreeView、ProgressBar、LinkLabel、PictureBox
    • 自定义 ThemeColorTable + ToolStripProfessionalRenderer 渲染器
  • 10 种语言全部翻译了主题相关文本(主题/跟随系统/浅色/深色)

安全加固(P0 严重)

# 类别 修复
1 密码验证 修复空密码绕过校验逻辑
2 代理凭据 修复代理用户名/密码未实际赋值给 WebProxy
3 TLS 协议 仅启用 TLS 1.2(移除 TLS 1.0/1.1,符合现代安全标准)
4 服务器绑定 Web/Streaming 服务器绑定 127.0.0.1(原 0.0.0.0 暴露到全网)
5 密码哈希 统一使用 UTF-8 编码
6 死锁防护 Mutex 操作全部包裹 Try/Finally
7 异常处理 加密代码中的空 Catch 块替换为日志记录
8 设置持久化 修复 ApagarPC / MaxConexionesGuardadas 未正确保存

死代码删除(P2 清理)

  • 4 个 Crypter:EncrypterMega.vb、MegaCrypter.vb、Youpaste.vb、LinkCrypter.vb(API 全部下线)
  • 3 个 MovieInfo:Allocine.vb、Filmaffinity.vb、IMDB.vb(API 全部变更)
  • 链接辅助:DLCHelper.vb、Linkdecrypter.vb、LinkProtectors.vb、Serializer.vb、ClipboardChangeNotifier.vb
  • MegaUploader 菜单:移除 "Get MegaUploader" 菜单项(原项目已停止)
  • goo.gl 短链:14 个 Google 短链全部替换为 GitHub 直链
  • Ping 上报:移除向原作者服务器上报用户/版本信息(隐私保护)
  • 共删除 11 个 .vb 文件 + 清理所有相关引用

资源泄漏修复(P1 高优先级)

# 位置 修复
1 ELCAccountControl / AddLinks / SteganoWizardSave 7 处 ToolTip 资源泄漏(MouseHover 每次创建不释放)
2 SteganoManager Image.FromFile 锁定源文件 + FileStream 未 Dispose
3 Main.vb 7 处 Image.FromStream(stream) stream 过早关闭 → 新增 LoadEmbeddedImage 辅助方法
4 WebInterfaceModule StreamReader/StreamWriter 未 Using(模板加载 + response.Body 写入,后者使用 leaveOpen:=True)
5 StreamingLibraryManager CompressString / UnCompressString 未 Using(嵌套 Using 块)
6 MegaURIProtocol 注册表操作无 Finally 释放 + 中间变量覆盖导致句柄泄漏
7 Main.vb clipChange 关闭顺序错误(Uninstall 应在 DestroyHandle 之前)
8 Main.vb EsperarParadaDescargasYWorkers 漏检查 bgwDescompresorCompleted
9 StreamingLibraryModule Case "Delete" 缺 Return True,导致贯穿到下一分支
10 StreamingLibraryModule UsuarioLogueado 超时后未清除 session,登录状态永久停留
11 ELCAccountControl CellClick 未校验 e.RowIndex,点击表头会崩溃
12 StreamingHelper Keys.Count / 2 浮点除法,应使用整数除法 \ 2

协议与代码质量(P2)

协议现代化

  • %SEQ% / %ID% 序列号:原用 DateTime.Now.Millisecond 的 ticks(范围 0-999,并发请求会重复),改用 Interlocked.Increment 进程内自增
  • MEGA URL 升级:http://mega.co.nz/#N! → https://mega.nz/#N!(MegaFolderHelper)
  • TLS:已在 P0 阶段统一为 Tls12

代码质量

  • GetHashCode 比较:Paquete.vb / Configuracion.vb 用 GetHashCode 比较配置 XML(不保证一致性),改用直接 OuterXml 字符串比较
  • 变量名冲突:
    • MegaFolderHelper.vb 两处变量 ex(Regex)→ rx(避免与 Catch ex 混淆)
    • ThrottledStream.vb 变量名 int(VB.NET 关键字)→ bytesRead
  • 类名冲突:Clases/Mutex.vb 类名遮蔽 System.Threading.Mutex,加注释说明 + 提供别名方案
  • 反射说明:StreamingModule.ClientConnected、FileDownloader Range 头反射加注释说明必要性
  • 手工 JSON:LibraryElement.ToJSON 加注释说明限制(未转义控制字符)
  • 作者信息:Credits 窗体加入 "Yingxue - Revival maintainer (v2.0+)"

国际化

  • 新增 10 种语言的主题相关翻译键:Theme / Theme_Auto / Theme_Light / Theme_Dark
  • 移除 "Get MegaUploa&der" 翻译键

已知问题(后续阶段处理)

  • Thread.Abort() 危险使用(3 处,Main.vb / DescompresorController)
  • 跨线程 MsgBox 未检查窗体是否已关闭(3 处)
  • MegaFolderHelper.FillFolderStructure 递归无 KeyNotFound 保护
  • ELCForm 无限循环每 300ms 轮询
  • ServerEncoderLinkHelper RandomNumberGenerator 未 Dispose
  • FileDownloader.FlushToDisk FileStream 异时释放

完整变更日志

参见 CHANGELOG.md。

验证方法

  1. 下载并解压 MegaDownloader-Revival-v2.0.0-win-x86.zip
  2. 运行 MegaDownloader.exe,在 设置 → 常规 → 主题 中切换主题,主窗口与所有弹窗应完整应用所选配色
  3. 添加 MEGA 文件夹链接,启动下载
  4. 测试下载暂停/恢复、错误重试、关闭主窗口(应正常退出,无死锁)
  5. 启用 Web 服务器,确认绑定到 127.0.0.1 而非 0.0.0.0(命令行 netstat -ano | findstr :<port>)

升级建议

  • 所有 v1.9.x 用户建议升级到 v2.0
  • v1.8 用户直接升级到 v2.0 即可,无需中间版本

Full Changelog: v1.9.1...v2.0.0

Full Changelog: v1.9.1...v2.0.0

Don't miss a new MegaDownloader-Revival release

NewReleases is sending notifications on new releases.