feat: add msg spoofer
This commit is contained in:
@@ -239,6 +239,73 @@ void Spoofer::wsMessageCallback(std::shared_ptr<ix::ConnectionState> /*connectio
|
|||||||
break;
|
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
|
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;
|
if (url.find("bhvrdbd.com") == std::string::npos) return;
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
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*/)
|
void Spoofer::clientRequestHandler(const std::string& url, std::string& body, std::string& /*headers*/, bool /*wasBlocked*/)
|
||||||
|
|||||||
Reference in New Issue
Block a user