Sam-Sepiol-26/ShadowVault-POC
GitHub: Sam-Sepiol-26/ShadowVault-POC
一个用 C 语言实现的运行时字符串混淆概念验证项目,演示恶意软件如何利用 XOR 加密和动态密钥派生来规避静态分析。
Stars: 0 | Forks: 0
# ShadowVault:字符串混淆 PoC
一个轻量级的 C 语言实现,演示了**基于 XOR 的字符串加密**和**通过指针修改内存**。本项目作为一个基础研究,展示了恶意软件如何对静态分析工具(如 `strings` 或基础反汇编器)隐藏静态字符串(例如 C2 IP 地址)。
## 技术概述
该程序利用了恶意软件开发中常见的几个概念:
* **XOR 编码:** 对内存中硬编码的 IP 地址进行混淆。
* **指针运算:** 使用 `uint32_t*` 跨函数边界传递和修改 key。
* **影子拷贝:** 实现了局部“影子” key,以演示作用域如何在执行过程中影响变量的值。
* **按位操作:** 使用左移(`<<`)在运行时动态生成解密 key。
## 逆向工程视角
从逆向工程师的角度来看,这段代码设置了一些“减速带”:
1. **动态 key 生成:** key 在执行 XOR 操作之前会在 `modify_value()` 中被修改,从而防止了对 key 的简单静态提取。
2. **栈 vs 全局:** 全局 `master_key` 与 `main()` 中局部 `master_key` 之间的差异是初学者常遇的经典陷阱。
## 快速开始
### 编译
使用 GCC:
```
gcc src/main.c -o shadowvault.exe
```
标签:DAST, DNS 反向解析, 云资产清单, 代码混淆, 客户端加密, 恶意软件分析, 概念验证, 逆向工程