Compare commits
9 Commits
e46a60f95f
...
v0.1.16
| Author | SHA1 | Date | |
|---|---|---|---|
| de561d5170 | |||
| ea7529c1d7 | |||
| 8830d1abdb | |||
| 71fe1c6549 | |||
| e70323c86b | |||
| 9f5abefb34 | |||
| f6ac12962d | |||
| 6d176c2020 | |||
| 83c1fba265 |
@@ -74,6 +74,7 @@ jobs:
|
||||
- name: Configure CMake
|
||||
run: |
|
||||
cmake -B build -S . -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_SYSTEM_NAME=Windows \
|
||||
-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \
|
||||
-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ \
|
||||
|
||||
@@ -147,6 +147,9 @@ set_target_properties(hex-unlocked PROPERTIES OUTPUT_NAME "${RANDOM_EXE_NAME}")
|
||||
# compiler / IDE config
|
||||
if(NOT MSVC)
|
||||
target_link_options(hex-unlocked PRIVATE -static -static-libgcc -static-libstdc++)
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Release|MinSizeRel")
|
||||
target_link_options(hex-unlocked PRIVATE -s)
|
||||
endif()
|
||||
else()
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT hex-unlocked)
|
||||
endif()
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<h1 align="center">
|
||||
<img src="img/favicon.ico" height="64">
|
||||
<br/>
|
||||
<b>Hex: Unlocked</b>
|
||||
</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 "proxy-configurator.h"
|
||||
#include "cache-cleaner.h"
|
||||
#include "xbox-fixes.h"
|
||||
|
||||
#include <seallib/log.h>
|
||||
#include <tinymitm/proxy.h>
|
||||
@@ -17,11 +18,6 @@
|
||||
#include <processthreadsapi.h>
|
||||
#include <handleapi.h>
|
||||
|
||||
#ifndef CREATE_NO_WINDOW
|
||||
// from: WinBase.h
|
||||
#define CREATE_NO_WINDOW 0x08000000
|
||||
#endif
|
||||
|
||||
bool running = true;
|
||||
TinyMITMProxy* proxy = nullptr;
|
||||
ProxyConfigurator* conf = nullptr;
|
||||
@@ -108,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())
|
||||
@@ -122,7 +120,6 @@ bool run()
|
||||
}
|
||||
|
||||
mainLog.info("Setting up system tray icon");
|
||||
|
||||
TrayIcon tray;
|
||||
tray.setExitCallback([&]() {
|
||||
running = false;
|
||||
|
||||
@@ -54,6 +54,7 @@ Spoofer::~Spoofer()
|
||||
delete _log;
|
||||
}
|
||||
|
||||
|
||||
void Spoofer::registerListeners(TinyMITMProxy* proxy)
|
||||
{
|
||||
proxy->onClientRequest.addListener(
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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