移动端:基于Android系统开发的应用,表层应用是基于baiduMap 路线规划app
服务端:基于python web 开发框架 django 实现。
通信信道:基于第三方SDK Jpush推送消息+自己一套加密系统
推送原理:
1. 轮询方式(pull):实现消息队列 轮询频率问题
2.SMS(push):拦截消息 解析意图 成本高
3.持久链接(push):解决轮询性能问题
XMPP协议:
基于XML
核心部分:在网络上分片发布XML的流协议Android客户端要点:
1.传递信息
(1)传递信息是指僵尸应用可以获取移动终端的基本信息,如: 位置、服务商信息、号码以及个人基本信息等;
(2)发送心跳包,服务端通过对发来的包的解析来判断在线主机以及状态。
2.解析命令
Web服务器通过会通过相关信道对部分僵尸客户端发送命令,客户端解析服务端发送的数据转化成相应的指令。
3.执行命令
根据服务端发送的指令,指向相关的操作。
服务端:1.连接过程: 连接过程就是Web服务器和Android客户端之间所建立的一种连接,以保证服务端可以监控到僵尸手机是不是在线。
2.命令推送过程: 当攻击者想执行某个操作时候,通过向Android手机推送命令的过程。
3.应答过程: 应答过程就是当命令推送过程之后,Android手机执行命令,向客户端返回响应的执行结果的过程。
4.断开过程: 断开过程即在响应过程完成以后,Web服务器和Android手机断开连接的过程。项目代码后续传到 github:https://github.com/myjack 敬请关注
来源:oschina
链接:https://my.oschina.net/u/1045974/blog/471822