# MEMZEffectTest **Repository Path**: system-light/MEMZEffectTest ## Basic Information - **Project Name**: MEMZEffectTest - **Description**: 一个模拟MEMZ病毒屏幕特效的无害测试工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MEMZEffectTest - 屏幕特效模拟库 ## 项目简介 `MEMZEffectTest` 是一个基于 C# 和 Windows API 实现的、完全无害的屏幕视觉特效模拟库。其灵感来源于经典的 MEMZ 病毒及其各种变种(如 EUZE Malware)所展现出的炫目屏幕效果。 **请注意:本项目仅包含视觉和音频特效模拟代码,不包含任何具有系统破坏性的功能,完全出于教育、研究和娱乐目的而创建。** ## 源码说明与致谢 本项目 `EffectModule` 类中的绝大部分特效实现逻辑,均参考并移植自 **ExRFy** 开发的 **EUZE Malware**(一个易语言病毒项目)中的“特效(病毒)模块.ec”。 - **原项目地址(Gitee)**: [https://gitee.com/ExMinecraft158/EUZE_Malware](https://www.bilibili.com/video/BV1QZHYeZEgS/) - **原项目介绍视频(Bilibili)**: [一个六年级的学生,设计出个和MEMZ差不多的病毒!?](https://www.bilibili.com/video/BV1QZHYeZEgS/) 在将其从易语言源代码转换为 C# 代码的过程中,我们致力于: 1. **保持逻辑一致性**:尽可能准确地还原原模块中每一个特效的视觉表现和行为逻辑。 2. **提升代码可读性与结构化**:利用 C# 面向对象的特性,将代码组织得更加清晰、模块化,并添加了详尽的注释,便于理解和后续维护。 3. **确保无害性**:我们**仅参考并移植了原项目中的“特效模块”**,明确排除了任何存在于原项目其他模块(如“破坏模块”)中的恶意代码。本库中的所有功能均为视觉或音频效果,运行后不会对操作系统、用户文件及系统设置造成任何形式的修改或损害。 ## 技术实现与选型思考 ### 为什么选择 C# 而不是 C++? 本项目选择 C# 及 Windows Forms 作为主要技术栈,主要基于以下几点考虑: 1. **开发效率与框架便利性**:C# 配合 .NET Framework/WinForms 能够快速搭建起带有图形界面的演示程序(如本项目中的测试工具),极大地降低了开发复杂 GUI 的成本,让开发者能更专注于特效逻辑本身。 2. **语言易用性**:C# 语法现代、优雅,并且**与 C/C++ 在语法上有很多相似之处**(如类型定义、循环控制、API 调用方式等),使得代码对于大多数开发者而言都非常易读易懂。同时,C# 规避了 C++ 中诸如手动内存管理、头文件、预处理器指令等复杂性,让开发过程更加专注于业务逻辑。 3. **强大的互操作性**:C# 通过 P/Invoke(Platform Invocation Services)可以非常方便、可靠地调用标准 Windows API,这正是本项目实现各种特效的基础。 ### 为什么大量使用 Windows API 而非 System.Drawing? 尽管 .NET 提供了功能强大的 `System.Drawing` 命名空间来处理图形,但本项目依然选择直接调用原始的 Windows API(如 `user32.dll` 和 `gdi32.dll` 中的函数),主要原因如下: 1. **性能与底层控制**:直接使用 Windows API 可以更接近硬件和操作系统底层,有时能获得比托管代码封装更好的性能,尤其是进行大量、快速的屏幕像素操作时。这允许我们对特效有更精细、更直接的控制。 2. **移植参考价值**:本项目的一个重要目的是**为其他开发者提供参考**。许多底层图形编程、屏幕捕捉、窗口管理最终还是离不开原生 API。这里的 C# 代码**大量使用了 Windows API**,其调用方式、参数结构与 C++ 中极为相似。这意味着,如果您需要将来将这些特效逻辑**移植到 C++、Rust 或其他原生语言**,本项目的代码将是一份非常有价值的、近乎“直译”的参考,您几乎可以按图索骥地进行转换。 3. **功能完整性**:某些特定的特效(如 `PlgBlt` 进行仿射变换、`SetPixel` 的直接操作、某些光栅操作码)在 `System.Drawing` 中可能没有直接对等或高效的方法,直接调用 API 是唯一或最优的选择。 ## 功能特性 该库包含了超过 20 种不同的屏幕与鼠标特效,例如: - **屏幕效果**:反色、上下/水平翻转、位移、波浪、网格、融化、闪烁等。 - **彩虹猫隧道效果**:多种经典的 Nyan Cat 式隧道扭曲。 - **图标绘制**:在屏幕随机位置或鼠标位置绘制各种系统图标(错误、警告、问号、盾牌等)。 - **鼠标控制**:鼠标抖动、隐藏、显示、随机移动。 - **音效与对话框**:随机播放系统声音、在随机位置弹出系统消息框。 ## 安全声明 **再次郑重强调:** 本项目 (`MEMZEffectTest`) 是一个**完全无害**的视觉特效演示程序。所有效果均为临时性的屏幕绘图和音频播放,**不会**: - 修改、删除、加密您的任何文件。 - 更改您的系统设置、注册表或启动项。 - 窃取您的任何隐私信息。 - 对计算机硬件造成任何伤害。 程序运行后,所有效果均会随程序退出而立即消失,系统将恢复正常显示。请放心体验。 ## 结论 总而言之,`MEMZEffectTest` 项目旨在以安全、可控的方式,探索和展示 Windows 图形系统的各种可能性。它既是向 MEMZ/EUZE 这类“特效病毒”的“艺术性”致敬,也是一个有价值的学习资源,特别适合那些对以下领域感兴趣的开发者: - Windows 系统编程 - 图形学与屏幕特效 - C# 与原生代码互操作(P/Invoke) - 将高级语言逻辑移植到 C++ 等原生语言 希望您能从这个项目中获得乐趣和知识!