demonware experiments

This commit is contained in:
quaK 2022-09-21 00:23:01 +03:00
parent e21e593b8e
commit 02aa669ad9
12 changed files with 124 additions and 30 deletions

View File

@ -38,37 +38,39 @@ namespace demonware
}
};
class bdFileInfo final : public bdTaskResult
struct bdFileInfo final : public bdTaskResult
{
public:
uint64_t file_id;
uint32_t create_time;
uint32_t modified_time;
bool priv;
bool visibility;
uint64_t owner_id;
std::string filename;
uint32_t file_size;
std::string checksum;
void serialize(byte_buffer* buffer) override
void serialize(byte_buffer* data) override
{
buffer->write_uint32(this->file_size);
buffer->write_uint64(this->file_id);
buffer->write_uint32(this->create_time);
buffer->write_uint32(this->modified_time);
buffer->write_bool(this->priv);
buffer->write_uint64(this->owner_id);
buffer->write_string(this->filename);
data->write_uint32(file_size);
data->write_uint64(file_id);
data->write_uint32(create_time);
data->write_uint32(modified_time);
data->write_bool(visibility);
data->write_uint64(owner_id);
data->write_string(filename);
data->write_string(checksum);
}
void deserialize(byte_buffer* buffer) override
void deserialize(byte_buffer* data) override
{
buffer->read_uint32(&this->file_size);
buffer->read_uint64(&this->file_id);
buffer->read_uint32(&this->create_time);
buffer->read_uint32(&this->modified_time);
buffer->read_bool(&this->priv);
buffer->read_uint64(&this->owner_id);
buffer->read_string(&this->filename);
data->read_uint32(&file_size);
data->read_uint64(&file_id);
data->read_uint32(&create_time);
data->read_uint32(&modified_time);
data->read_bool(&visibility);
data->read_uint64(&owner_id);
data->read_string(&filename);
data->read_string(&checksum);
}
};

View File

@ -12,6 +12,7 @@ namespace demonware
{
this->register_service<bdAnticheat>();
this->register_service<bdBandwidthTest>();
this->register_service<bdCMail>();
this->register_service<bdContentStreaming>();
this->register_service<bdCounter>();
this->register_service<bdDML>();

View File

@ -18,7 +18,7 @@
#include "services/bdCounter.hpp" // 23
#include "services/bdDML.hpp" // 27
#include "services/bdGroup.hpp" // 28
//#include "services/bdCMail.hpp" // 29
#include "services/bdCMail.hpp" // 29
#include "services/bdFacebook.hpp" // 36
#include "services/bdAnticheat.hpp" // 38
#include "services/bdContentStreaming.hpp" // 50

View File

@ -9,6 +9,7 @@ namespace demonware
this->register_task(3, &bdAnticheat::reportConsoleID);
this->register_task(4, &bdAnticheat::reportConsoleDetails);
this->register_task(5, &bdAnticheat::answerTOTPChallenge);
this->register_task(6, &bdAnticheat::unk6);
}
void bdAnticheat::answerChallenges(service_server* server, byte_buffer* /*buffer*/) const
@ -38,4 +39,11 @@ namespace demonware
auto reply = server->create_reply(this->task_id());
reply->send();
}
void bdAnticheat::unk6(service_server* server, byte_buffer* /*buffer*/) const
{
// TODO: Read data as soon as needed
auto reply = server->create_reply(this->task_id());
reply->send();
}
}

View File

@ -12,5 +12,6 @@ namespace demonware
void reportConsoleID(service_server* server, byte_buffer* buffer) const;
void reportConsoleDetails(service_server* server, byte_buffer* buffer) const;
void answerTOTPChallenge(service_server* server, byte_buffer* buffer) const;
void unk6(service_server* server, byte_buffer* buffer) const;
};
}

View File

@ -0,0 +1,17 @@
#include <std_include.hpp>
#include "../services.hpp"
namespace demonware
{
bdCMail::bdCMail() : service(29, "bdCMail")
{
this->register_task(10, &bdCMail::unk10);
}
void bdCMail::unk10(service_server* server, byte_buffer* /*buffer*/) const
{
// TODO:
auto reply = server->create_reply(this->task_id());
reply->send();
}
}

View File

@ -0,0 +1,13 @@
#pragma once
namespace demonware
{
class bdCMail final : public service
{
public:
bdCMail();
private:
void unk10(service_server* server, byte_buffer* buffer) const;
};
}

View File

@ -7,6 +7,7 @@ namespace demonware
{
this->register_task(1, &bdMarketingComms::getMessages);
this->register_task(4, &bdMarketingComms::reportFullMessagesViewed);
this->register_task(6, &bdMarketingComms::reportFullMessagesViewed);
}
void bdMarketingComms::getMessages(service_server* server, byte_buffer* /*buffer*/) const
@ -22,4 +23,11 @@ namespace demonware
auto reply = server->create_reply(this->task_id());
reply->send();
}
void bdMarketingComms::unk6(service_server* server, byte_buffer* /*buffer*/) const
{
// TODO:
auto reply = server->create_reply(this->task_id());
reply->send();
}
}

View File

@ -10,5 +10,6 @@ namespace demonware
private:
void getMessages(service_server* server, byte_buffer* buffer) const;
void reportFullMessagesViewed(service_server* server, byte_buffer* buffer) const;
void unk6(service_server* server, byte_buffer* buffer) const;
};
}

View File

@ -11,8 +11,10 @@ namespace demonware
//this->register_task(43, &bdMarketplace::purchaseOnSteamInitialize); // COD POINTS purchase ?
this->register_task(49, &bdMarketplace::getExpiredInventoryItems);
this->register_task(60, &bdMarketplace::steamProcessDurable);
this->register_task(85, &bdMarketplace::unk85);
this->register_task(122, &bdMarketplace::purchaseSkus);
this->register_task(130, &bdMarketplace::getBalance);
this->register_task(132, &bdMarketplace::getBalanceV2);
this->register_task(165, &bdMarketplace::getInventoryPaginated);
this->register_task(193, &bdMarketplace::putPlayersInventoryItems);
this->register_task(232, &bdMarketplace::getEntitlements);
@ -46,6 +48,13 @@ namespace demonware
reply->send();
}
void bdMarketplace::unk85(service_server* server, byte_buffer* /*buffer*/) const
{
// TODO:
auto reply = server->create_reply(this->task_id());
reply->send();
}
void bdMarketplace::purchaseSkus(service_server* server, byte_buffer* buffer) const
{
// TODO:
@ -57,7 +66,13 @@ namespace demonware
{
// TODO:
auto reply = server->create_reply(this->task_id());
reply->send();
}
void bdMarketplace::getBalanceV2(service_server* server, byte_buffer* buffer) const
{
// TODO:
auto reply = server->create_reply(this->task_id());
reply->send();
}

View File

@ -12,8 +12,10 @@ namespace demonware
void purchaseOnSteamInitialize(service_server* server, byte_buffer* buffer) const;
void getExpiredInventoryItems(service_server* server, byte_buffer* buffer) const;
void steamProcessDurable(service_server* server, byte_buffer* buffer) const;
void unk85(service_server* server, byte_buffer* buffer) const;
void purchaseSkus(service_server* server, byte_buffer* buffer) const;
void getBalance(service_server* server, byte_buffer* buffer) const;
void getBalanceV2(service_server* server, byte_buffer* buffer) const;
void getInventoryPaginated(service_server* server, byte_buffer* buffer) const;
void putPlayersInventoryItems(service_server* server, byte_buffer* buffer) const;
void getEntitlements(service_server* server, byte_buffer* buffer) const;

View File

@ -66,6 +66,10 @@ namespace demonware
void bdStorage::list_publisher_files(service_server* server, byte_buffer* buffer)
{
#ifdef DEBUG
utils::io::write_file("demonware/bdStorage/list_publisher_files", buffer->get_buffer());
#endif
uint32_t date;
uint16_t num_results, offset;
std::string unk, filename, data;
@ -92,7 +96,8 @@ namespace demonware
info->modified_time = info->create_time;
info->file_size = uint32_t(data.size());
info->owner_id = 0;
info->priv = false;
info->visibility = false;
info->checksum = "f5f1fb4ddd2d85e2ed9a28b3204125ec";
reply->add(info);
}
@ -102,6 +107,10 @@ namespace demonware
void bdStorage::get_publisher_file(service_server* server, byte_buffer* buffer)
{
#ifdef DEBUG
utils::io::write_file("demonware/bdStorage/get_publisher_file", buffer->get_buffer());
#endif
std::string unk, filename;
buffer->read_string(&unk);
buffer->read_string(&filename);
@ -135,6 +144,10 @@ namespace demonware
void bdStorage::set_user_file(service_server* server, byte_buffer* buffer) const
{
#ifdef DEBUG
utils::io::write_file("demonware/bdStorage/set_user_file", buffer->get_buffer());
#endif
uint64_t owner;
uint32_t numfiles;
std::string game, platform;
@ -183,21 +196,30 @@ namespace demonware
void bdStorage::get_user_file(service_server* server, byte_buffer* buffer) const
{
uint32_t unk32_0;
uint32_t numfiles, count = 0;
uint64_t owner;
std::string game, platform;
#ifdef DEBUG
utils::io::write_file("demonware/bdStorage/get_user_file", buffer->get_buffer());
#endif
std::string platform;
uint32_t numunk;
uint32_t numfiles;
uint64_t owner = 0;
std::string game;
buffer->read_string(&game);
buffer->read_uint32(&unk32_0);
buffer->read_uint64(&owner);
buffer->read_string(&platform);
buffer->read_uint64(&owner);
buffer->read_string(&platform);
buffer->read_uint32(&numunk);
for (uint32_t i = 0; i < numunk; i++)
{
buffer->read_uint64(&owner);
buffer->read_string(&game);
}
buffer->read_uint32(&numfiles);
auto reply = server->create_reply(this->task_id());
uint32_t count = 0;
for (uint32_t i = 0; i < numfiles; i++)
{
std::string filename, data;
@ -239,6 +261,10 @@ namespace demonware
void bdStorage::unk12(service_server* server, byte_buffer* buffer) const
{
#ifdef DEBUG
utils::io::write_file("demonware/bdStorage/unk12", buffer->get_buffer());
#endif
// TODO:
auto reply = server->create_reply(this->task_id());
reply->send();