5 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
neru e70323c86b docs: add icon to readme
Build / build (push) Has been cancelled
2026-06-20 09:21:48 -03:00
6 changed files with 56 additions and 3 deletions
+2
View File
@@ -1,4 +1,6 @@
<h1 align="center">
<img src="img/favicon.ico" height="64">
<br/>
<b>Hex: Unlocked</b>
</h1>
+4 -2
View File
@@ -6,6 +6,7 @@
#include "log-sink-file.h"
#include "proxy-configurator.h"
#include "cache-cleaner.h"
#include "xbox-fixes.h"
#include <seallib/log.h>
#include <tinymitm/proxy.h>
@@ -103,9 +104,11 @@ bool run()
conf = new ProxyConfigurator();
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();
XboxFixes* xboxFix = new XboxFixes();
spoofer->registerListeners(proxy);
xboxFix->registerListeners(proxy);
mainLog.info("Starting proxy");
if (!proxy->init())
@@ -117,7 +120,6 @@ bool run()
}
mainLog.info("Setting up system tray icon");
TrayIcon tray;
tray.setExitCallback([&]() {
running = false;
+1
View File
@@ -54,6 +54,7 @@ Spoofer::~Spoofer()
delete _log;
}
void Spoofer::registerListeners(TinyMITMProxy* proxy)
{
proxy->onClientRequest.addListener(
+1 -1
View File
@@ -84,7 +84,7 @@ bool TrayIcon::init()
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
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);
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);
};