Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| de561d5170 | |||
| ea7529c1d7 | |||
| 8830d1abdb | |||
| 71fe1c6549 | |||
| e70323c86b | |||
| 9f5abefb34 | |||
| f6ac12962d |
@@ -1,4 +1,6 @@
|
|||||||
<h1 align="center">
|
<h1 align="center">
|
||||||
|
<img src="img/favicon.ico" height="64">
|
||||||
|
<br/>
|
||||||
<b>Hex: Unlocked</b>
|
<b>Hex: Unlocked</b>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 156 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 607 KiB |
Binary file not shown.
@@ -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>
|
||||||
@@ -17,11 +18,6 @@
|
|||||||
#include <processthreadsapi.h>
|
#include <processthreadsapi.h>
|
||||||
#include <handleapi.h>
|
#include <handleapi.h>
|
||||||
|
|
||||||
#ifndef CREATE_NO_WINDOW
|
|
||||||
// from: WinBase.h
|
|
||||||
#define CREATE_NO_WINDOW 0x08000000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool running = true;
|
bool running = true;
|
||||||
TinyMITMProxy* proxy = nullptr;
|
TinyMITMProxy* proxy = nullptr;
|
||||||
ProxyConfigurator* conf = nullptr;
|
ProxyConfigurator* conf = nullptr;
|
||||||
@@ -108,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())
|
||||||
@@ -122,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;
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user