NasrAssi/linux-systems-and-security
GitHub: NasrAssi/linux-systems-and-security
一套使用 C 和 x86 汇编从零实现的 Linux 底层系统编程项目集,涵盖 ELF 加载与分析、Unix shell、大数算术和基于特征码的病毒检测等组件。
Stars: 1 | Forks: 0
# Linux 系统与安全
这是一套使用 **C** 和 **32位 x86 汇编** 在 Linux 上编写的底层系统编程项目。工作内容深入到了 ELF 二进制格式、进程控制、动态加载、多精度算术和安全工具领域——所有这些都是在原始的 syscall/ABI 层面上从零开始实现的,没有使用任何高级框架。
**技术栈:** C (C99) · x86 汇编 (NASM) · GNU Make · GNU ld 链接脚本 · GDB · Linux (32位 / i386)
## 项目
| 项目 | 简介 | 核心概念 |
|---|---|---|
| [**elf-loader**](elf-loader) | 一个用户空间程序加载器,将 ELF 的 `PT_LOAD` 段以正确的权限映射到内存中,并将控制权转移到入口点。 | `mmap`/`mprotect`、程序头、分页、ABI 交接 |
| [**elf-analyzer**](elf-analyzer) | 交互式 ELF 检查器,可解析头、节表和符号表——并且能够合并两个可重定位目标文件——无需任何第三方库。 | ELF 格式、`mmap`、节/符号表 |
| [**signature-based-antivirus**](signature-based-antivirus) | 加载病毒特征数据库(支持大/小端序),检测目标文件中匹配的字节序列,并通过修补二进制文件来消除它们。 | 二进制解析、字节序、链表、文件修补 |
| [**unix-process-shell**](unix-process-shell) | 一个 Unix shell,具备进程 fork/执行、管道、I/O 重定向、后台作业和信号控制功能。 | `fork`/`exec`、管道、`dup2`、信号 |
| [**x86-bignum-arithmetic**](x86-bignum-arithmetic) | 手写的 x86 汇编,对带长度前缀的字节数组执行多精度(大数)算术运算,并附带一个 LFSR 随机数生成器。 | NASM、x86 ABI、进位传播、LFSR、libc 调用 |
| [**elf-manipulation-suite**](elf-manipulation-suite) | 一个 `hexeditplus` 内存/文件十六进制编辑器,外加一个 gdb 二进制修补目标,并带有带注释的 ELF 格式图表。 | 十六进制编辑、原始文件 syscall、gdb、ELF 布局 |
## 展示的技能
- **语言:** C (C99)、x86 汇编 (NASM)
- **操作系统:** Linux syscall、`fork`/`exec`/`wait`、管道、`dup2`、信号、`mmap`/`mprotect`、原始文件 I/O
- **二进制 / ELF 内部原理:** ELF32 头、程序与节头、符号与重定位表、动态加载、链接脚本、x86 调用约定
- **工具链:** GCC (`-m32`)、NASM、GNU Make、GDB
## 构建与运行
所有项目均针对 **32位 x86 Linux**。在 64 位主机上,请安装 multilib 工具链:
```
sudo apt-get install gcc-multilib nasm gdb make # Debian / Ubuntu
```
然后,在任何项目文件夹中:
```
make # build
make clean # remove build artifacts
```
每个项目都有自己的 README,其中包含运行说明、示例会话以及它所演示的概念。
这些项目起源于学术系统编程环境,作为我个人作品集分享。请不要将它们作为您自己的作品提交——这样做违反了学术诚信政策,且抄袭检测工具会扫描公开的代码库。
标签:ELF文件, Linux系统编程, SNI设置, Unix Shell, x86汇编, 二进制分析, 云安全运维, 反病毒, 客户端加密, 底层开发