把玩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的头像置为红色,且一直闪烁。