0%

利用ARP欺骗实现手机抓包

什么是ARP协议

地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。ARP最初在1982年的RFC 826(征求意见稿)[1]中提出并纳入互联网标准 STD 37. ARP 也可能指是在多数操作系统中管理其相关地址的一个进程。
ARP是通过网络地址来定位MAC地址。 ARP已经在很多网路层和数据链接层之间得以实现,包括IPv4,Chaosnet, DECnet和Xerox PARC Universal Packet(PUP)使用IEEE 802标准, 光纤分布式数据接口, X.25, 帧中继和异步传输模式(ATM),IEEE 802.3和IEEE 802.11标准上IPv4占了多数流量。
在IPv6中邻居发现协议(NDP)用于代替地址解析协议(ARP)。
–维基百科

ARP基本功能

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

正常情况wireshark所抓的包
mark

什么是ARP欺骗

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网上上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线。–维基百科

ARP欺骗原理

ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网络上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到拒绝服务攻击的效果。

阅读全文 »

利用pytorch优化2D函数实例

目标函数

mark
函数图像
函数图像如上图所示,我们可以大致发现在图像上约有四个极值点

解决方案

利用随机梯度下降计算局部极小值
再通过改变坐标的初始值来追踪坐标的优化路径

初始值为(0,0)
函数图像及下降方向
初始值为(-1,0)
函数图像及下降方向
初始值为(-1,-1)
函数图像及下降方向
初始值为(1,-2)
函数图像及下降方向

代码实现

  1. 打开pycharm中的设置,去勾选show plots in tool window,这样打开matplotlib画出的图像就可以交互里

    pycharm设置

  2. 如下
    运行图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/python3
# @Time : 2020/3/7 下午5:37
# @Author : lovemefan
# @File : 2dfuction.py
import numpy as np
from matplotlib import pyplot as plt
import torch
from mpl_toolkits.mplot3d import Axes3D
def function(x, y):
return (x**2 + y - 11)**2 + (x + y**2 - 7)**2


if __name__ == '__main__':
# 随机梯度下降

# 记录坐标优化路径
coordinate =[]
# 初始化坐标
x = torch.tensor([0., 0.], requires_grad=True)
print("x shape:",x.shape)
optimizer = torch.optim.Adam([x], lr=1e-3)
for step in range(20000):

pred = function(x[0], x[1])
# 梯度清零
optimizer.zero_grad()
# pred 求梯度,
pred.backward()
# 更新x坐标
optimizer.step()
if step % 100 == 0:
coordinate.append([x.tolist()[0], x.tolist()[1], pred.item()])
if step % 2000 == 0:
print("step {} : x={}, f(x)={}".format(step, x.tolist(), pred.item()))

# 绘图
x = np.arange(-6, 6, 0.1)
y = np.arange(-6, 6, 0.1)
print("x,y range:", x.shape, y.shape)
# 生成二维网格
X, Y = np.meshgrid(x, y)
print("X, Y maps:", X.shape, Y.shape)
Z = function(X, Y)

fig = plt.figure("himmelblau")
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, color='blue', alpha=0.8)
ax.view_init(60, -30)
coordinate = np.array(coordinate)
x = coordinate[:, 0]
y = coordinate[:, 1]
z = coordinate[:, 2]

# 绘制散点图
ax.scatter(x, y, z, s=5, c='red')
# 添加坐标轴(顺序是Z, Y, X)
ax.set_zlabel('Z', fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y', fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X', fontdict={'size': 15, 'color': 'red'})
plt.savefig("3dfunction4.png")
plt.show()
阅读全文 »

Ubuntu19 下使用pip安装好包以后,在Pycharm中依然无法使用的解决办法

问题原因

由于pip安装的包与系统下python interpreter 下的包目录不一致,导致pycharm中无法识别相关包,

解决办法

  1. 如下找不到pip安装的包
    mark

  2. 使用pip show 或者pip install查看包安装路径
    mark

  3. 在pycharm中查看python library所在路径
    mark

  4. 将pip安装路径的包复制到python library中,这样ubunut下pycharm就能识别出包了

阅读全文 »

Ubuntu 18.04.1 LTS 安装tensorflow-gpu

1.安装驱动

93

2.安装python3.6

1
2
3
4
5
6
wget http://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz 
tar -xvzf Python-3.6.4.tgz cd Python-3.6.4
./configure --with-ssl
make
sudo make install
sudo apt-get install pip3

4.CUDA Toolkit 9.0

下载地址
1547038387531
进入步骤1.1中下载文件
cuda_9.0.176_384.81_linux.ru
在安装CUDA前先装依赖包

1
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev

所在目录,执行如下命令安装CUDA 9.0:

1
2
sudo chmod +x cuda_9.0.176_384.81_linux.run 
sudo ./cuda_9.0.176_384.81_linux.run -override
阅读全文 »

为什么要备案

根据国务院令第292号《互联网信息服务管理办法》和工信部令第 33 号《非经营性互联网信息服务备案管理办法》规定,国家对经营性互联网信息服务实行许可制度,对非经营性互联网信息服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务,否则属于违法行为。

不备案的影响

域名将无法解析
也就是说,使用中国大陆境内的服务器开办网站必须先办理网站备案,备案成功才能合法的使用域名解析,不然买个域名啥都没用.不想备案就只能使用香港或境外服务器,笔者学生党买不起

如何备案

目前阿里云,腾讯云,百度云都可代理备案
首先备案需要个人真实信息,不需要收费

备案基本流程

mark

注意事项

  • 网站名称要求三个字以上(含三个字),不可以有敏感词啦,个人网站名称要尽量体现个人网站的主要内容;例如,技术分享类,个人爱好类;不能涉及到论坛、博客、行业、企业、产品、经营性等信息,且个人网站名称请勿涉及个人姓名、域名、地名、成语。(不合格则驳回)
  • 域名千万别解析,管局规则要求,未取得备案号的域名,在备案期间禁止打开访问(解析就驳回)

    进度记录

    完成备案信息

    mark
    上传材料有身份证正反面,还有穿着衣服的非裸贷手持身份证照片(+_+)以及网站核验单(按要求来)
阅读全文 »

ivideo

发现一款好东西当然要分享出来了
Windows,Linux,Mac原项目链接
安卓版原项目链接
网页版原项目链接

##产品介绍

基于 Electron 开发的跨平台客户端版本的视频播放器,该播放器包括国内主流视频平台视频资源,你不用去单独下载各个平台的客户端,只需要使用这一个客户端就能查看所有平台的视频,并且内置了各大视频网站 VIP 资源。

##使用方法

  1. 下载客户端
  1. 选择视频资源

比方说看腾讯视频上的 VIP 才能看的《下一站,别离》

阅读全文 »