android firmware 利用UDP socket发送Magic Packet--python版本
android firmware 利用UDP socket发送Magic Packet--python版本
#!/usr/bin/python import sys, time
from struct import *
from socket import * src_ip = '192.168.1.108'
dst_ip = '192.168.1.105'
port = 2014 try:
# s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
s = socket(AF_INET, SOCK_DGRAM)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
s.bind((src_ip, port))
except socket.error, msg:
print 'Socket could not be created. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit() #wakeup pattern
ff_pattern = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
wakee_mac = [0x00, 0x03, 0x7F, 0x33, 0x11, 0x22]
secure_on = [0x08, 0x00, 0x27, 0x1d, 0x32, 0x51]
wakeup_identification = 'SECWOW'
reserve = [0x00, 0x00, 0x00, 0x00]
app_id = 0 #can be 0/1/2
passwd = '123456789' #len = 0~16
passwd_len = len(passwd) #pack_format = '8sBBBBBBBB' + str(passwd_len) + 's' + 'x' * (16 - passwd_len)
pack_format = 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB6sBBBBBB' + str(passwd_len) + 's' + 'x' * (passwd_len) user_data = pack(pack_format, ff_pattern[0], ff_pattern[1], ff_pattern[2], ff_pattern[3], ff_pattern[4], ff_pattern[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
wakee_mac[0], wakee_mac[1], wakee_mac[2], wakee_mac[3], wakee_mac[4], wakee_mac[5], \
secure_on[0], secure_on[1], secure_on[2], secure_on[3], secure_on[4], secure_on[5], \
wakeup_identification, \
reserve[0], reserve[1], reserve[2], reserve[3], \
app_id, passwd_len, passwd) while 1:
s.sendto(user_data, (dst_ip, port))
time.sleep(5)
android firmware 利用UDP socket发送Magic Packet--python版本的更多相关文章
- android firmware 利用UDP socket发送Magic Packet--c语言版本
android firmware 利用UDP socket发送Magic Packet 1 Magic Packet格式: 6个0xFF + 16个Dst Mac Address 2 代码需要设置目的 ...
- wireshark 抓包再利用TCP socket发送包里的payload是可以实现登陆的
用户密码可被批量破解 在用户使用手机端登录时,对数据进行抓包分析. 多次抓包分析后,可得到几个关键TCP数据包. 根据前面逆向编写出的解密算法,使用socket进行数据发包测试: 可以模拟APK进行用 ...
- 网络远程唤醒 WOL Magic Packet
Magic Packet Magic Packet白皮书介绍: The basic technical details of Magic Packet Technologyare simple and ...
- 网络远程唤醒 WOL Magic Packet【转】
转自:https://www.cnblogs.com/dcb3688/p/4608063.html Magic Packet Magic Packet白皮书介绍: The basic technica ...
- TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。
一.TCP通信测试: 1) 创建TCP Server: 选中左方的TCP Server, 然后点击”创建”按钮,软件弹出监听端口输入框 输入监听端口后,即创建了一个在指定端口上进行监听的TCP S ...
- Android(java)学习笔记80:UDP协议发送数据
UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: 1 package cn.itcast_02; import java.io.IOException; import java.net. ...
- 项目总结22:Java UDP Socket数据的发送和接收
项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...
- Android(java)学习笔记20:UDP协议发送数据
1. UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: package cn.itcast_02; import java.io.IOException; import java.net ...
- 【Android开发—智能家居系列】(四):UDP通信发送指令
思路回顾 [1]手机连接WIFI模块 [2]UDP通信对WIFI模块发送指令,以和WIFI模块保持连接状态 [3]UDP通信对WIFI模块发送指令,让其搜索可用的无线网,返回WIFI列表 [4]发送指 ...
随机推荐
- js进度条实现
1.先设置CSS样式(可自定义) /*#region 进度条 */ .progbar { background-color: #e1e1e1; width:auto; color: #222; hei ...
- Mysql数据库的使用经验总结
1. 对mysql插入中文的时候显示乱码,搞了很多天,把服务端.客户端和数据库的编码全改为u8了又重新创建数据库和表还是不行,到最后却发现没有乱码!原来只是windows的cmd没有支持u8,换个客户 ...
- “VS2013无法连接远程数据库”解决方案
“VS2013无法连接远程数据库” 解决方案:以管理员身份登录CMD,输入netsh winsock reset并回车(注意,必须是已管理员身份运行,这个重置LSP连接) 或 netsh winsoc ...
- Mac系统默认MAWP配置
MAC系统是自带apache的,配置起来也很容易,但是本身是不支持php的需要手动开启一下,这里记录一下配置过程 1.apache配置文件在/etc/apache2/httpd.conf,把Docum ...
- UVa 10071 - Back to High School Physics
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...
- c#中获取数组的行列个数的方法
GetUpperBound可以获取数组的最高下标.GetLowerBound可以获取数组的最低下标.这样就可以实现对数组的遍历//定义二维数组string[,] myStrArr2=new strin ...
- java与微信企业号交互
微信企业号接收消息(使用SpringMVC): http://blog.csdn.net/omsvip/article/details/39480577 微信企业号api: http://qydev. ...
- java并发的理解
我认为并发大体上分为两种情况 1,多个线程或者进程访问公共资源,比如12306 2,多个线程访问同一个实例变量,比如tomcat 多个请求的线程访问同一个单例bean,如果bean是有状态的,就可能出 ...
- E. Santa Claus and Tangerines 二分答案 + 记忆化搜索
http://codeforces.com/contest/752/problem/E 首先有一个东西就是,如果我要检测5,那么14我们认为它能产生2个5. 14 = 7 + 7.但是按照平均分的话, ...
- Linux编程下EAGAIN和EINTR宏的含义及处理
Linux中的EAGAIN含义 在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). linux下使用write\send ...