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、FileDownloaderRange 头反射加注释说明必要性 - 手工 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 轮询ServerEncoderLinkHelperRandomNumberGenerator 未 DisposeFileDownloader.FlushToDiskFileStream 异时释放
完整变更日志
参见 CHANGELOG.md。
验证方法
- 下载并解压
MegaDownloader-Revival-v2.0.0-win-x86.zip - 运行
MegaDownloader.exe,在 设置 → 常规 → 主题 中切换主题,主窗口与所有弹窗应完整应用所选配色 - 添加 MEGA 文件夹链接,启动下载
- 测试下载暂停/恢复、错误重试、关闭主窗口(应正常退出,无死锁)
- 启用 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