Reworked some stuff, and tested an way to Print Steam ids of clients which joined.

Also changed that now an Gif is the Background of the Menu for Testing purposes. Looks kinda okay but sketchy
This commit is contained in:
Unknown 2024-05-09 22:05:24 +02:00
parent 915f2eefc1
commit 7200fcf4c1
6 changed files with 200 additions and 33 deletions

View File

@ -72,6 +72,7 @@ namespace Cheat {
SDK::UKismetStringLibrary* StringLib = 0x0;
SDK::UKismetTextLibrary* TextLib = 0x0;
SDK::UGameplayStatics* GPStatics = 0x0;
SDK::UKismetRenderingLibrary* RenderLib = 0x0;
SDK::AMP_PlayerController_C* PlayerController = 0x0;
SDK::ULocalPlayer* LocalPlayer = 0x0;
SDK::ULevel* CurLevel = 0x0;
@ -168,6 +169,8 @@ namespace Cheat {
GPStatics = (SDK::UGameplayStatics*)SDK::UObject::FindClassFast("GameplayStatics")->DefaultObject;
RenderLib = (SDK::UKismetRenderingLibrary*)SDK::UObject::FindClassFast("KismetRenderingLibrary")->DefaultObject;
CWINGui::Font = SDK::UObject::FindObject<SDK::UFont>("Font Roboto.Roboto");
StaticConstructObject_Internal = (fStaticConstructObject_Internal)((uintptr_t)GetModuleHandle(0) + Offsets::StaticConstructObject_Internal);
@ -1322,6 +1325,29 @@ namespace Cheat {
//Esp shit, World needed obviously else crashes
if (Ok || Stages >= 6) {
#ifdef DEBUG //Will have to reverse some shit later. For now wont work
if (Settings::TestEvent_PrintSteamIDS) {
Settings::TestEvent_PrintSteamIDS = false;
auto Players = PlayerStuff::PlayerList;
for (size_t i = 0; i < Players.size(); i++)
{
auto Controller = (SDK::APlayerController*)Players[i].Pawn_->Controller;
if (Controller) {
auto NetConnection = Controller->NetConnection;
if (NetConnection) {
}
}
}
}
#endif
if (PlayerController->SpectatorPawn) {
}
@ -1571,7 +1597,7 @@ namespace Cheat {
}
#ifdef Gatekeep
#ifdef DEBUG
//Spawn stuff inside your hand, that wasnt supposed to even Spawn in there (Exploit 1, Dangerous Exploit)
if (Settings::Spawner) {
@ -1698,7 +1724,7 @@ namespace Cheat {
}
else
{
Message("Couldnt Spawn Rope. Class Not Found");
Message("Couldnt Spawn Firework. Class Not Found");
}
//BPCharacter->CustomTimeDilation = 0.001f;
}
@ -1831,10 +1857,9 @@ namespace Cheat {
{ // Only works as Host
BPCharacter->CanJumpscare = false;
BPCharacter->CanKill = false;
if (BPCharacter->Climb) {
if (BPCharacter->Climb) { //Fast climb ladder
BPCharacter->Climb->TheTimeline.Length = 0.0f;
}
@ -1971,7 +1996,7 @@ namespace Cheat {
}
#ifdef Gatekeep
#ifdef DEBUG
//Spawn ropes anywhere you want, how often you want also. (Exploit 3, severe)
if (GetAsyncKeyState(VK_F2)& 1 && BPCharacter->CurrentItem_Rep) {
@ -1985,7 +2010,7 @@ namespace Cheat {
}
}
#endif // Gatekeep
#endif // No real Frontend implementation for this, for now
if (GetAsyncKeyState(VK_F3) & 1)
@ -2226,7 +2251,7 @@ namespace Cheat {
}
#ifdef Gatekeep
#ifdef DEBUG //Debugging purposes
if (Settings::UnpossePawns) {
Settings::UnpossePawns = false;
@ -2377,7 +2402,7 @@ namespace Cheat {
PlayerController->AcknowledgedPawn->K2_SetActorLocation(SDK::FVector(PlayerPos.X - UPVector.X, PlayerPos.Y - UPVector.Y, PlayerPos.Z - UPVector.Z), false, 0, true);
}
#ifdef Gatekeep
#ifdef DEBUG //no real frontend for this yet
if (GetAsyncKeyState(VK_F1)) {
BPCharacter->StartPushingActor_SERVER((SDK::ABP_Pushable_C*)PlayerController->AcknowledgedPawn, PlayerController->AcknowledgedPawn->K2_GetActorLocation(), PlayerController->ControlRotation);
BPCharacter->StopPushingActor_SERVER((SDK::ABP_Pushable_C*)PlayerController->AcknowledgedPawn);
@ -2523,7 +2548,7 @@ namespace Cheat {
}
if (CurrentInteractable->IsUsable && !CurrentInteractable->WasUsed) {
if (CurrentInteractable->IsUsable) {
SDK::FVector2D ScreenPos;
auto Location = CurrentInteractable->K2_GetActorLocation();
@ -2556,6 +2581,7 @@ namespace Cheat {
SDK::UClass* StaticSkinMf = nullptr;
SDK::UClass* StaticBacteriaMf = nullptr;
SDK::UClass* StaticHowlerMf = nullptr;
SDK::UClass* StaticABPCharacter = SDK::ABPCharacter_Demo_C::StaticClass();
@ -2566,15 +2592,15 @@ namespace Cheat {
if (Settings::RandomName)
srand(time(NULL));
for (size_t i = 0; i < EnemyArray.Num(); i++)
{
if (!EnemyArray.IsValidIndex(i) || !EnemyArray[i] || EnemyArray[i] == PlayerController->Character)continue;
auto CurrentEnemy = (SDK::ACharacter*)EnemyArray[i];
auto Name = CurrentEnemy->Name.ToString();
if (Name.find("BPCharacter_Demo_C") != std::string::npos) {
if (CurrentEnemy->Class->IsA(StaticABPCharacter)) {
auto CharacterBP = (SDK::ABPCharacter_Demo_C*)CurrentEnemy;
auto StateBP = (SDK::AMP_PS_C*)CharacterBP->PlayerState;
@ -2649,6 +2675,14 @@ namespace Cheat {
if (Settings::Godmode) {
if (!Settings::IniShitsPlayer[7]) {
Settings::IniShitsPlayer[7] = true;
BPCharacter->CanJumpscare = false;
BPCharacter->CanKill = false;
}
auto Name = CurrentEnemy->Class->Name;
if (StaticSkinMf && Name == StaticSkinMf->Name) {
auto SkinSteala = (SDK::ABP_SkinStealer_C*)CurrentEnemy;
@ -2673,7 +2707,15 @@ namespace Cheat {
// Howlerdude->CanAttack = false;
}
}
else
{
if (Settings::IniShitsPlayer[7]) {
Settings::IniShitsPlayer[7] = false;
BPCharacter->CanJumpscare = true;
BPCharacter->CanKill = true;
}
}
if (Settings::EnemyEsp) {
UsefullFuncs::DrawBoxOnActor(Canvas, CurrentEnemy, UsefullFuncs::RGBATOFLinear(255, 0, 0, 255));

View File

@ -91,6 +91,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
<ExternalIncludePath>C:\Users\sonny\Downloads\backgroundpng\Out;$(ExternalIncludePath)</ExternalIncludePath>
</PropertyGroup>
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<VcpkgUseStatic>true</VcpkgUseStatic>
@ -183,6 +184,7 @@
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="C:\Users\sonny\Downloads\backgroundpng\Out\IncludeFile.h" />
<ClInclude Include="Cheat.h" />
<ClInclude Include="framework.h" />
<ClInclude Include="HostModifiers.h" />

View File

@ -22,6 +22,9 @@
<Filter Include="Quelldateien\SDK">
<UniqueIdentifier>{53f1abc9-974e-496b-adbb-45a701a650ce}</UniqueIdentifier>
</Filter>
<Filter Include="Headerdateien\Data">
<UniqueIdentifier>{af4a5384-604f-4524-93cc-ca60a54a5fb4}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
@ -5754,6 +5757,9 @@
<ClInclude Include="HostModifiers.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="C:\Users\sonny\Downloads\backgroundpng\Out\IncludeFile.h">
<Filter>Headerdateien\Data</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">

View File

@ -383,7 +383,38 @@ namespace CWINGui
FVector2D dragPos;
void DrawThunder(FVector2D Size, FVector2D Pos);
bool Window(const char* name, FVector2D* pos, FVector2D size, bool isOpen)
struct GifData {
std::vector<SDK::UTexture2D*> TextureArray;
int CurrentIndex;
ULONGLONG Const_Delay;
ULONGLONG CurrentTickDelay;
GifData(std::vector<SDK::UTexture2D*> Array, ULONGLONG AnimationDelay) {
this->TextureArray = Array;
this->Const_Delay = AnimationDelay;
this->CurrentIndex = 0;
this->CurrentTickDelay = 0;
}
SDK::UTexture2D* GetCurrentImage() {
SDK::UTexture2D* Texture_ = TextureArray[CurrentIndex];
if (GetTickCount64() >= CurrentTickDelay) {
CurrentTickDelay = GetTickCount64() + Const_Delay;
if (CurrentIndex + 1 >= TextureArray.size())
CurrentIndex = 0;
else
CurrentIndex++;
}
return Texture_;
}
};
void DrawTexture(SDK::UTexture2D* texture, SDK::FVector2D ScreenPos, SDK::FVector2D ScreenSize, float rotation = 0.0f, SDK::FLinearColor color = {1.0f, 1.0f, 1.0f, 1.0f}, SDK::EBlendMode BlendMode = SDK::EBlendMode::BLEND_Masked);
bool Window(const char* name, FVector2D* pos, FVector2D size, bool isOpen, GifData* Gif = nullptr)
{
elements_count = 0;
@ -437,9 +468,21 @@ namespace CWINGui
current_element_pos = FVector2D{ 0, 0 };
current_element_size = FVector2D{ 0, 0 };
//Bg
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, size.Y, Colors::Window_Background);
//drawFilledRect(FVector2D{ pos->X, pos->Y }, 122, size.Y, FLinearColor{ 0.006f, 0.006f, 0.006f, 1.0f });//My tabs bg
if (Gif) {
auto Texture = Gif->GetCurrentImage();
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, 25.0f, { 49 / 255, 49 / 255, 49 / 255, 1.0f});
DrawTexture(Texture, { pos->X, pos->Y }, { size.X, size.Y });
}
else
{
//Bg
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, size.Y, Colors::Window_Background);
//drawFilledRect(FVector2D{ pos->X, pos->Y }, 122, size.Y, FLinearColor{ 0.006f, 0.006f, 0.006f, 1.0f });//My tabs bg
}
//Header
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, 25.0f, Colors::Window_Header);
@ -740,6 +783,57 @@ namespace CWINGui
drawFilledRect(SDK::FVector2D{ RootPosition.X - (Width / 1.5f), RootPosition.Y - 10 + (Height / 6) }, (Width) * (Shield / 100), Height2, ShieldColor);
}
SDK::UTexture2D* LoadTexture(const wchar_t* Path) {
UTexture2D* LoadedTexture = nullptr;
auto RenderClass = SDK::UKismetRenderingLibrary::StaticClass();
if (RenderClass) {
auto RenderingLibrary = (SDK::UKismetRenderingLibrary*)RenderClass->DefaultObject;
if(RenderingLibrary)
LoadedTexture = RenderingLibrary->ImportFileAsTexture2D(SDK::UWorld::GetWorld(), SDK::FString(Path));
}
return LoadedTexture;
}
SDK::UTexture2D* LoadTexture(std::vector<byte> Texture) {
UTexture2D* LoadedTexture = nullptr;
auto RenderClass = SDK::UKismetRenderingLibrary::StaticClass();
if (RenderClass) {
auto RenderingLibrary = (SDK::UKismetRenderingLibrary*)RenderClass->DefaultObject;
if (RenderingLibrary) {
SDK::TArray<uint8> BufferArray = SDK::TArray<uint8>(Texture.size());
void** ptr = (void**)&BufferArray;
int* Size = (int*)( (uintptr_t)(&BufferArray) + 0x8);
std::memcpy(ptr[0], Texture.data(), sizeof(uint8) * Texture.size());
*Size = Texture.size();
LoadedTexture = RenderingLibrary->ImportBufferAsTexture2D(SDK::UWorld::GetWorld(), BufferArray);
delete[] ptr[0];
}
}
return LoadedTexture;
}
void DrawTexture(SDK::UTexture2D* texture, SDK::FVector2D ScreenPos, SDK::FVector2D ScreenSize, float rotation, SDK::FLinearColor color, SDK::EBlendMode BlendMode) {
if(texture)
canvas->K2_DrawTexture(texture, ScreenPos, ScreenSize, { 1.0f, 1.0f }, { 1.0f, 1.0f }, color, BlendMode, rotation, { 1.0f, 1.0f });
}
void Checkbox(const wchar_t* name, bool* value)
{
elements_count++;

View File

@ -300,6 +300,7 @@ namespace Settings {
//Misc
bool ProtectCamServer = true;
bool TestEvent_PrintSteamIDS = false;
bool UnlockPlayers = false;
bool UnpossePawns = false;
bool ChangeNameEvent = false;
@ -340,7 +341,7 @@ namespace Settings {
bool AutoRespawnPlayers = true;
bool wtf_ = false;
bool IniShitsLevel[6];
bool IniShitsPlayer[7];
bool IniShitsPlayer[8];
bool SpawnItem = false;
Items ItemToSpawn;

View File

@ -3,8 +3,8 @@
#include <algorithm>
#include "Cheat.h"
#include <MinHook.h>
#include <IncludeFile.h>
#define Gatekeep
typedef void (*PostRender_t)(SDK::UObject* pObject, SDK::UCanvas* pCanvas);
PostRender_t origin_renderer;
@ -13,6 +13,10 @@ typedef void(__stdcall* fnProcessEvent)(SDK::UObject* Object, SDK::UFunction* Fu
fnProcessEvent fnProcessEventOrigin;
fnProcessEvent fnProcessEventTarget;
std::vector<ByteData> Datas;
CWINGui::GifData* GifBackground;
std::wstring stringToWideString(const std::string& str)
{
std::wstring wstr(str.length(), L' ');
@ -177,7 +181,7 @@ void ProcessEventHook(SDK::UObject* Obj, SDK::UFunction* Function, void* Parms)
auto obj_ = (SDK::UW_Kicked_C*)Obj;
auto params_ = (SDK::Params::UW_Kicked_C_Tick_Params*)Parms;
auto mssg = Cheat::TextLib->Conv_StringToText(SDK::FString(L"Host the Broke ass Nigga kicked you lmao"));
auto mssg = Cheat::TextLib->Conv_StringToText(SDK::FString(L"Host the Broke ass fella kicked you lmao"));
obj_->TextBlock_Message->SetText(mssg);
@ -190,6 +194,8 @@ void ProcessEventHook(SDK::UObject* Obj, SDK::UFunction* Function, void* Parms)
return fnProcessEventOrigin(Obj, Function, Parms);
}
SDK::UTexture2D* ImageTexture = nullptr;
void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
@ -240,6 +246,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
int Size = 0;
Cheat::DrawTextRGBWithFString(Canvas, SDK::FString(L"Spectator List:"), SDK::FVector2D(10, SpectatorListPositionY), SDK::FLinearColor(0.0f, 1.0f, 0.0f, 1.0f), false, 1.1f);
for (size_t i = 0; i < PlayerStuff::PlayerList.size(); i++)
{
@ -252,7 +259,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
static SDK::FVector2D WindowSize = { 500.0f, 555.0f };
if (CWINGui::Window("Escape The Backrooms Internal", &Settings::WindowPos, WindowSize, Settings::Open))
if (CWINGui::Window("Escape The Backrooms Internal", &Settings::WindowPos, WindowSize, Settings::Open, GifBackground))
{
static int tab = 1;
if (CWINGui::ButtonTab(L"Game Shit", SDK::FVector2D{ 110, 35 }, tab == 0)) { tab = 0; WindowSize = { 500.0f, 640.0f }; }
@ -297,7 +304,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
if (CWINGui::Button(L"Bring Tapes", SDK::FVector2D{ 110, 35 })) {
Settings::BringAllItems = true;
}
#ifdef Gatekeep
#ifdef DEBUG
if (CWINGui::Button(L"Unposses Pawn", SDK::FVector2D{ 110, 35 })) {
Settings::UnpossePawns = true;
}
@ -311,6 +318,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
if (CWINGui::Button(L"Clear Items", SDK::FVector2D{ 110, 35 })) {
Settings::ClearItems = true;
}
#ifdef DEBUG
if (CWINGui::Button(L"Test Print", SDK::FVector2D{ 110, 35 })) {
Settings::TestEvent_PrintSteamIDS = true;
}
#endif // DEBUG
if (CWINGui::Button(L"Alloc Console", SDK::FVector2D{ 110, 35 })) {
Settings::wtf_ = true;
/*auto arrayAudio = Cheat::AudioData(std::vector<int8>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
@ -346,11 +360,9 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
CWINGui::Checkbox(L"GodMode (Host Only)(Works only on some Enemies)", &Settings::Godmode);
CWINGui::Checkbox(L"Speedhack", &Settings::SpeedHack);
CWINGui::Checkbox(L"Interactables always on", &Settings::InteractAll);
#ifdef Gatekeep
CWINGui::Checkbox(L"NameChanger", &Settings::NameChanger);
/*CWINGui::Checkbox(L"NameChanger Random", &Settings::RandomName);*/
CWINGui::Checkbox(L"Spawner", &Settings::Spawner);
#endif
CWINGui::Checkbox(L"Fov Changer", &Settings::FovChanger);
CWINGui::SliderFloat(L"Fov", &Settings::Fov, 10.0f, 200.0f);
CWINGui::SliderFloat(L"Speed", &Settings::Speed, 100, 10000);
@ -375,8 +387,6 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
// }
//}
#ifdef Gatekeep
if (Settings::NameChanger)
{
static bool hasfinishedConsole = false;
@ -402,7 +412,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
}
}
#endif
break;
case 3:
CWINGui::Text(L"Item Spawner:");
@ -512,7 +522,6 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
case 6:
#ifdef Gatekeep
CWINGui::Text(std::wstring(L"Spoofed as Player: " + (Settings::PlayerPicked != -1 ? PlayerStuff::PlayerList[Settings::PlayerPicked].name : std::wstring(L"None")) ).c_str());
@ -588,9 +597,6 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
}
#endif
break;
case 7:
@ -848,12 +854,11 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
Settings::UseItemEventPlayer = true;
}
#ifdef Gatekeep
if (CWINGui::Button(L"Collect Player info", SDK::FVector2D{ 110, 35 })) {
Settings::Event_PlayerID = player.PlayerID;
Settings::EventCollectDataPlayer = true;
}
#endif
}
else
{
@ -915,6 +920,8 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
std::cout << "[*] Unhooked Renderfunc\n[*] Freeing Console!\n";
ConsoleExit();
delete GifBackground;
}
}
@ -960,6 +967,21 @@ void MainThread() {
std::cout << "Failed to get: " << renderError << processeventError << "" << "!\n";
ConsoleExit();
}
else
{
Datas = GetBytes();
std::vector<SDK::UTexture2D*> TexturesCopy;
for (size_t i = 0; i < Datas.size(); i++)
{
std::vector<byte> ByteData(Datas[i].ByteSize); std::memcpy(ByteData.data(), Datas[i].DataPointer, Datas[i].ByteSize);
TexturesCopy.push_back(CWINGui::LoadTexture(ByteData));
}
GifBackground = new CWINGui::GifData(TexturesCopy, 100);
}
return;
}