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汇编, 二进制分析, 云安全运维, 反病毒, 客户端加密, 底层开发