From 51a349c36789fd801f5e670aa872893ae6b50005 Mon Sep 17 00:00:00 2001 From: neru Date: Fri, 19 Jun 2026 08:31:58 -0300 Subject: [PATCH] feat: add spoofer base --- src/unlocker/spoofer.cpp | 62 ++++++++++++++++++++++++++++++++++++++++ src/unlocker/spoofer.h | 34 ++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 src/unlocker/spoofer.cpp create mode 100644 src/unlocker/spoofer.h diff --git a/src/unlocker/spoofer.cpp b/src/unlocker/spoofer.cpp new file mode 100644 index 0000000..2f945b8 --- /dev/null +++ b/src/unlocker/spoofer.cpp @@ -0,0 +1,62 @@ +#include "spoofer.h" +#include "utils.h" +#include "log-sink.h" + +#include + +#include + +#include +#include + +#include + +#include + +#include + +Spoofer::Spoofer() +{ + _log = new seallib::Logger("Spoofer"); + _log->addSink(std::make_shared()); + + _log->info("Spoofer init"); + +} + +Spoofer::~Spoofer() +{ + _log->info("Stopping WebSocket server"); + delete _log; +} + +void Spoofer::registerListeners(TinyMITMProxy* proxy) +{ + proxy->onClientRequest.addListener( + [this](const std::string& url, std::string& body, std::string& headers, bool& blockOutgoing) { + this->clientRequestHandler(url, body, headers, blockOutgoing); + }); + + proxy->onServerResponse.addListener( + [this](const std::string& url, std::string& body, std::string& headers, bool wasBlocked) { + this->serverResponseHandler(url, body, headers, wasBlocked); + }); +} +/* + proxy handlers +*/ +void Spoofer::serverResponseHandler(const std::string& url, std::string& body, std::string& headers, + bool& /*blockOutgoing*/) +{ + if (url.find("bhvrdbd.com") == std::string::npos) return; + + std::lock_guard lock(_mutex); +} + +void Spoofer::clientRequestHandler(const std::string& url, std::string& body, std::string& /*headers*/, bool /*wasBlocked*/) +{ + if (url.find("bhvrdbd.com") == std::string::npos) return; + + std::lock_guard lock(_mutex); + +} diff --git a/src/unlocker/spoofer.h b/src/unlocker/spoofer.h new file mode 100644 index 0000000..4f7d48d --- /dev/null +++ b/src/unlocker/spoofer.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include +#include +#include + +#include + +#include + +namespace seallib +{ + class Logger; +} + +class Spoofer +{ + public: + Spoofer(); + ~Spoofer(); + + void registerListeners(TinyMITMProxy* proxy); + + private: + /* + proxy handlers + */ + void serverResponseHandler(const std::string& url, std::string& body, std::string& headers, + bool& blockOutgoing); + void clientRequestHandler(const std::string& url, std::string& body, std::string& headers, bool wasBlocked); + seallib::Logger* _log = nullptr; + std::mutex _mutex; +};