4 Commits

Author SHA1 Message Date
neru de561d5170 fix: commit missing stuff
Build / build (push) Failing after 20m17s
2026-06-24 02:20:21 -03:00
neru ea7529c1d7 feat: bypass xbox chat filtering
Build / build (push) Has been cancelled
2026-06-24 02:18:44 -03:00
neru 8830d1abdb Merge branch 'main' of https://git.neru.rip/neru/HexUnlocked
Build / build (push) Failing after 23m50s
2026-06-20 11:46:43 -03:00
neru 71fe1c6549 fix: icon missing from tray 2026-06-20 10:57:10 -03:00
5 changed files with 54 additions and 3 deletions
+4 -2
View File
@@ -6,6 +6,7 @@
#include "log-sink-file.h" #include "log-sink-file.h"
#include "proxy-configurator.h" #include "proxy-configurator.h"
#include "cache-cleaner.h" #include "cache-cleaner.h"
#include "xbox-fixes.h"
#include <seallib/log.h> #include <seallib/log.h>
#include <tinymitm/proxy.h> #include <tinymitm/proxy.h>
@@ -103,9 +104,11 @@ bool run()
conf = new ProxyConfigurator(); conf = new ProxyConfigurator();
conf->setProxy("127.0.0.1", 44444); conf->setProxy("127.0.0.1", 44444);
mainLog.info("Instantiating spoofer and registering proxy listeners"); mainLog.info("Instantiating and registering proxy listeners");
Spoofer* spoofer = new Spoofer(); Spoofer* spoofer = new Spoofer();
XboxFixes* xboxFix = new XboxFixes();
spoofer->registerListeners(proxy); spoofer->registerListeners(proxy);
xboxFix->registerListeners(proxy);
mainLog.info("Starting proxy"); mainLog.info("Starting proxy");
if (!proxy->init()) if (!proxy->init())
@@ -117,7 +120,6 @@ bool run()
} }
mainLog.info("Setting up system tray icon"); mainLog.info("Setting up system tray icon");
TrayIcon tray; TrayIcon tray;
tray.setExitCallback([&]() { tray.setExitCallback([&]() {
running = false; running = false;
+1
View File
@@ -54,6 +54,7 @@ Spoofer::~Spoofer()
delete _log; delete _log;
} }
void Spoofer::registerListeners(TinyMITMProxy* proxy) void Spoofer::registerListeners(TinyMITMProxy* proxy)
{ {
proxy->onClientRequest.addListener( proxy->onClientRequest.addListener(
+1 -1
View File
@@ -84,7 +84,7 @@ bool TrayIcon::init()
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = WM_TRAYICON; nid.uCallbackMessage = WM_TRAYICON;
nid.hIcon = LoadIcon(NULL, IDI_APPLICATION); nid.hIcon = LoadIconA(GetModuleHandle(NULL), "IDI_ICON1");
strncpy_s(nid.szTip, "HexUnlocked", sizeof(nid.szTip) - 1); strncpy_s(nid.szTip, "HexUnlocked", sizeof(nid.szTip) - 1);
nid.szTip[sizeof(nid.szTip) - 1] = '\0'; nid.szTip[sizeof(nid.szTip) - 1] = '\0';
+28
View File
@@ -0,0 +1,28 @@
#include "xbox-fixes.h"
#include <tinymitm/proxy.h>
XboxFixes::XboxFixes() {}
XboxFixes::~XboxFixes() {}
void XboxFixes::registerListeners(TinyMITMProxy* proxy)
{
proxy->onServerResponse.addListener(
[this](const std::string& url, std::string& body, std::string& headers, bool wasBlocked) {
this->serverResponseHandler(url, body, headers, wasBlocked);
});
}
void XboxFixes::antiCensor(std::string& body)
{
body = R"-({"verifyStringResult":[{"resultCode":0,"offendingString":null}]})-";
}
void XboxFixes::serverResponseHandler(const std::string& url, std::string& body, std::string& /*headers*/,
bool& /*blockOutgoing*/)
{
if (url.find("xboxlive.com") == std::string::npos) return;
if (url.ends_with("/system/strings/validate")) return antiCensor(body);
}
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include <string>
class TinyMITMProxy;
class XboxFixes
{
public:
XboxFixes();
~XboxFixes();
void registerListeners(TinyMITMProxy* proxy);
private:
void antiCensor(std::string& body);
void serverResponseHandler(const std::string& url, std::string& body, std::string& headers,
bool& blockOutgoing);
};