64kramsystem/palware

GitHub: 64kramsystem/palware

该项目收录了一系列 DOS 时代经典恶意软件的现代反汇编代码与详细注释,旨在为逆向工程学习者提供安全、深入的历史研究素材。

Stars: 13 | Forks: 2

## 简介 Palware:旧石器时代恶意软件的反汇编! 该仓库包含我对 DOS 病毒的反汇编代码。 (对于年轻一代来说,“DOS”是 80 年代至 90 年代初占主导地位的消费级操作系统。) ## 目录 - [简介](#introduction) - [目录](#table-of-contents) - [这有(潜在)危险吗?](#is-this-potentially-dangerous) - [为什么要逆向工程 \[DOS 病毒\]?](#why-reverse-engineering-dos-viruses) - [当前反汇编列表](#current-disassemblies) - [工作流程与工具](#workflow-and-tools) - [待反汇编候选](#candidates-for-disassembly) ## 这有(潜在)危险吗? 没有。 原因如下: 1. DOS 病毒无法感染现代操作系统;理论上引导区病毒可能可以,但已经没人使用软盘了; 2. 这些文件是反汇编代码,而非二进制文件;心怀不轨的用户需要先对其进行汇编,但这不值得,因为其他网站已经提供了活体样本(例如 Open Malware); 3. 破坏性(磁盘覆写)代码已被移除(即使它们在现代操作系统上本就无法运行); 4. Mikko Hypponen [这么做了](https://archive.org/details/malwaremuseum),所以我也这么做! ## 为什么要逆向工程 [DOS 病毒]? 逆向工程是一项令人兴奋的活动(至少对于对底层编程感兴趣的人来说),因为这是一种循序渐进的调查工作。 恶意软件——至少是其中较复杂的子集——是一种富有创意、构思巧妙、涉猎广泛,有时甚至令人印象深刻的产品。 此外,逆向工程是一项耗费心力的活动,因为需要持续且全神贯注;取决于个人兴趣,这可能是单纯的乐趣,也可能富有成效,或者两者兼而有之。 ## 当前反汇编列表 按完成时间倒序排列: - `Virus.DOS.BadBoy.1000.a`:驻留内存的 COM 文件感染器 - 亮点: - 病毒主体被分割成块,以(加密形式)随机混合的布局存储 - 绕过 Int 13 监视器(如果存在) - `Virus.DOS.LoveChild.488`:普通的驻留内存的 COM 文件感染器 - 亮点:它驻留在中断表的上半部分;它使用一个未公开的 DOS 3.30 特性来劫持 Int 21 - `Virus.DOS.Tiny.163.a`:普通的驻留内存的 COM 文件感染器 - 亮点:它驻留在启动后未使用的内存区域 - `Virus.Boot.Stoned.March6.t`:普通的 Stoned 变种 - 亮点:非常有名,名为“Michelangelo” - `Virus.Boot.Stoned.a`:普通的引导区感染器 - 亮点:非常有名 - `Virus.DOS.November17.855.a`:普通但编写规范的驻留内存型 COM/EXE 感染器 - 亮点:无,但在意大利广泛传播 - `Virus.Boot.PingPong.a`:非常有名的引导区病毒 - 反汇编未完成 ## 工作流程与工具 病毒源主要来自 VX Heaven 收集和 Open Malware。 二进制文件通过 IDA Pro 反汇编,并转换/处理为兼容 NASM 的格式(通过 `vx_convert_ida_to_nasm.rb`),然后进行静态分析。 在第一次研究会议之前,反汇编代码会被重新编译为“参考”二进制文件,其目的是确保在研究过程中没有引入错误,特别是在数字转换为标识符/操作时。 `vx_compare.sh` 脚本将反汇编代码汇编,并与参考文件进行二进制比较, 然后将差异(如果有的话)可视化。 原始文件不能用作参考,因为汇编器会引入差异(无功能影响),这是由于可以使用不同的操作码来编码相同的指令,例如: ``` (33FF) xor di,di <> (31FF) xor di,di ``` 参考文件已经引入了这些更改,因此与其进行比较不会显示这些差异。 ## 待反汇编候选 潜在有趣的病毒列表,按复杂度排序: - 小型 (大小 <= 1k) - int13 (512):有趣的隐蔽技术 [VB 199103] - 666 (512):有趣的簇感染;复杂的隐蔽技术 [VB 199005] - dir ii (1024):有趣的感染方式 [VB 199111] - 中型 (1K <= 大小 <= 2k) - vacsina (早期 yankeedoodle) (1206) - 1260 (~1.2k):第一个多态病毒;反调试 [VB 199003] - cascade (1701):技术先进 - caterpillar (~1700):加壳保护 - jerusalem (~1800):具有历史意义 - mix-1 (1.6k):有趣的内存例程;几个 payload [VB 198912] - 中/大型 (2k <= 大小 <= 3k) - flip (2153):多态;针对杀毒软件;隐蔽;加壳;技术先进 [VB 199009] - tequila (2400) - uruguay v3/5 (2.5k/2.7k) - invisible man (2.9k) - yankeedoodle (晚期 vacsina) (2.9k+) v33+:自校正代码;v50+:保护模式 - 大型 (3k+) - onehalf (3.5k) - commander bomber (4k):插入宿主中间 - tremor (4k):隐蔽技术等 - frodo/4k:大量隐蔽技术 [VB ?] - fish #6 (4k, frodo 变种):加壳 [? VB] - uruguay v6 (4.9k+) - whale (9k) - ssr (18k) - ACG (?, C?):变形病毒 [VB 199907] - RDA.Fighter 从 Virus Bulletin 获取灵感也可能很有趣。
标签:COM文件感染, Cutter, DAST, DOS病毒, Wayback Machine, x86汇编, 云资产清单, 代码复原, 内存驻留病毒, 反汇编, 古董恶意软件, 安全报告生成, 恶意软件分析, 标本分析, 病毒源码, 网络安全, 自动回退, 计算机历史, 逆向工程, 隐私保护