feat: add msg spoofer
This commit is contained in:
@@ -239,6 +239,73 @@ void Spoofer::wsMessageCallback(std::shared_ptr<ix::ConnectionState> /*connectio
|
||||
break;
|
||||
}
|
||||
}
|
||||
void Spoofer::onServerMessageList(std::string& body)
|
||||
{
|
||||
glz::generic doc;
|
||||
auto ec = glz::read_json(doc, body);
|
||||
if (ec)
|
||||
{
|
||||
_log->error("JSON parse error for onServerMessageList");
|
||||
return;
|
||||
}
|
||||
|
||||
auto now = std::chrono::system_clock::now();
|
||||
auto now_seconds = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()).count();
|
||||
auto now_milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();
|
||||
|
||||
/*
|
||||
msg construction
|
||||
*/
|
||||
glz::generic bodyContent = glz::generic::object_t{
|
||||
{"sections",
|
||||
glz::generic::array_t{
|
||||
glz::generic::object_t{
|
||||
{"type", "text"},
|
||||
{"text", "Japan is turning footsteps into electricity!<br><br>Using piezoelectric tiles, every step "
|
||||
"you take generates a small amount of energy. Millions of steps together can power LED "
|
||||
"lights and displays in busy places like Shibuya Station.<br><br>A brilliant way to create a "
|
||||
"sustainable and smart city - turning movement into clean, renewable energy."}},
|
||||
glz::generic::object_t{
|
||||
{"type", "itemshowcase"},
|
||||
{"rewards", glz::generic::array_t{glz::generic::object_t{
|
||||
{"type", "inventory"}, {"id", "ADDON_flashlight_oddbulb"}, {"amount", 1.0}}}}}}},
|
||||
{"image", glz::generic::object_t{
|
||||
{"packagedPath", "/Game/UI/UMGAssets/Icons/ItemAddons/iconAddon_powerBulb.iconAddon_powerBulb"},
|
||||
{"contentVersion", "ccc3f02b0a671fe19a0017d6a69293876a465fd9"},
|
||||
{"uri", ""}}}};
|
||||
|
||||
std::string bodyContentStr;
|
||||
ec = glz::write_json(bodyContent, bodyContentStr);
|
||||
if (ec)
|
||||
{
|
||||
_log->error("JSON write error for onServerMessageList");
|
||||
return;
|
||||
}
|
||||
|
||||
glz::generic msg = glz::generic::object_t{
|
||||
{"allowedPlatforms", glz::generic::array_t{"egs", "grdk", "ps4", "ps5", "steam", "xbox", "xsx"}},
|
||||
{"flag", "READ"},
|
||||
{"gameSpecificData", glz::generic::object_t{}},
|
||||
{"read", false},
|
||||
{"tag", glz::generic::array_t{"inbox"}},
|
||||
{"expireAt", static_cast<double>(now_seconds + (1337 * 24 * 60 * 60))},
|
||||
{"received", static_cast<double>(now_milliseconds)},
|
||||
{"recipientId", "system"},
|
||||
{"message",
|
||||
glz::generic::object_t{{"title", "Japan is turning footsteps into electricity"}, {"body", bodyContentStr}}}};
|
||||
|
||||
doc["messages"].get_array().push_back(msg);
|
||||
ec = glz::write_json(doc, body);
|
||||
if (ec)
|
||||
{
|
||||
_log->error("JSON write error for onServerMessageList");
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
_log->verbose("Spoofed message list");
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
proxy handlers
|
||||
*/
|
||||
@@ -248,6 +315,8 @@ void Spoofer::serverResponseHandler(const std::string& url, std::string& body, s
|
||||
if (url.find("bhvrdbd.com") == std::string::npos) return;
|
||||
|
||||
std::lock_guard<std::mutex> lock(_mutex);
|
||||
|
||||
if (url.find("/api/v1/messages/listV2") != std::string::npos) return onServerMessageList(body);
|
||||
}
|
||||
|
||||
void Spoofer::clientRequestHandler(const std::string& url, std::string& body, std::string& /*headers*/, bool /*wasBlocked*/)
|
||||
|
||||
Reference in New Issue
Block a user