Создание необработанных пакетов для подмены пакетов UDP
Я ищу, чтобы подделать пакеты UDP, используя Java. Есть ли какие-нибудь хорошие библиотеки Java, которые позволяют вам создавать свои собственные RAW SOCKETS?
4 ответа
Я бы использовал Java API, который оборачивает libpcap.
libpcap имеет функцию "inject", которая позволяет вам отправлять необработанный пакет. (Конечно, у вас должны быть привилегии root или администратор на машине, с которой вы пытаетесь отправить пакет.) Существует несколько доступных API-интерфейсов Java, таких как jNetPcap или jpacp. Например, у jpcap есть класс, который позволяет вам отправлять любой пакет.
Это не то, что требует другой библиотеки. Обычно это часть стандартной библиотеки сокетов на платформе, например, Winsock или Berkeley. Соответствующий вариант часто называют ASOCK_RAW
,
В Windows XP SP2 (и, вероятно, более высоких версиях, включая Vista, но я не уверен в этом), сырые сокеты отключены. Эти ограничения несколько менее строгие для сокетов UDP, чем для сокетов TCP, поэтому вы все равно сможете делать все, что пытаетесь. Эта ссылка содержит информацию о том, что вы можете сделать и как это сделать, что, вероятно, поможет вам или, по крайней мере, поможет вам определить, возможно ли это.
Если вы хотите написать java-программу для подделки пакетов UDP, то я бы использовал jNetPcap или jpcap, как это предложил Майк. Если вы просто хотите подделать (не писать программу), я бы попробовал Wireshark.