把玩e-Buddy
Mar 1, 2016
Technology
状态
逆向工程得出的控制指令:
################
#Commands
################
# GLADNESS = 00
# FEAR = 01
# FIZZ = 02
# PLEASANTSURPRISE =03
# GRIEF = 04
# FURY = 05
# QUELL = 06
# REDHEAD = 07
# GREENHEAD = 08
# BLUEHEAD = 09
# YELLOWHEAD = 10
# BLAME = 11
# BLUEGREENHEAD = 12
# WHITEHEAD = 13
# HEART = 14
# WINGS = 15
# BODY = 16
# NOEFFECT = 17
# ONLINE = 18
# BUSY = 19
# DAZE = 20
# BACKSOON = 21
# AWAY = 22
# PHONE = 23
# LUNCH = 24
# OFFLINE = 25
功能列表:
| 功能代码 | 描述 | 详细描述 |
|---|---|---|
| 00 | 开心 | 头灯变换彩色,翅膀扇动 |
| 01 | 惊恐 | 头灯变换彩色,心灯红色,翅膀扇动 |
| 02 | 嘶嘶 | 头灯变换彩色,心灯红色,翅膀扇动, 身体转动 |
| 03 | 惊喜 | 头灯变换彩色,心灯红色,翅膀扇动, 之后身体转动,头灯红 |
| 04 | 酸溜溜 | 头灯变换彩色,翅膀扇动, 之后头灯变幻 |
| 05 | 愤怒 | 头灯红色,翅膀扇动, 身体扭动 |
| 06 | 扭动 | 头灯蓝色,翅膀扇动, 身体平缓扭动 |
| 07 | 红头 | 头灯红色, 闪烁 |
| 08 | 绿头 | 头灯绿色,闪烁 |
| 09 | 蓝头 | 头灯蓝色,闪烁 |
| 10 | 黄头 | 头灯黄色,闪烁 |
| 11 | 责骂 | 头灯蓝色,闪烁 |
| 12 | 绿色->蓝色头 | 头灯绿色到蓝色变换 |
| 13 | 白头闪 | 头灯白色变换 |
| 14 | 心跳 | 心灯红色闪烁后,身体转动 |
| 15 | 挥翅 | 翅膀不停挥动 |
| 16 | 身体转动 | 身体转动 |
| 17 | 无效果 | 无任何效果 |
| 18 | 在线 | 心灯一直闪动,不会停止,除非转为其他效果 |
| 19 | 忙碌 | 心灯一直快速闪动,不会停止,除非转为其他效果 |
| 20 | 发呆 | 心灯一直慢速闪动,不会停止,除非转为其他效果 |
| 21 | 马上回来 | 心灯三短闪烁后停止一会,不会停止,除非转为其他效果 |
| 22 | 离开 | 心灯三短闪烁后停止一会,不会停止,除非转为其他效果 |
| 23 | 离开 | 心灯持续跳动,不会停止,除非转为其他效果 |
| 24 | 离开 | 心灯两短后持续跳动,不会停止,除非转为其他效果 |
| 25 | 离开 | 心灯四短后,永久沉默 |
e-buddy本地服务器
有人已经实现了e-buddy的python库,直接拷贝到本地并运行:
$ git clone git@github.com:purplepalmdash/pybuddy-dx.git
$ virtualenv2 venv2 --python=python2.7
✗ . ~/venv2/bin/activate
(venv2) ➜ _posts git:(master) ✗ python
Python 2.7.11 (default, Dec 6 2015, 15:43:46)
[GCC 5.2.0] on linux2
$ pip install pyusb
$ python pybuddyDX1.py
2016-02-23 15:51:39,242 INFO Searching e-buddy...
2016-02-23 15:51:39,399 INFO DX e-buddy found!
2016-02-23 15:51:39,962 INFO Starting daemon...
py文件运行后将监听127.0.0.1的8888端口,通过往该端口输入状态码,e-buddy将呈现不同的状态 。
操纵e-buddy
用python操控e-buddy的命令如下:
python
Python 2.7.11 (default, Dec 6 2015, 15:43:46)
[GCC 5.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> UDP_IP = "127.0.0.1"
>>> UDP_PORT = 8888
>>> sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> sock.sendto("07",(UDP_IP, UDP_PORT))
2
或者,直接用bash来操作udp socket:
#!/bin/bash
while true
do
echo 07 > /dev/udp/127.0.0.1/8888
sleep 3
done
以上的脚本就可以直接将e-buddy的头像置为红色,且一直闪烁。
