ReversingID/Shellcode-Loader

GitHub: ReversingID/Shellcode-Loader

一个系统讲解 shellcode 动态加载技术的开源学习仓库,覆盖 Linux 与 Windows 平台下从内存分配到执行隐藏的全流程技术及多语言实现。

Stars: 288 | Forks: 48

# Shellcode 加载器 用于学习动态加载 shellcode 的开源仓库。 **语言:** 印尼语(默认) | [英语](README.EN.md) ## 简介 本仓库汇集了关于 implant 所使用的将 shellcode 加载到内存中的技术的信息。本仓库向公众开放,`Reversing.ID` 社区的内部成员和外部人员均可访问。 ### 什么是 Shellcode? `Shellcode` 是一段具有特定目的的代码/指令,用于执行特定操作。在漏洞利用中,shellcode 被用作 payload(有效载荷),以便在特定限制下注入到目标系统中。 理论上,shellcode 可以执行任何操作。起初,shellcode 只是用于调用 shell 的指令。后来,shellcode 不断发展,具备了创建用户、删除数据等多种用途。 **使用的 shellcode 示例:** ``` # 9090CCC3 0000: 90 nop 0001: 90 nop 0002: CC int3 0003: c3 ret ``` ## 基础技术 本仓库讨论了加载 shellcode 的基本过程,即: | 技术 | 描述 | |--------|-----------| | **allocation** | 分配内存的策略,用于将 shellcode 作为可执行代码容纳其中 | | **storage** | 在执行前存储 shellcode 的策略 | | **execution** | 从内存中执行 shellcode 的策略 | | **writing** | 将代码写入/修改到内存的策略,无论是直接写入还是通过转换 | | **permission** | 管理 memory 的 permission/attribute 以实现执行 | | **access** | 加载过程中使用的各种 API 访问变体(主要针对 Windows) | | **concealment** | 隐藏 runtime 的技术,用于降低 implant 的可观察性(专用于 Windows) | 部分技术利用了 OS 提供的 API,无论是直接还是间接调用。 ## 仓库结构 ``` Shellcode-Loader/ ├── linux/ # Teknik untuk Linux │ ├── allocation/ # Memory allocation │ ├── storage/ # Shellcode storage │ ├── execution/ # Code execution │ ├── writing/ # Code writing │ └── permission/ # Permission management │ ├── windows/ # Teknik untuk Windows │ ├── access/ # Windows API reference │ ├── allocation/ # Memory allocation │ ├── storage/ # Shellcode storage │ ├── execution/ # Code execution (dengan sub-teknik) │ │ ├── asm-jmp/ │ │ ├── callback/ │ │ ├── event/ │ │ ├── fiber/ │ │ ├── invoke/ │ │ └── thread/ │ ├── writing/ # Code writing │ ├── permission/ # Permission management │ └── concealment/ # Runtime concealment (Windows) │ ├── module-stomping/ │ ├── sleep-obfuscation/ │ └── stack-spoofing/ │ ├── README.md # Dokumentasi ini ├── README.EN.md # Dokumentasi dalam English ├── CONTRIBUTING.md # Panduan kontribusi ├── RESOURCES.md # Indeks lengkap dan referensi └── .gitignore # Git ignore rules ``` ## 快速开始 ### 1. 从这里开始 - **初学者?** 阅读上方的 [Shellcode 简介](#apa-itu-shellcode) - **想查看所有技术?** 查看 [RESOURCES.md](RESOURCES.md) - **想要贡献?** 阅读 [CONTRIBUTING.md](CONTRIBUTING.md) ### 2. 选择平台 - **Linux:** 打开 [linux/](linux/) 目录 - **Windows:** 打开 [windows/](windows/) 目录 ### 3. 选择技术 每个技术目录包含: - `README.md` - 技术文档 - 目录(例如 `c++/`)包含特定语言的代码实现 - 示例与说明 ## 注意事项 - 本仓库中的技术主要针对 x86(以及 x64)架构,除非另有说明 - 文档和实现使用印尼语,并提供英语版本 - 本仓库是面向网络安全社区的开源教育资源 ## 免责声明 本仓库仅用于网络安全教育和研究目的。本仓库中的所有技术和代码均用于合法的安全学习和调查。使用者应对本仓库中信息的使用负责,并必须遵守其所在司法管辖区的所有适用法律和法规。
标签:Raspberry Pi, shellcode加载器, SIP, 内存执行, 端点可见性, 红队技术, 自动回退