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; uint64_t file_id;
uint32_t create_time; uint32_t create_time;
uint32_t modified_time; uint32_t modified_time;
bool priv; bool visibility;
uint64_t owner_id; uint64_t owner_id;
std::string filename; std::string filename;
uint32_t file_size; 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); data->write_uint32(file_size);
buffer->write_uint64(this->file_id); data->write_uint64(file_id);
buffer->write_uint32(this->create_time); data->write_uint32(create_time);
buffer->write_uint32(this->modified_time); data->write_uint32(modified_time);
buffer->write_bool(this->priv); data->write_bool(visibility);
buffer->write_uint64(this->owner_id); data->write_uint64(owner_id);
buffer->write_string(this->filename); 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); data->read_uint32(&file_size);
buffer->read_uint64(&this->file_id); data->read_uint64(&file_id);
buffer->read_uint32(&this->create_time); data->read_uint32(&create_time);
buffer->read_uint32(&this->modified_time); data->read_uint32(&modified_time);
buffer->read_bool(&this->priv); data->read_bool(&visibility);
buffer->read_uint64(&this->owner_id); data->read_uint64(&owner_id);
buffer->read_string(&this->filename); data->read_string(&filename);
data->read_string(&checksum);
} }
}; };

View File

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

View File

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

View File

@ -9,6 +9,7 @@ namespace demonware
this->register_task(3, &bdAnticheat::reportConsoleID); this->register_task(3, &bdAnticheat::reportConsoleID);
this->register_task(4, &bdAnticheat::reportConsoleDetails); this->register_task(4, &bdAnticheat::reportConsoleDetails);
this->register_task(5, &bdAnticheat::answerTOTPChallenge); this->register_task(5, &bdAnticheat::answerTOTPChallenge);
this->register_task(6, &bdAnticheat::unk6);
} }
void bdAnticheat::answerChallenges(service_server* server, byte_buffer* /*buffer*/) const void bdAnticheat::answerChallenges(service_server* server, byte_buffer* /*buffer*/) const
@ -38,4 +39,11 @@ namespace demonware
auto reply = server->create_reply(this->task_id()); auto reply = server->create_reply(this->task_id());
reply->send(); 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 reportConsoleID(service_server* server, byte_buffer* buffer) const;
void reportConsoleDetails(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 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(1, &bdMarketingComms::getMessages);
this->register_task(4, &bdMarketingComms::reportFullMessagesViewed); this->register_task(4, &bdMarketingComms::reportFullMessagesViewed);
this->register_task(6, &bdMarketingComms::reportFullMessagesViewed);
} }
void bdMarketingComms::getMessages(service_server* server, byte_buffer* /*buffer*/) const void bdMarketingComms::getMessages(service_server* server, byte_buffer* /*buffer*/) const
@ -22,4 +23,11 @@ namespace demonware
auto reply = server->create_reply(this->task_id()); auto reply = server->create_reply(this->task_id());
reply->send(); 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: private:
void getMessages(service_server* server, byte_buffer* buffer) const; void getMessages(service_server* server, byte_buffer* buffer) const;
void reportFullMessagesViewed(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(43, &bdMarketplace::purchaseOnSteamInitialize); // COD POINTS purchase ?
this->register_task(49, &bdMarketplace::getExpiredInventoryItems); this->register_task(49, &bdMarketplace::getExpiredInventoryItems);
this->register_task(60, &bdMarketplace::steamProcessDurable); this->register_task(60, &bdMarketplace::steamProcessDurable);
this->register_task(85, &bdMarketplace::unk85);
this->register_task(122, &bdMarketplace::purchaseSkus); this->register_task(122, &bdMarketplace::purchaseSkus);
this->register_task(130, &bdMarketplace::getBalance); this->register_task(130, &bdMarketplace::getBalance);
this->register_task(132, &bdMarketplace::getBalanceV2);
this->register_task(165, &bdMarketplace::getInventoryPaginated); this->register_task(165, &bdMarketplace::getInventoryPaginated);
this->register_task(193, &bdMarketplace::putPlayersInventoryItems); this->register_task(193, &bdMarketplace::putPlayersInventoryItems);
this->register_task(232, &bdMarketplace::getEntitlements); this->register_task(232, &bdMarketplace::getEntitlements);
@ -46,6 +48,13 @@ namespace demonware
reply->send(); 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 void bdMarketplace::purchaseSkus(service_server* server, byte_buffer* buffer) const
{ {
// TODO: // TODO:
@ -57,7 +66,13 @@ namespace demonware
{ {
// TODO: // TODO:
auto reply = server->create_reply(this->task_id()); 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(); reply->send();
} }

View File

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