Skip to content

About

阿波罗钓鱼演练无害化演示附件源代码

Resources

Stars

7 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

ApolloScreen - 无害化附件演示工具

项目简介

ApolloScreen是ApolloFish钓鱼演练平台配套的轻量级演示工具,功能为屏幕截图捕获一键上传至平台,全程遵循无害化设计,保障演练环境安全可控。客户端代码已开源,赋能安全从业者快速构建自定义演示能力。

alt text

✨ 开源开放:客户端源码全公开,支持二次开发与个性化定制,携手社区共建安全演练新生态。欢迎大家关注阿波罗系列项目!

功能特性

  • ✅ 全屏截图捕获 - 支持多显示器环境,捕获虚拟屏幕的所有内容
  • ✅ PNG 编码 - 使用 GDI+ 将截图编码为 PNG 格式,存储在内存中
  • ✅ 自动上传 - 通过 HTTP POST 请求将截图和系统信息上传到服务器
  • ✅ 系统信息收集 - 自动获取并上传 IP 地址、用户名、主机名
  • ✅ 高 DPI 支持 - 支持高分辨率显示器,解决 DPI 缩放导致的截图区域偏小问题
  • ✅ 跨架构支持 - 支持 x86 和 x64 两种架构

技术架构

核心组件

  1. 主程序 (ScreenToMemory.cpp)

    • C++ 编写的核心逻辑
    • 使用 Windows API 进行屏幕捕获和网络通信
    • 支持控制台输出和消息框提示
  2. 汇编模块 (code_x86.asm / code_x64.asm)

    • 分别支持 x86 和 x64 架构
    • 用于存储服务器 URL 和提示内容
    • 通过函数导出提供给主程序调用
  3. 服务器端 (server.py)

    • Flask 编写的简单接收服务器
    • 接收 multipart/form-data 格式的数据
    • 保存截图文件到本地

技术亮点

1. 混合编程架构

  • 采用 C++ + 汇编语言的混合编程方式
  • 使用汇编模块存储敏感信息(服务器 URL),增加逆向分析难度
  • 不同架构使用对应的汇编文件,编译时自动选择

2. 原生 Windows API 调用

  • GDI+ API: 用于屏幕捕获和 PNG 编码,无需第三方图像库
  • WinHTTP API: 使用 Windows 原生 HTTP 库,避免依赖第三方网络库(如 libcurl)
  • Shell Scaling API: 实现 Per-Monitor DPI Awareness,完美支持高 DPI 显示器

3. 内存流处理

  • 使用 IStream 接口创建内存流
  • 将 PNG 编码直接写入内存,避免临时文件
  • 提高了执行效率和安全性

4. 多显示器支持

  • 使用 SM_CXVIRTUALSCREEN 和 SM_CYVIRTUALSCREEN 获取虚拟屏幕尺寸
  • 支持跨越多个显示器的截图场景

5. UTF-8 编码支持

  • 完整的 UTF-8 到宽字符转换
  • 支持中文字符的正确显示和处理

6. 网络通信优化

  • 使用 multipart/form-data 格式上传文件
  • 支持 HTTP 和 HTTPS 协议
  • 设置合理的超时时间(30秒)

7. 编译配置优化

  • Release 版本关闭缓冲区安全检查以提高性能
  • 使用全程序优化(Whole Program Optimization)
  • 优化代码大小(MinSpace)

优点分析

优点 ✅

  1. 性能优异

    • 使用原生 Windows API,执行效率高
    • 无需额外依赖库,减少运行时开销
    • 内存流处理,避免磁盘 I/O
  2. 兼容性好

    • 支持 Windows 10 及以上版本
    • 完美支持高 DPI 显示器
    • 支持 x86 和 x64 架构
  3. 安全性考虑

    • 服务器 URL 存储在汇编模块中,增加逆向难度
    • 不产生临时文件,降低泄露风险
    • 使用 Windows 原生 API,减少第三方库的安全隐患
  4. 用户体验

    • 自动获取系统信息
    • 友好的中文提示信息
    • 支持消息框和控制台双重输出
  5. 代码质量

    • 规范的错误处理
    • 资源释放完善(GDI+、WinHTTP 句柄等)
    • UTF-8 编码支持良好

注意事项

⚠️ 本工具仅用于合法的安全意识培训和授权测试,请勿用于非法用途。

About

阿波罗钓鱼演练无害化演示附件源代码

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages