tekno_uttv2/ultimateteknotool.v2/windows_accountpage.cpp
2020-12-31 15:35:46 +03:00

1227 lines
46 KiB
C++

#include "pch.h"
#include "windows_accountpage.h"
#include "TextConvertors.h"
#include "iw5mp_nickname_etc_functions.h"
#include "iw5mp_xuidhwid_functions.h"
#include "iw5mp_constants.h"
#include "JMPHook_SerializeNetdata.h"
#include "JMPHook_sysinfoapi_functions.h"
#include "JMPHook_bdUPnP_functions.h"
#include "JMP_iw5mp_functions.h"
#include "ParserRandMask.h"
namespace windows_accountpage
{
constexpr DWORD NewEditStyle_Invisible = WS_CHILD & ~WS_VISIBLE | WS_BORDER;
constexpr DWORD ShowEditStyle_Invisible = WS_CHILD & ~WS_VISIBLE | WS_BORDER | ES_READONLY;
constexpr DWORD FlatButtonStyleInvisble = (WS_CHILD & ~WS_VISIBLE) | BS_PUSHBUTTON | BS_CENTER | BS_FLAT;
constexpr DWORD FlatRadioButtonStyleInvisble = (WS_CHILD & ~WS_VISIBLE) | BS_AUTOCHECKBOX | BS_FLAT | BS_LEFTTEXT;
constexpr DWORD FlatRadioButtonStyleInvisble_RIGHT = (WS_CHILD & ~WS_VISIBLE) | BS_AUTOCHECKBOX | BS_FLAT | BS_RIGHT;
constexpr DWORD FlatRadioButtonStyleInvisble_CENTER = (WS_CHILD & ~WS_VISIBLE) | BS_AUTOCHECKBOX | BS_FLAT | BS_CENTER;
constexpr size_t txtlimit_nickname = iw5mp_constants::MAX_LENGTH_NICKNAME - 1;
constexpr size_t txtlimit_title = iw5mp_constants::MAX_LENGTH_TITLE - 1;
constexpr size_t txtlimit_clantag = iw5mp_constants::MAX_LENGTH_CLANTAG - 1;
constexpr size_t txtlimit_emlem_and_title_types = 3;
constexpr size_t txtlimit_level_and_prestiges_values = 2;
constexpr size_t txtlimit_ip = 3 + 1 + 3 + 1 + 3 + 1 + 3;
constexpr size_t txtlimit_port = 5; // 66 666
constexpr size_t txtlimit_xuid_hwid_values = 8;
void MisterDummyDum(void){}
void MisterDummyDum(const bool&) {}
inline void BuildTripleBar(CWindowsBuilder& builder, WinCombo& combo, int gap)
{
builder.ChangeStyle(ShowEditStyle_Invisible);
combo.edit_show.Visit(&builder);
builder.ChangeStyle(NewEditStyle_Invisible);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
combo.edit_new.Visit(&builder);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
combo.edit_new_randmask.Visit(&builder);
}
typedef void doJobwhenChanged_t(void);
const wchar_t ws_empty_text[] = L"";
const wchar_t ws_buttontext[] = L"^";
WinCombo nickname;
WinCombo title;
WinCombo titletype;
WinCombo emblem;
WinCombo prestige;
WinCombo level;
WinCombo clantag;
class CWinControlBlock
{
private:
doJobwhenChanged_t* Job_apply = &MisterDummyDum;
doJobwhenChanged_t* Job_applyRand = &MisterDummyDum;
doJobwhenChanged_t* Job_applyRand_mask = &MisterDummyDum;
CWindow_button apply;
CWindow_button applyrand;
CWindow_button_cfg randmasksymbolsreplacenormaldata_autochange;
public:
CWinControlBlock() = delete;
CWinControlBlock(doJobwhenChanged_t& appl, doJobwhenChanged_t& applrand, doJobwhenChanged_t& applrandmask)
{
this->Job_apply = &appl;
this->Job_applyRand = &applrand;
this->Job_applyRand_mask = &applrandmask;
}
void Build(CWindowsBuilder& builder, int left, int top, int buttonwidth, int bheight, int gap)
{
builder.ChangeLeftPos(left);
builder.ChangeWidth(buttonwidth);
builder.ChangeHeight(bheight);
builder.ChangeTopPos(top);
builder.ChangeTextP(ws_empty_text);
builder.ChangeStyle(FlatRadioButtonStyleInvisble_CENTER);
this->randmasksymbolsreplacenormaldata_autochange.Visit(&builder);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
builder.ChangeStyle(FlatButtonStyleInvisble);
builder.ChangeTextP(ws_buttontext);
this->apply.Visit(&builder);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
this->applyrand.Visit(&builder);
}
void ApplyFont(CWindowsFontApplier& fontmaster)
{
apply.Visit(&fontmaster);
applyrand.Visit(&fontmaster);
randmasksymbolsreplacenormaldata_autochange.Visit(&fontmaster);
}
void Show() const
{
randmasksymbolsreplacenormaldata_autochange.Show();
apply.Show();
applyrand.Show();
}
void Hide() const
{
randmasksymbolsreplacenormaldata_autochange.Hide();
apply.Hide();
applyrand.Hide();
}
void SaveCfg(CWindowCfgWriter& writer)
{
writer.SaveButtonStateW(&(this->randmasksymbolsreplacenormaldata_autochange));
}
void LoadCfg(CWindowCfgReader& reader, size_t txtlimit = 8)
{
reader.LoadButtonStateW(&(this->randmasksymbolsreplacenormaldata_autochange));
}
void ButtonHandler(WPARAM& wparam)
{
if (this->apply.id == LOWORD(wparam))
{
this->Job_apply();
}
else if (this->applyrand.id == LOWORD(wparam))
{
if (randmasksymbolsreplacenormaldata_autochange.isPressed) {
this->Job_applyRand_mask();
}
else {
this->Job_applyRand();
}
}
else if (this->randmasksymbolsreplacenormaldata_autochange.id == LOWORD(wparam))
{
randmasksymbolsreplacenormaldata_autochange.SwitchState();
}
}
void ForceExecuteJob_ApplyRand()
{
if (randmasksymbolsreplacenormaldata_autochange.isPressed) {
this->Job_applyRand_mask();
}
else {
this->Job_applyRand();
}
}
};
CWinControlBlock control_nicknameetc(ReadData_ChangeNicknameEtc_andUpdate, ReadRandData_ChangeNicknameEtc_andUpdate, ReadRandDataMask_ChangeNicknameEtc_andUpdate);
CWindow_button_cfg nickname_autochage;
CWindow_button xuidhwid_page;
CWindow_button localexternalip_page;
CWindow_button firmware_page;
CWindow_button upnp_page;
bool firmware_page_is_opened = false;
CWindow_button_cfg xuidhwid_autochange;
CWindow_button_cfg localexternalip_autochange;
CWindow_button_cfg firmware_autochange;
CWindow_button_cfg upnp_autochange;
WinCombo xuid_part1;
WinCombo xuid_part2;
WinCombo hwid_part1;
WinCombo hwid_part2;
WinCombo hwid_part3;
CWinControlBlock control_xuidhwid(ReadData_ChangeXUIDHWID_andUpdate, ReadRandData_ChangeXUIDHWID_andUpdate, ReadRandDataMask_ChangeXUIDHWID_andUpdate);
WinCombo localip;
WinCombo lip_port;
WinCombo externalip;
WinCombo exip_port;
WinCombo someip1;
WinCombo someip1_port;
WinCombo someip2;
WinCombo someip2_port;
CWinControlBlock control_externallocalips(ReadData_ChangeNETData, ReadRandData_ChangeNETData, ReadRandDataMask_ChangeNETData);
namespace firmware
{
CWindow_edit challengeS2_part_1;
CWindow_edit challengeS2_part_2;
CWindow_edit challengeS2_part_3;
CWindow_edit challengeS2_part_4;
wchar_t ws_generate[] = L"generate";
CWindow_button generate_new_firmware;
wchar_t ws_randall[] = L"rand all";
CWindow_button_cfg rand_all_firmware;
wchar_t ws_alwaysnew[] = L"always new";
CWindow_button_cfg generate_always_new;
void ButtonHandler(WPARAM& param)
{
if (LOWORD(param) == generate_new_firmware.id)
{
hooks::sysinfoapi_functions::GetSystemFirmwareTable_SetState_GenerateNewData();
hooks::sysinfoapi_functions::GetSystemFirmwareTable_SetState_FakingDataEnabled(true);
}
else if (LOWORD(param) == rand_all_firmware.id)
{
rand_all_firmware.SwitchState();
hooks::sysinfoapi_functions::GetSystemFirmwareTable_SetState_RandomiseAllDataEnabled(rand_all_firmware.isPressed);
}
else if (LOWORD(param) == generate_always_new.id)
{
generate_always_new.SwitchState();
hooks::sysinfoapi_functions::GetSystemFirmwareTable_SetState_AlwaysGenerateNewDataEnabled(generate_always_new.isPressed);
}
else
{
}
}
void SaveSettings_PreCreateVer(CWindowCfgWriter* writer);
void LoadSettings_PreCreateVer(CWindowCfgReader* reader);
void SaveSettings_PreCreateVer(CWindowCfgWriter* writer)
{
writer->SaveButtonStateW(&firmware_autochange);
}
void LoadSettings_PreCreateVer(CWindowCfgReader* reader)
{
firmware_autochange.isPressed = reader->LoadButtonStateW();
hooks::sysinfoapi_functions::GetSystemFirmwareTable_SetState_FakingDataEnabled(firmware_autochange.isPressed);
}
void SaveCfg(CWindowCfgWriter* writer)
{
writer->SaveButtonStateW(&rand_all_firmware);
writer->SaveButtonStateW(&generate_always_new);
}
void LoadCfg(CWindowCfgReader* reader)
{
reader->LoadButtonStateW(&rand_all_firmware);
reader->LoadButtonStateW(&generate_always_new);
}
};
namespace UPnP
{
namespace textlim
{
constexpr size_t device_field_location = hooks::bdUPnP_functions::ns_extractDeviceInfo::maxtext_field_location;
constexpr size_t device_field_server = hooks::bdUPnP_functions::ns_extractDeviceInfo::maxtext_field_server;
constexpr size_t device_field_USN = hooks::bdUPnP_functions::ns_extractDeviceInfo::maxtext_field_USN;
};
WinCombo device_field_location;
WinCombo device_field_server;
WinCombo device_field_USN;
CWinControlBlock control_deviceinfo(ReadData_ChangeDeviceInfo, ReadRandData_ChangeDeviceInfo, ReadRandDataMask_ChangeDeviceInfo);
void SaveSettings_PreCreateVer(CWindowCfgWriter* writer);
void LoadSettings_PreCreateVer(CWindowCfgReader* reader);
};
const wchar_t ws_xuidhwid[] = L"xuid/hwid";
const wchar_t ws_localexternalip[] = L"NAT";
const wchar_t ws_UPnP[] = L"UPnP";
const wchar_t ws_firmware[] = L"firmware";
const wchar_t ws_auto[] = L"auto";
const wchar_t ws_hhhhhhhh[] = L"hhhhhhhh";
CWindowPostLoadStrings WinStringsPostLoader;
void ButtonStatesPostLoader();
}
void CWindowCfgWriter_Wrapper_SaveWinCombo(windows_accountpage::WinCombo& combo, CWindowCfgWriter* writer, unsigned short textlim = 32)
{
writer->SaveTextSettingW(&combo.edit_new, textlim);
writer->SaveTextSettingW(&combo.edit_new_randmask, textlim);
}
void CWindowCfgWriter_Wrapper_LoadWinCombo(CWindowCfgReader* reader, windows_accountpage::WinCombo& combo, unsigned short textlim = 64)
{
reader->LoadTextSettingW(&combo.edit_new, textlim);
reader->LoadTextSettingW(&combo.edit_new_randmask, textlim);
}
void windows_accountpage::Build(CWindowsBuilder& builder, int left, int width, int top, int height, HWND hwnd)
{
constexpr int applybuttonwidth = 18;
builder.ChangeParentHWND(hwnd);
builder.ChangeLeftPos(left);
builder.ChangeTopPos(top);
builder.ChangeTextP(ws_empty_text);
int freewidth = width - left * 2;
int gap = 5;
int rheight = 20;
int rwidth = 140;
int savetop = top;
int rwidth2 = 50;
builder.ChangeWidth(rwidth);
builder.ChangeHeight(20);
BuildTripleBar(builder, nickname, gap);
rwidth = 175;
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, title, gap);
rwidth = 28;
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, titletype, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, emblem, gap);
rwidth = 23;
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, prestige, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
//builder.ChangeWidth(rwidth);
BuildTripleBar(builder, level, gap);
rwidth = 70;
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, clantag, gap);
rwidth = applybuttonwidth;
control_nicknameetc.Build(builder, /*hwnd,*/ builder.build_left_pos + builder.build_width + gap, savetop, applybuttonwidth, rheight, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeStyle(FlatRadioButtonStyleInvisble_RIGHT);
builder.ChangeWidth(rwidth2);
builder.ChangeTextP(ws_auto);
nickname_autochage.Visit(&builder);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
constexpr int numberofbuttons = 4;
rwidth = (freewidth - numberofbuttons * gap) / numberofbuttons;
rwidth -= gap * numberofbuttons / 2;
builder.ChangeStyle(FlatButtonStyleInvisble);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap * 2);
builder.ChangeLeftPos(left);
builder.ChangeWidth(rwidth);
builder.ChangeTextP(ws_xuidhwid);
xuidhwid_page.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeTextP(ws_localexternalip);
localexternalip_page.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeTextP(ws_firmware);
firmware_page.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeTextP(ws_UPnP);
upnp_page.Visit(&builder);
rwidth2 = 20 + 40;
builder.ChangeTopPos(builder.build_top_pos + builder.build_height);
builder.ChangeLeftPos(left);
builder.ChangeWidth(rwidth2);
builder.ChangeTextP(ws_auto);
builder.ChangeStyle(FlatRadioButtonStyleInvisble);
xuidhwid_autochange.Visit(&builder);
builder.ChangeLeftPos(left + rwidth + gap);
localexternalip_autochange.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + rwidth + gap);
firmware_autochange.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + rwidth + gap);
upnp_autochange.Visit(&builder);
builder.ChangeStyle(NewEditStyle_Invisible);
rwidth = 70;
savetop = builder.build_top_pos + builder.build_height + gap * 2;
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(left);
builder.ChangeTextP(ws_empty_text);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, xuid_part1, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
BuildTripleBar(builder, xuid_part2, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap * 2);
BuildTripleBar(builder, hwid_part1, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
BuildTripleBar(builder, hwid_part2, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
BuildTripleBar(builder, hwid_part3, gap);
control_xuidhwid.Build(builder, /*hwnd,*/ builder.build_left_pos + builder.build_width + gap, savetop, applybuttonwidth, rheight, gap);
builder.ChangeStyle(NewEditStyle_Invisible);
rwidth = 116;
int rwidth_port = 46;
builder.ChangeTextP(ws_empty_text);
//savetop = builder.build_top_pos + builder.build_height + gap * 2;
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(left);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, localip, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth_port);
BuildTripleBar(builder, lip_port, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, externalip, gap);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth_port);
BuildTripleBar(builder, exip_port, gap);
control_externallocalips.Build(builder, /*hwnd,*/ builder.build_left_pos + builder.build_width + gap, savetop, applybuttonwidth, rheight, gap);
builder.ChangeStyle(NewEditStyle_Invisible);
rwidth = 116;
builder.ChangeTextP(ws_empty_text);
int savetop2 = builder.build_top_pos + builder.build_height + gap;
builder.ChangeTopPos(savetop2);
builder.ChangeLeftPos(left);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, someip1, gap);
builder.ChangeTopPos(savetop2);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth_port);
BuildTripleBar(builder, someip1_port, gap);
builder.ChangeTopPos(savetop2);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth);
BuildTripleBar(builder, someip2, gap);
builder.ChangeTopPos(savetop2);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
builder.ChangeWidth(rwidth_port);
BuildTripleBar(builder, someip2_port, gap);
rwidth = 280;
builder.ChangeWidth(rwidth);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(left);
builder.ChangeStyle(NewEditStyle_Invisible);
builder.ChangeTextP(ws_empty_text);
BuildTripleBar(builder, UPnP::device_field_location, gap);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
//rwidth = 250;
builder.ChangeWidth(rwidth);
builder.ChangeTopPos(savetop);
BuildTripleBar(builder, UPnP::device_field_server, gap);
rwidth = rwidth*2 + gap;
builder.ChangeWidth(rwidth);
builder.ChangeLeftPos(left);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
BuildTripleBar(builder, UPnP::device_field_USN, gap);
builder.ChangeTopPos(savetop);
UPnP::control_deviceinfo.Build(builder, /*hwnd,*/ builder.build_left_pos + builder.build_width + gap, savetop, applybuttonwidth, rheight, gap);
UPnP::update_device::Location(L"<Error> no UPnP device");
UPnP::update_device::Server(L"<Error> no UPnP device");
UPnP::update_device::USN(L"<Error> no UPnP device");
rwidth = 70;
builder.ChangeWidth(rwidth);
builder.ChangeTopPos(savetop);
builder.ChangeLeftPos(left);
builder.ChangeStyle(NewEditStyle_Invisible);
builder.ChangeTextP(ws_empty_text);
firmware::challengeS2_part_1.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
firmware::challengeS2_part_2.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
firmware::challengeS2_part_3.Visit(&builder);
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap);
firmware::challengeS2_part_4.Visit(&builder);
rwidth = 60;
builder.ChangeLeftPos(builder.build_left_pos + builder.build_width + gap*2);
builder.ChangeStyle(FlatButtonStyleInvisble);
builder.ChangeTextP(firmware::ws_generate);
firmware::generate_new_firmware.Visit(&builder);
builder.ChangeLeftPos(left);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
rwidth2 = 20 + 70;
builder.ChangeWidth(rwidth2);
builder.ChangeTextP(firmware::ws_alwaysnew);
builder.ChangeStyle(FlatRadioButtonStyleInvisble);
firmware::generate_always_new.Visit(&builder);
builder.ChangeTopPos(builder.build_top_pos + builder.build_height + gap);
builder.ChangeTextP(firmware::ws_randall);
firmware::rand_all_firmware.Visit(&builder);
}
void windows_accountpage::ApplyFonts(CWindowsFontApplier& fontappl)
{
nickname.ApplyFont(fontappl);
title.ApplyFont(fontappl);
titletype.ApplyFont(fontappl);
emblem.ApplyFont(fontappl);
level.ApplyFont(fontappl);
prestige.ApplyFont(fontappl);
clantag.ApplyFont(fontappl);
control_nicknameetc.ApplyFont(fontappl);
nickname_autochage.Visit(&fontappl);
xuidhwid_page.Visit(&fontappl);
xuidhwid_autochange.Visit(&fontappl);;
localexternalip_page.Visit(&fontappl);;
localexternalip_autochange.Visit(&fontappl);
upnp_page.Visit(&fontappl);
upnp_autochange.Visit(&fontappl);
xuid_part1.ApplyFont(fontappl);
xuid_part2.ApplyFont(fontappl);
hwid_part1.ApplyFont(fontappl);
hwid_part2.ApplyFont(fontappl);
hwid_part3.ApplyFont(fontappl);
control_xuidhwid.ApplyFont(fontappl);
localip.ApplyFont(fontappl);
lip_port.ApplyFont(fontappl);
externalip.ApplyFont(fontappl);
exip_port.ApplyFont(fontappl);
someip1.ApplyFont(fontappl);
someip1_port.ApplyFont(fontappl);
someip2.ApplyFont(fontappl);
someip2_port.ApplyFont(fontappl);
control_externallocalips.ApplyFont(fontappl);
firmware_page.Visit(&fontappl);
firmware_autochange.Visit(&fontappl);
UPnP::device_field_location.ApplyFont(fontappl);
UPnP::device_field_server.ApplyFont(fontappl);
UPnP::device_field_USN.ApplyFont(fontappl);
UPnP::control_deviceinfo.ApplyFont(fontappl);
firmware::challengeS2_part_1.Visit(&fontappl);
firmware::challengeS2_part_2.Visit(&fontappl);
firmware::challengeS2_part_3.Visit(&fontappl);
firmware::challengeS2_part_4.Visit(&fontappl);
firmware::generate_new_firmware.Visit(&fontappl);
firmware::generate_always_new.Visit(&fontappl);
firmware::rand_all_firmware.Visit(&fontappl);
}
void windows_accountpage::WriteDefault()
{
CWindowTextWriter_WriteText(&nickname.edit_new_randmask, L"uull0xdd");
CWindowTextWriter_WriteText(&title.edit_new_randmask, L"my ip d.dd.dd.d");
CWindowTextWriter_WriteText(&titletype.edit_new, L"124");
CWindowTextWriter_WriteText(&emblem.edit_new, L"34");
CWindowTextWriter_WriteText(&titletype.edit_new_randmask, L"0dd");
CWindowTextWriter_WriteText(&emblem.edit_new_randmask, L"0dd");
CWindowTextWriter_WriteText(&prestige.edit_new_randmask, L"0d");
CWindowTextWriter_WriteText(&level.edit_new_randmask, L"0d");
CWindowTextWriter_WriteText(&xuid_part2.edit_new_randmask, L"01100001");
CWindowTextWriter_WriteText(&xuid_part1.edit_new_randmask, ws_hhhhhhhh);
CWindowTextWriter_WriteText(&hwid_part1.edit_new_randmask, ws_hhhhhhhh);
CWindowTextWriter_WriteText(&hwid_part2.edit_new_randmask, ws_hhhhhhhh);
CWindowTextWriter_WriteText(&hwid_part3.edit_new_randmask, ws_hhhhhhhh);
CWindowTextWriter_WriteText(&localip.edit_new_randmask, L"192.168.d.d");
CWindowTextWriter_WriteText(&externalip.edit_new_randmask, L"76.dd.dd.dd");
}
void windows_accountpage::ApplyTextLimits()
{
nickname.ApplyTextLimit(txtlimit_nickname);
title.ApplyTextLimit(txtlimit_title);
clantag.ApplyTextLimit(txtlimit_clantag);
emblem.ApplyTextLimit(txtlimit_emlem_and_title_types);
titletype.ApplyTextLimit(txtlimit_emlem_and_title_types);
prestige.ApplyTextLimit(txtlimit_level_and_prestiges_values);
level.ApplyTextLimit(txtlimit_level_and_prestiges_values);
xuid_part1.ApplyTextLimit(txtlimit_xuid_hwid_values);
xuid_part2.ApplyTextLimit(txtlimit_xuid_hwid_values);
hwid_part1.ApplyTextLimit(txtlimit_xuid_hwid_values);
hwid_part2.ApplyTextLimit(txtlimit_xuid_hwid_values);
hwid_part3.ApplyTextLimit(txtlimit_xuid_hwid_values);
UPnP::device_field_location.ApplyTextLimit(UPnP::textlim::device_field_location);
UPnP::device_field_server.ApplyTextLimit(UPnP::textlim::device_field_server);
UPnP::device_field_USN.ApplyTextLimit(UPnP::textlim::device_field_USN);
}
void windows_accountpage::Show()
{
nickname.Show();
title.Show();
titletype.Show();
emblem.Show();
level.Show();
prestige.Show();
clantag.Show();
control_nicknameetc.Show();
nickname_autochage.Show();
xuidhwid_page.Show();
xuidhwid_autochange.Show();
localexternalip_page.Show();
localexternalip_autochange.Show();
firmware_page.Show();
firmware_autochange.Show();
upnp_page.Show();
upnp_autochange.Show();
}
void windows_accountpage::Hide()
{
nickname.Hide();
title.Hide();
titletype.Hide();
emblem.Hide();
level.Hide();
prestige.Hide();
clantag.Hide();
control_nicknameetc.Hide();
nickname_autochage.Hide();
xuidhwid_page.Hide();
xuidhwid_autochange.Hide();
localexternalip_page.Hide();
localexternalip_autochange.Hide();
firmware_page.Hide();
firmware_autochange.Hide();
upnp_page.Hide();
upnp_autochange.Hide();
Hide_XuidHwidPage();
Hide_LocalExternalIPPage();
Hide_FirmwarePage();
Hide_UPnPPage();
}
void windows_accountpage::Show_XuidHwidPage()
{
xuid_part1.Show();
xuid_part2.Show();
hwid_part1.Show();
hwid_part2.Show();
hwid_part3.Show();
control_xuidhwid.Show();
}
void windows_accountpage::Hide_XuidHwidPage()
{
xuid_part1.Hide();
xuid_part2.Hide();
hwid_part1.Hide();
hwid_part2.Hide();
hwid_part3.Hide();
control_xuidhwid.Hide();
}
void windows_accountpage::Show_LocalExternalIPPage()
{
localip.Show();
lip_port.Show();
externalip.Show();
exip_port.Show();
someip1.Show();
someip1_port.Show();
someip2.Show();
someip2_port.Show();
control_externallocalips.Show();
}
void windows_accountpage::Hide_LocalExternalIPPage()
{
localip.Hide();
lip_port.Hide();
externalip.Hide();
exip_port.Hide();
someip1.Hide();
someip1_port.Hide();
someip2.Hide();
someip2_port.Hide();
control_externallocalips.Hide();
}
void windows_accountpage::Show_FirmwarePage()
{
firmware::challengeS2_part_1.Show();
firmware::challengeS2_part_2.Show();
firmware::challengeS2_part_3.Show();
firmware::challengeS2_part_4.Show();
firmware::generate_new_firmware.Show();
firmware::generate_always_new.Show();
firmware::rand_all_firmware.Show();
firmware_page_is_opened = true;
}
void windows_accountpage::Hide_FirmwarePage()
{
firmware::challengeS2_part_1.Hide();
firmware::challengeS2_part_2.Hide();
firmware::challengeS2_part_3.Hide();
firmware::challengeS2_part_4.Hide();
firmware::generate_new_firmware.Hide();
firmware::generate_always_new.Hide();
firmware::rand_all_firmware.Hide();
firmware_page_is_opened = false;
}
void windows_accountpage::Show_UPnPPage()
{
UPnP::device_field_location.Show();
UPnP::device_field_server.Show();
UPnP::device_field_USN.Show();
UPnP::control_deviceinfo.Show();
}
void windows_accountpage::Hide_UPnPPage()
{
UPnP::device_field_location.Hide();
UPnP::device_field_server.Hide();
UPnP::device_field_USN.Hide();
UPnP::control_deviceinfo.Hide();
}
void windows_accountpage::Show_XuidHwidPageHideOthers()
{
Hide_LocalExternalIPPage();
Hide_FirmwarePage();
Hide_UPnPPage();
Show_XuidHwidPage();
}
void windows_accountpage::Show_LocalExternalIPHideOthers()
{
Hide_XuidHwidPage();
Hide_FirmwarePage();
Hide_UPnPPage();
Show_LocalExternalIPPage();
}
void windows_accountpage::Show_FirmwareHideOthers()
{
Hide_LocalExternalIPPage();
Hide_XuidHwidPage();
Hide_UPnPPage();
Show_FirmwarePage();
}
void windows_accountpage::Show_UPnPPageHideOthers()
{
Hide_LocalExternalIPPage();
Hide_XuidHwidPage();
Hide_FirmwarePage();
Show_UPnPPage();
}
void windows_accountpage::Handler_ClickButton(WPARAM wparam)
{
WORD low = LOWORD(wparam);
control_nicknameetc.ButtonHandler(wparam);
control_xuidhwid.ButtonHandler(wparam);
control_externallocalips.ButtonHandler(wparam);
UPnP::control_deviceinfo.ButtonHandler(wparam);
firmware::ButtonHandler(wparam);
if (low == xuidhwid_page.id)
{
Show_XuidHwidPageHideOthers();
}
else if (low == localexternalip_page.id)
{
Show_LocalExternalIPHideOthers();
}
else if (low == firmware_page.id)
{
Show_FirmwareHideOthers();
}
else if (low == upnp_page.id)
{
Show_UPnPPageHideOthers();
}
else if (low == nickname_autochage.id)
{
nickname_autochage.SwitchState();
}
else if (low == xuidhwid_autochange.id)
{
xuidhwid_autochange.SwitchState();
}
else if (low == localexternalip_autochange.id)
{
localexternalip_autochange.SwitchState();
}
else if (low == firmware_autochange.id)
{
firmware_autochange.SwitchState();
hooks::sysinfoapi_functions::GetSystemFirmwareTable_SetState_FakingDataEnabled(firmware_autochange.isPressed);
}
else if (low == upnp_autochange.id)
{
upnp_autochange.SwitchState();
}
else
{
}
}
void windows_accountpage::UPnP::SaveSettings_PreCreateVer(CWindowCfgWriter* writer)
{
writer->SaveButtonStateW(&upnp_autochange);
writer->SaveTextSettingW(&UPnP::device_field_location.edit_new_randmask, UPnP::textlim::device_field_location);
writer->SaveTextSettingW(&UPnP::device_field_server.edit_new_randmask, UPnP::textlim::device_field_server);
writer->SaveTextSettingW(&UPnP::device_field_USN.edit_new_randmask, UPnP::textlim::device_field_USN);
writer->SaveTextSettingW(&UPnP::device_field_location.edit_new, UPnP::textlim::device_field_location);
writer->SaveTextSettingW(&UPnP::device_field_server.edit_new, UPnP::textlim::device_field_server);
writer->SaveTextSettingW(&UPnP::device_field_USN.edit_new, UPnP::textlim::device_field_USN);
}
namespace windows_accountpage
{
namespace UPnP
{
typedef void setinfo_t(const wchar_t*);
void SingleLoad(CWindowCfgReader* reader, WinCombo& edit, unsigned short sz, CWindow_button_cfg& cfgb, setinfo_t& func)
{
const wchar_t* pp = ws_empty_text;
pp = reader->LoadTextSettingW(sz);
WinStringsPostLoader.LoadTextSettingW(&edit.edit_new_randmask, pp, sz);
if (cfgb.isPressed)
{
wchar_t* data = lazysectionbuffer_3x512.GetNulledMem(sz + 4, 0);
parsers::ParseRandMaskTextW(pp, sz, data, sz);
func(data);
}
}
};
};
void windows_accountpage::UPnP::LoadSettings_PreCreateVer(CWindowCfgReader* reader)
{
upnp_autochange.isPressed = reader->LoadButtonStateW();
SingleLoad(reader, UPnP::device_field_location, UPnP::textlim::device_field_location, upnp_autochange, hooks::bdUPnP_functions::SetDeviceInfo_location);
SingleLoad(reader, UPnP::device_field_server, UPnP::textlim::device_field_server, upnp_autochange, hooks::bdUPnP_functions::SetDeviceInfo_server);
SingleLoad(reader, UPnP::device_field_USN, UPnP::textlim::device_field_USN, upnp_autochange, hooks::bdUPnP_functions::SetDeviceInfo_USN);
const wchar_t* pp = nullptr;
pp = reader->LoadTextSettingW(UPnP::textlim::device_field_location);
WinStringsPostLoader.LoadTextSettingW(&UPnP::device_field_location.edit_new, pp, UPnP::textlim::device_field_location);
pp = reader->LoadTextSettingW(UPnP::textlim::device_field_server);
WinStringsPostLoader.LoadTextSettingW(&UPnP::device_field_server.edit_new, pp, UPnP::textlim::device_field_location);
pp = reader->LoadTextSettingW(UPnP::textlim::device_field_USN);
WinStringsPostLoader.LoadTextSettingW(&UPnP::device_field_USN.edit_new, pp, UPnP::textlim::device_field_location);
}
void windows_accountpage::Cfg_SavePreCreateWindowSettings(CWindowCfgWriter* writer)
{
writer->SaveButtonStateW(&localexternalip_autochange);
firmware::SaveSettings_PreCreateVer(writer);
UPnP::SaveSettings_PreCreateVer(writer);
}
void windows_accountpage::Cfg_LoadPreCreateWindowSettings(CWindowCfgReader* reader)
{
WinStringsPostLoader.Register(256);
localexternalip_autochange.isPressed = reader->LoadButtonStateW();
firmware::LoadSettings_PreCreateVer(reader);
UPnP::LoadSettings_PreCreateVer(reader);
//ExecutionAfterSettingsPreload();
}
void windows_accountpage::ButtonStatesPostLoader()
{
CWindowButtonStatePostLoader loader;
localexternalip_autochange.Visit(&loader);
firmware_autochange.Visit(&loader);
upnp_autochange.Visit(&loader);
}
void windows_accountpage::Cfg_Save(CWindowCfgWriter* writer)
{
CWindowCfgWriter_Wrapper_SaveWinCombo(nickname, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(title, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(titletype, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(emblem, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(level, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(prestige, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(clantag, writer);
writer->SaveButtonStateW(&nickname_autochage);
CWindowCfgWriter_Wrapper_SaveWinCombo(xuid_part1, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(xuid_part2, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(hwid_part1, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(hwid_part2, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(hwid_part3, writer);
writer->SaveButtonStateW(&xuidhwid_autochange);
CWindowCfgWriter_Wrapper_SaveWinCombo(localip, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(lip_port, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(externalip, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(exip_port, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(someip1, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(someip1_port, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(someip2, writer);
CWindowCfgWriter_Wrapper_SaveWinCombo(someip2_port, writer);
control_nicknameetc.SaveCfg(*writer);
control_externallocalips.SaveCfg(*writer);
control_xuidhwid.SaveCfg(*writer);
UPnP::control_deviceinfo.SaveCfg(*writer);
firmware::SaveCfg(writer);
}
void windows_accountpage::Cfg_Load(CWindowCfgReader* reader)
{
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, nickname);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, title);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, titletype);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, emblem);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, level);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, prestige);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, clantag);
reader->LoadButtonStateW(&nickname_autochage);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, xuid_part1);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, xuid_part2);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, hwid_part1);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, hwid_part2);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, hwid_part3);
reader->LoadButtonStateW(&xuidhwid_autochange);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, localip);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, lip_port);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, externalip);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, exip_port);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, someip1);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, someip1_port);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, someip2);
CWindowCfgWriter_Wrapper_LoadWinCombo(reader, someip2_port);
control_nicknameetc.LoadCfg(*reader);
control_externallocalips.LoadCfg(*reader);
control_xuidhwid.LoadCfg(*reader);
UPnP::control_deviceinfo.LoadCfg(*reader);
firmware::LoadCfg(reader);
WinStringsPostLoader.LoadTextInEdits();
WinStringsPostLoader.Unregister();
ButtonStatesPostLoader();
}
namespace windows_accountpage
{
template<size_t id>
void ReadSmth_ChangeNicknameEtc_andUpdate()
{
iw5mp_changedata::ChangeNickname(nickname.GetTextW<id>(txtlimit_nickname + 4));
iw5mp_changedata::ChangeTitle(title.GetTextW<id>(txtlimit_title + 4));
iw5mp_changedata::ChangeClanTag(clantag.GetTextW<id>(txtlimit_clantag + 4));
iw5mp_changedata::ChangeTitleType(textconvertors::ConvertWTextDecTypeToU32(titletype.GetTextW<id>(txtlimit_emlem_and_title_types + 4)));
iw5mp_changedata::ChangeEmblemType(textconvertors::ConvertWTextDecTypeToU32(emblem.GetTextW<id>(txtlimit_emlem_and_title_types + 4)));
iw5mp_changedata::ChangePrestige(textconvertors::ConvertWTextDecTypeToU32(prestige.GetTextW<id>(txtlimit_level_and_prestiges_values + 4)));
iw5mp_changedata::ChangeLevel(textconvertors::ConvertWTextDecTypeToU32(level.GetTextW<id>(txtlimit_level_and_prestiges_values + 4)));
UpdateCurrentNickanameEtc();
}
}
void windows_accountpage::ReadData_ChangeNicknameEtc_andUpdate()
{
ReadSmth_ChangeNicknameEtc_andUpdate<0>();
}
void windows_accountpage::ReadRandData_ChangeNicknameEtc_andUpdate()
{
ReadSmth_ChangeNicknameEtc_andUpdate<1>();
}
void windows_accountpage::ReadRandDataMask_ChangeNicknameEtc_andUpdate()
{
ReadSmth_ChangeNicknameEtc_andUpdate<2>();
}
namespace windows_accountpage
{
template<size_t id>
void ReadSmth_ChangeXUIDHWID_andUpdate()
{
uint32_t xpart1 = 0;
uint32_t xpart2 = 0;
bool updateAllowed = false;
xpart1 = textconvertors::ConvertWTextHexTypeToU32(xuid_part1.GetTextW<id>(txtlimit_xuid_hwid_values + 4));
xpart2 = textconvertors::ConvertWTextHexTypeToU32(xuid_part2.GetTextW<id>(txtlimit_xuid_hwid_values + 4));
iw5mp_changedata::ChangeXUID(xpart1, xpart2);
iw5mp_changedata::ChangeSteamAPIXUID(xpart1, xpart2);
updateAllowed = iw5mp_changedata::ChangeSteamAPIsteamid(xpart1, xpart2);
iw5mp_changedata::ChangeHWID(
textconvertors::ConvertWTextHexTypeToU32(hwid_part1.GetTextW<id>(txtlimit_xuid_hwid_values + 4)),
textconvertors::ConvertWTextHexTypeToU32(hwid_part2.GetTextW<id>(txtlimit_xuid_hwid_values + 4)),
textconvertors::ConvertWTextHexTypeToU32(hwid_part3.GetTextW<id>(txtlimit_xuid_hwid_values + 4))
);
if (updateAllowed == true) {
UpdateCurrentXUIDHWID();
}
else
{
}
}
};
void windows_accountpage::ReadData_ChangeXUIDHWID_andUpdate()
{
ReadSmth_ChangeXUIDHWID_andUpdate<0>();
}
void windows_accountpage::ReadRandData_ChangeXUIDHWID_andUpdate()
{
ReadSmth_ChangeXUIDHWID_andUpdate<1>();
}
void windows_accountpage::ReadRandDataMask_ChangeXUIDHWID_andUpdate()
{
ReadSmth_ChangeXUIDHWID_andUpdate<2>();
}
namespace windows_accountpage
{
template<size_t id>
void ReadSmth_ChangeNETData()
{
uint8_t ExactlyNewIP[4] = { 0 };
textconvertors::ConvertWTextToIP(externalip.GetTextW<id>(txtlimit_ip + 4), ExactlyNewIP);
if (ExactlyNewIP[0]) { hooks::serializeNetData_change::ExternalIP(ExactlyNewIP); }
textconvertors::ConvertWTextToIP(localip.GetTextW<id>(txtlimit_ip + 4), ExactlyNewIP);
if (ExactlyNewIP[0]) { hooks::serializeNetData_change::LocalIP(ExactlyNewIP); }
textconvertors::ConvertWTextToIP(someip1.GetTextW<id>(txtlimit_ip + 4), ExactlyNewIP);
if (ExactlyNewIP[0]) { hooks::serializeNetData_change::OtherlIP1(ExactlyNewIP); }
textconvertors::ConvertWTextToIP(someip2.GetTextW<id>(txtlimit_ip + 4), ExactlyNewIP);
if (ExactlyNewIP[0]) { hooks::serializeNetData_change::OtherlIP2(ExactlyNewIP); }
uint16_t Port = 0;
Port = textconvertors::ConvertWTextDecTypeToU16(exip_port.GetTextW<id>(txtlimit_port + 4));
if (Port != 0) { hooks::serializeNetData_change::ExternalPort(Port); }
Port = textconvertors::ConvertWTextDecTypeToU16(lip_port.GetTextW<id>(txtlimit_port + 4));
if (Port != 0) { hooks::serializeNetData_change::LocalPort(Port); }
Port = textconvertors::ConvertWTextDecTypeToU16(someip1_port.GetTextW<id>(txtlimit_port + 4));
if (Port != 0) { hooks::serializeNetData_change::OtherPort1(Port); }
Port = textconvertors::ConvertWTextDecTypeToU16(someip2_port.GetTextW<id>(txtlimit_port + 4));
if (Port != 0) { hooks::serializeNetData_change::OtherPort2(Port); }
}
}
void windows_accountpage::ReadData_ChangeNETData()
{
ReadSmth_ChangeNETData<0>();
}
void windows_accountpage::ReadRandData_ChangeNETData()
{
ReadSmth_ChangeNETData<1>();
}
void windows_accountpage::ReadRandDataMask_ChangeNETData()
{
ReadSmth_ChangeNETData<2>();
}
void windows_accountpage::UpdateCurrentNickanameEtc()
{
CWindowTextWriter_WriteText(&titletype.edit_show, textconvertors::ConvertDecTypeU32ToWText(iw5mp_getdata::GetTitleType()));
CWindowTextWriter_WriteText(&emblem.edit_show, textconvertors::ConvertDecTypeU32ToWText(iw5mp_getdata::GetEmblem()));
CWindowTextWriter_WriteText(&prestige.edit_show, textconvertors::ConvertDecTypeU32ToWText(iw5mp_getdata::GetPrestige()));
CWindowTextWriter_WriteText(&level.edit_show, textconvertors::ConvertDecTypeU32ToWText(iw5mp_getdata::GetLevel()));
CWindowTextWriter_WriteText(&title.edit_show, iw5mp_getdata::GetTitle());
CWindowTextWriter_WriteText(&clantag.edit_show, iw5mp_getdata::GetClanTag());
CWindowTextWriter_WriteText(&nickname.edit_show, iw5mp_getdata::GetNickname());
}
void windows_accountpage::UpdateCurrentXUIDHWID()
{
CWindowTextWriter_WriteText(&xuid_part1.edit_show, textconvertors::ConvertHexTypeU32ToWText(iw5mp_getdata::GetXUID_part1()));
CWindowTextWriter_WriteText(&xuid_part2.edit_show, textconvertors::ConvertHexTypeU32ToWText(iw5mp_getdata::GetXUID_part2()));
CWindowTextWriter_WriteText(&hwid_part1.edit_show, textconvertors::ConvertHexTypeU32ToWText(iw5mp_getdata::GetHWID_part1()));
CWindowTextWriter_WriteText(&hwid_part2.edit_show, textconvertors::ConvertHexTypeU32ToWText(iw5mp_getdata::GetHWID_part2()));
CWindowTextWriter_WriteText(&hwid_part3.edit_show, textconvertors::ConvertHexTypeU32ToWText(iw5mp_getdata::GetHWID_part3()));
}
void windows_accountpage::UpdateCurrentNETData()
{
uint8_t addrIP[4] = { 0 };
hooks::serializeNetData_get::ExternalIP(addrIP);
CWindowTextWriter_WriteText(&externalip.edit_show, textconvertors::ConvertIPToWText(addrIP));
hooks::serializeNetData_get::LocalIP(addrIP);
CWindowTextWriter_WriteText(&localip.edit_show, textconvertors::ConvertIPToWText(addrIP));
hooks::serializeNetData_get::OtherlIP1(addrIP);
CWindowTextWriter_WriteText(&someip1.edit_show, textconvertors::ConvertIPToWText(addrIP));
hooks::serializeNetData_get::OtherlIP2(addrIP);
CWindowTextWriter_WriteText(&someip2.edit_show, textconvertors::ConvertIPToWText(addrIP));
CWindowTextWriter_WriteText(&exip_port.edit_show, textconvertors::ConvertDecTypeToU16ToWText(hooks::serializeNetData_get::ExternalPort()));
CWindowTextWriter_WriteText(&lip_port.edit_show, textconvertors::ConvertDecTypeToU16ToWText(hooks::serializeNetData_get::LocalPort()));
CWindowTextWriter_WriteText(&someip1_port.edit_show, textconvertors::ConvertDecTypeToU16ToWText(hooks::serializeNetData_get::OtherPort1()));
CWindowTextWriter_WriteText(&someip2_port.edit_show, textconvertors::ConvertDecTypeToU16ToWText(hooks::serializeNetData_get::OtherPort2()));
}
void windows_accountpage::UpdateCurrentChallengeS2()
{
CWindowTextWriter_WriteText(&firmware::challengeS2_part_1, textconvertors::ConvertHexTypeU32ToWText(hooks::iw5mp_functions::ns_GetChallengeS2::Get_P1()));
CWindowTextWriter_WriteText(&firmware::challengeS2_part_2, textconvertors::ConvertHexTypeU32ToWText(hooks::iw5mp_functions::ns_GetChallengeS2::Get_P2()));
CWindowTextWriter_WriteText(&firmware::challengeS2_part_3, textconvertors::ConvertHexTypeU32ToWText(hooks::iw5mp_functions::ns_GetChallengeS2::Get_P3()));
CWindowTextWriter_WriteText(&firmware::challengeS2_part_4, textconvertors::ConvertHexTypeU32ToWText(hooks::iw5mp_functions::ns_GetChallengeS2::Get_P4()));
}
void windows_accountpage::DoJobOnConnect()
{
if (nickname_autochage.isPressed)
{
control_nicknameetc.ForceExecuteJob_ApplyRand();
}
if (xuidhwid_autochange.isPressed)
{
control_xuidhwid.ForceExecuteJob_ApplyRand();
}
if (localexternalip_autochange.isPressed)
{
control_externallocalips.ForceExecuteJob_ApplyRand();
}
if (upnp_autochange.isPressed)
{
UPnP::control_deviceinfo.ForceExecuteJob_ApplyRand();
}
UpdateCurrentNickanameEtc();
}
void windows_accountpage::UPnP::update_device::Location(const wchar_t* text)
{
CWindowTextWriter_WriteText(&UPnP::device_field_location.edit_show, text);
}
void windows_accountpage::UPnP::update_device::Server(const wchar_t* text)
{
CWindowTextWriter_WriteText(&UPnP::device_field_server.edit_show, text);
}
void windows_accountpage::UPnP::update_device::USN(const wchar_t* text)
{
CWindowTextWriter_WriteText(&UPnP::device_field_USN.edit_show, text);
}
namespace windows_accountpage
{
template<size_t id>
void ReadSmth_ChangeDeviceInfo()
{
hooks::bdUPnP_functions::SetDeviceInfo_location(UPnP::device_field_location.GetTextW<id>(UPnP::textlim::device_field_location));
hooks::bdUPnP_functions::SetDeviceInfo_server(UPnP::device_field_server.GetTextW<id>(UPnP::textlim::device_field_server));
hooks::bdUPnP_functions::SetDeviceInfo_USN(UPnP::device_field_USN.GetTextW<id>(UPnP::textlim::device_field_USN));
hooks::bdUPnP_functions::SetDeviceInfo();
}
}
void windows_accountpage::UPnP::ReadData_ChangeDeviceInfo()
{
ReadSmth_ChangeDeviceInfo<0>();
}
void windows_accountpage::UPnP::ReadRandData_ChangeDeviceInfo()
{
ReadSmth_ChangeDeviceInfo<1>();
}
void windows_accountpage::UPnP::ReadRandDataMask_ChangeDeviceInfo()
{
ReadSmth_ChangeDeviceInfo<2>();
}