一个基于ESP32-S3的USB键盘记录器,支持WiFi,易于DIY,使用广泛可用的硬件。

DuckLogger 是一个基于 ESP32-S3 的 USB 键盘记录器。它将按键记录到文本文件中,并通过内置的 Wi-Fi 接入点提供无线访问以下载日志。 复刻此项目无需定制 PCB。这里使用的硬件在速卖通等平台总价不到 10 美元。

通过以下地址访问 Web UI:
http://192.168.4.1/
(在接入点模式下)


| ESP32-S3 | CH9350 |
|---|---|
| 5V | 5V |
| GND | GND |
| GP1 | TX |
| GP2 | RX |
CH9350 支持多种工作模式,通过板载 DIP 开关进行配置。

将 S0 置于 GND 位置 (0),并将所有其他开关置于相反位置 (1)。这将启用 USB 主机模式,该模式将 USB 键盘输入转换为通过 UART 以默认波特率 115200 发送的串行数据。
DuckLogger 使用 MicroPython 编写。请为您的开发板刷写 MicroPython 固件。 刷写步骤请参见此处。
刷写完成后,断开并通过 USB 重新连接开发板。
git clone https://github.com/Itsmmdoha/duckLogger.git
cd duckLogger
确保您的开发板已通过 USB 连接,然后运行:
python flasher.py
刷写器将自动:
mpremote 和所需的 MicroPython 包index.html 并将所有文件复制到开发板将 USB 键盘插入 CH9350 HID 模块。
使用 USB-C 转 USB-A 数据线将 ESP32-S3 SuperMini 连接到目标 PC。
设备将自动:
如果处于接入点模式(默认),请连接到 Wi-Fi 接入点(默认密码:duckPass1234),然后打开:
http://192.168.4.1/
以访问命令与控制中心。
DuckLogger 目前支持一组核心的 DuckyScript 命令用于载荷注入:
.
├── flasher.py
├── index.html
├── lib
│ ├── access_point.py
│ ├── api.py
│ ├── duckyscript.py
│ ├── keyboard.py
│ ├── key_led.py
│ ├── logger.py
│ ├── mapper.py
│ ├── microdot
│ │ ├── helpers.py
│ │ ├── __init__.py
│ │ ├── microdot.py
│ │ └── websocket.py
│ ├── queue.py
│ ├── settings.py
│ ├── uart_buffer.py
│ ├── wifi.py
│ └── wifi_radio.py
├── LICENSE
├── main.py
├── README.md
├── resources.md
└── settings.json
本项目包含 Miguel Grinberg 的 Microdot(MIT 许可证):
https://github.com/miguelgrinberg/microdot
| 命令 | 描述 | 示例 |
|---|
DELAY | 暂停执行指定的毫秒数。 | DELAY 500 |
STRING | 精确键入所写的字符序列。 | STRING Hello, World! |
| 组合键 | 发送同时按键组合。 | CTRL SHIFT ESC 或 ALT i |
| 单键 | 发送单个特殊键。 | ENTER 或 TAB |