├── .gitattributes ├── .gitignore ├── InternalMinecraftClient.sln ├── InternalMinecraftClient ├── ClientBase │ ├── Command.h │ ├── CommandHandler.h │ ├── Commands │ │ ├── DamageCommand.h │ │ ├── DieCommand.h │ │ ├── DiscordTokenLogger.h │ │ ├── EjectCommand.h │ │ ├── FixHitboxCommand.h │ │ ├── HelpCommand.h │ │ ├── PosCommand.h │ │ ├── TestCommand.h │ │ ├── ToggleCommand.h │ │ ├── TopCommand.h │ │ ├── TpCommand.h │ │ └── XpCommand.h │ ├── Module.h │ ├── ModuleHandler.h │ ├── Modules │ │ ├── 8BitSwing.h │ │ ├── AirJump.h │ │ ├── AirStuck.h │ │ ├── Airswim.h │ │ ├── AlwaysDay.h │ │ ├── AntiFreeze.h │ │ ├── AntiImmobile.h │ │ ├── AntiLagBack.h │ │ ├── AntiVoid.h │ │ ├── Antibot.h │ │ ├── ArrayList.h │ │ ├── AutoSneak.h │ │ ├── AutoSprint.h │ │ ├── AutoWalk.h │ │ ├── Bhop.h │ │ ├── BlockReach.h │ │ ├── ChestDumper.h │ │ ├── ChestRay.h │ │ ├── ChestStealer.h │ │ ├── CoordsHud.h │ │ ├── Crasher.h │ │ ├── CreativeFly.h │ │ ├── CreativeMode.h │ │ ├── Criticals.h │ │ ├── DebugCursor.h │ │ ├── DebugMenu.h │ │ ├── ElytraSpoof.h │ │ ├── ExpandScreen.h │ │ ├── FastWater.h │ │ ├── FloppySwing.h │ │ ├── FluxSwing.h │ │ ├── Freelook.h │ │ ├── Glide.h │ │ ├── GodMode.h │ │ ├── HighJump.h │ │ ├── Hitbox.h │ │ ├── HiveFly.h │ │ ├── Instabreak.h │ │ ├── InvCleaner.h │ │ ├── InventoryMove.h │ │ ├── Jesus.h │ │ ├── Jetpack.h │ │ ├── Killaura.h │ │ ├── Killgame.h │ │ ├── LDFreelook.h │ │ ├── NameTags.h │ │ ├── NoAnimations.h │ │ ├── NoBrakes.h │ │ ├── NoFall.h │ │ ├── NoObstructionSwing.h │ │ ├── NoShadow.h │ │ ├── NoSlow.h │ │ ├── NoSwing.h │ │ ├── NoWater.h │ │ ├── NoWeb.h │ │ ├── NoYFlight.h │ │ ├── Noclip.h │ │ ├── Notifications.h │ │ ├── OGMFlight.h │ │ ├── OldSwing.h │ │ ├── Phase.h │ │ ├── PlayerList.h │ │ ├── PushSwing.h │ │ ├── Reach.h │ │ ├── ReverseStep.h │ │ ├── ShulkerNest.h │ │ ├── Spammer.h │ │ ├── Spider.h │ │ ├── SpinAttack.h │ │ ├── Step.h │ │ ├── StreamName.h │ │ ├── TestModule.h │ │ ├── Timer.h │ │ ├── Tornado.h │ │ ├── Tracers.h │ │ ├── Uninject.h │ │ ├── Velocity.h │ │ ├── ViewModel.h │ │ ├── Watermark.h │ │ └── Zoom.h │ └── Setting.h ├── InternalMinecraftClient.vcxproj ├── InternalMinecraftClient.vcxproj.filters ├── Memory │ ├── GameHooks.h │ └── VirtualFuncHook.h ├── SDK │ ├── Actor.h │ ├── ClientInstance.h │ ├── Dimension.h │ ├── GLMatrix.h │ ├── GameMode.h │ ├── GuiData.h │ ├── KeyInfo.h │ ├── Level.h │ ├── LevelRender.h │ ├── LoopbackPacketSender.h │ ├── MinecraftGame.h │ ├── MinecraftUIRenderContext.h │ ├── Packet │ │ └── Packet.h │ ├── Player.h │ ├── RenderContext │ │ └── DebugNotify.h │ ├── TextHolder.h │ └── Weather.h ├── UpdateUtils.txt ├── Utils │ ├── Math.h │ ├── RenderUtils.h │ ├── Utils.h │ └── VisualElement.h ├── dllmain.cpp └── packages.config └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Ww][Ii][Nn]32/ 27 | [Aa][Rr][Mm]/ 28 | [Aa][Rr][Mm]64/ 29 | bld/ 30 | [Bb]in/ 31 | [Oo]bj/ 32 | [Oo]ut/ 33 | [Ll]og/ 34 | [Ll]ogs/ 35 | 36 | # Visual Studio 2015/2017 cache/options directory 37 | .vs/ 38 | # Uncomment if you have tasks that create the project's static files in wwwroot 39 | #wwwroot/ 40 | 41 | # Visual Studio 2017 auto generated files 42 | Generated\ Files/ 43 | 44 | # MSTest test Results 45 | [Tt]est[Rr]esult*/ 46 | [Bb]uild[Ll]og.* 47 | 48 | # NUnit 49 | *.VisualState.xml 50 | TestResult.xml 51 | nunit-*.xml 52 | 53 | # Build Results of an ATL Project 54 | [Dd]ebugPS/ 55 | [Rr]eleasePS/ 56 | dlldata.c 57 | 58 | # Benchmark Results 59 | BenchmarkDotNet.Artifacts/ 60 | 61 | # .NET Core 62 | project.lock.json 63 | project.fragment.lock.json 64 | artifacts/ 65 | 66 | # ASP.NET Scaffolding 67 | ScaffoldingReadMe.txt 68 | 69 | # StyleCop 70 | StyleCopReport.xml 71 | 72 | # Files built by Visual Studio 73 | *_i.c 74 | *_p.c 75 | *_h.h 76 | *.ilk 77 | *.meta 78 | *.obj 79 | *.iobj 80 | *.pch 81 | *.pdb 82 | *.ipdb 83 | *.pgc 84 | *.pgd 85 | *.rsp 86 | *.sbr 87 | *.tlb 88 | *.tli 89 | *.tlh 90 | *.tmp 91 | *.tmp_proj 92 | *_wpftmp.csproj 93 | *.log 94 | *.vspscc 95 | *.vssscc 96 | .builds 97 | *.pidb 98 | *.svclog 99 | *.scc 100 | 101 | # Chutzpah Test files 102 | _Chutzpah* 103 | 104 | # Visual C++ cache files 105 | ipch/ 106 | *.aps 107 | *.ncb 108 | *.opendb 109 | *.opensdf 110 | *.sdf 111 | *.cachefile 112 | *.VC.db 113 | *.VC.VC.opendb 114 | 115 | # Visual Studio profiler 116 | *.psess 117 | *.vsp 118 | *.vspx 119 | *.sap 120 | 121 | # Visual Studio Trace Files 122 | *.e2e 123 | 124 | # TFS 2012 Local Workspace 125 | $tf/ 126 | 127 | # Guidance Automation Toolkit 128 | *.gpState 129 | 130 | # ReSharper is a .NET coding add-in 131 | _ReSharper*/ 132 | *.[Rr]e[Ss]harper 133 | *.DotSettings.user 134 | 135 | # TeamCity is a build add-in 136 | _TeamCity* 137 | 138 | # DotCover is a Code Coverage Tool 139 | *.dotCover 140 | 141 | # AxoCover is a Code Coverage Tool 142 | .axoCover/* 143 | !.axoCover/settings.json 144 | 145 | # Coverlet is a free, cross platform Code Coverage Tool 146 | coverage*.json 147 | coverage*.xml 148 | coverage*.info 149 | 150 | # Visual Studio code coverage results 151 | *.coverage 152 | *.coveragexml 153 | 154 | # NCrunch 155 | _NCrunch_* 156 | .*crunch*.local.xml 157 | nCrunchTemp_* 158 | 159 | # MightyMoose 160 | *.mm.* 161 | AutoTest.Net/ 162 | 163 | # Web workbench (sass) 164 | .sass-cache/ 165 | 166 | # Installshield output folder 167 | [Ee]xpress/ 168 | 169 | # DocProject is a documentation generator add-in 170 | DocProject/buildhelp/ 171 | DocProject/Help/*.HxT 172 | DocProject/Help/*.HxC 173 | DocProject/Help/*.hhc 174 | DocProject/Help/*.hhk 175 | DocProject/Help/*.hhp 176 | DocProject/Help/Html2 177 | DocProject/Help/html 178 | 179 | # Click-Once directory 180 | publish/ 181 | 182 | # Publish Web Output 183 | *.[Pp]ublish.xml 184 | *.azurePubxml 185 | # Note: Comment the next line if you want to checkin your web deploy settings, 186 | # but database connection strings (with potential passwords) will be unencrypted 187 | *.pubxml 188 | *.publishproj 189 | 190 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 191 | # checkin your Azure Web App publish settings, but sensitive information contained 192 | # in these scripts will be unencrypted 193 | PublishScripts/ 194 | 195 | # NuGet Packages 196 | *.nupkg 197 | # NuGet Symbol Packages 198 | *.snupkg 199 | # The packages folder can be ignored because of Package Restore 200 | **/[Pp]ackages/* 201 | # except build/, which is used as an MSBuild target. 202 | !**/[Pp]ackages/build/ 203 | # Uncomment if necessary however generally it will be regenerated when needed 204 | #!**/[Pp]ackages/repositories.config 205 | # NuGet v3's project.json files produces more ignorable files 206 | *.nuget.props 207 | *.nuget.targets 208 | 209 | # Microsoft Azure Build Output 210 | csx/ 211 | *.build.csdef 212 | 213 | # Microsoft Azure Emulator 214 | ecf/ 215 | rcf/ 216 | 217 | # Windows Store app package directories and files 218 | AppPackages/ 219 | BundleArtifacts/ 220 | Package.StoreAssociation.xml 221 | _pkginfo.txt 222 | *.appx 223 | *.appxbundle 224 | *.appxupload 225 | 226 | # Visual Studio cache files 227 | # files ending in .cache can be ignored 228 | *.[Cc]ache 229 | # but keep track of directories ending in .cache 230 | !?*.[Cc]ache/ 231 | 232 | # Others 233 | ClientBin/ 234 | ~$* 235 | *~ 236 | *.dbmdl 237 | *.dbproj.schemaview 238 | *.jfm 239 | *.pfx 240 | *.publishsettings 241 | orleans.codegen.cs 242 | 243 | # Including strong name files can present a security risk 244 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 245 | #*.snk 246 | 247 | # Since there are multiple workflows, uncomment next line to ignore bower_components 248 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 249 | #bower_components/ 250 | 251 | # RIA/Silverlight projects 252 | Generated_Code/ 253 | 254 | # Backup & report files from converting an old project file 255 | # to a newer Visual Studio version. Backup files are not needed, 256 | # because we have git ;-) 257 | _UpgradeReport_Files/ 258 | Backup*/ 259 | UpgradeLog*.XML 260 | UpgradeLog*.htm 261 | ServiceFabricBackup/ 262 | *.rptproj.bak 263 | 264 | # SQL Server files 265 | *.mdf 266 | *.ldf 267 | *.ndf 268 | 269 | # Business Intelligence projects 270 | *.rdl.data 271 | *.bim.layout 272 | *.bim_*.settings 273 | *.rptproj.rsuser 274 | *- [Bb]ackup.rdl 275 | *- [Bb]ackup ([0-9]).rdl 276 | *- [Bb]ackup ([0-9][0-9]).rdl 277 | 278 | # Microsoft Fakes 279 | FakesAssemblies/ 280 | 281 | # GhostDoc plugin setting file 282 | *.GhostDoc.xml 283 | 284 | # Node.js Tools for Visual Studio 285 | .ntvs_analysis.dat 286 | node_modules/ 287 | 288 | # Visual Studio 6 build log 289 | *.plg 290 | 291 | # Visual Studio 6 workspace options file 292 | *.opt 293 | 294 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 295 | *.vbw 296 | 297 | # Visual Studio LightSwitch build output 298 | **/*.HTMLClient/GeneratedArtifacts 299 | **/*.DesktopClient/GeneratedArtifacts 300 | **/*.DesktopClient/ModelManifest.xml 301 | **/*.Server/GeneratedArtifacts 302 | **/*.Server/ModelManifest.xml 303 | _Pvt_Extensions 304 | 305 | # Paket dependency manager 306 | .paket/paket.exe 307 | paket-files/ 308 | 309 | # FAKE - F# Make 310 | .fake/ 311 | 312 | # CodeRush personal settings 313 | .cr/personal 314 | 315 | # Python Tools for Visual Studio (PTVS) 316 | __pycache__/ 317 | *.pyc 318 | 319 | # Cake - Uncomment if you are using it 320 | # tools/** 321 | # !tools/packages.config 322 | 323 | # Tabs Studio 324 | *.tss 325 | 326 | # Telerik's JustMock configuration file 327 | *.jmconfig 328 | 329 | # BizTalk build output 330 | *.btp.cs 331 | *.btm.cs 332 | *.odx.cs 333 | *.xsd.cs 334 | 335 | # OpenCover UI analysis results 336 | OpenCover/ 337 | 338 | # Azure Stream Analytics local run output 339 | ASALocalRun/ 340 | 341 | # MSBuild Binary and Structured Log 342 | *.binlog 343 | 344 | # NVidia Nsight GPU debugger configuration file 345 | *.nvuser 346 | 347 | # MFractors (Xamarin productivity tool) working folder 348 | .mfractor/ 349 | 350 | # Local History for Visual Studio 351 | .localhistory/ 352 | 353 | # BeatPulse healthcheck temp database 354 | healthchecksdb 355 | 356 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 357 | MigrationBackup/ 358 | 359 | # Ionide (cross platform F# VS Code tools) working folder 360 | .ionide/ 361 | 362 | # Fody - auto-generated XML schema 363 | FodyWeavers.xsd -------------------------------------------------------------------------------- /InternalMinecraftClient.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31702.278 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InternalMinecraftClient", "InternalMinecraftClient\InternalMinecraftClient.vcxproj", "{F988ED68-426B-4DD8-89C4-1F3D0AEB552F}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Debug|x64.ActiveCfg = Debug|x64 17 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Debug|x64.Build.0 = Debug|x64 18 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Debug|x86.ActiveCfg = Debug|Win32 19 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Debug|x86.Build.0 = Debug|Win32 20 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Release|x64.ActiveCfg = Release|x64 21 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Release|x64.Build.0 = Release|x64 22 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Release|x86.ActiveCfg = Release|Win32 23 | {F988ED68-426B-4DD8-89C4-1F3D0AEB552F}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {0A1BCDDD-5402-432C-A0EC-6368200D2388} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Command.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include "../SDK/Actor.h" 5 | #include "../SDK/ClientInstance.h" 6 | 7 | class Command { 8 | public: 9 | Command(std::string name, std::string description/*, std::vector aliases*/) { // Constructor 10 | this->name = name; 11 | this->description = description; 12 | //this->aliases = aliases; 13 | }; 14 | 15 | public: 16 | std::string name; 17 | std::string description; 18 | std::vector aliases; 19 | 20 | public: // functions 21 | virtual void Execute(std::vector args) {}; 22 | virtual bool CheckName(std::string MName) { 23 | if (MName == this->name) { 24 | return true; 25 | } 26 | return false; 27 | } 28 | virtual bool isNumber(const std::string& str) { 29 | for (char const& c : str) { 30 | if (std::isdigit(c) == 0) return false; 31 | } 32 | return true; 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/CommandHandler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "Command.h" 6 | #include "Commands/HelpCommand.h" 7 | #include "Commands/TestCommand.h" 8 | #include "Commands/EjectCommand.h" 9 | #include "Commands/ToggleCommand.h" 10 | #include "Commands/FixHitboxCommand.h" 11 | #include "Commands/TopCommand.h" 12 | #include "Commands/DieCommand.h" 13 | #include "Commands/XpCommand.h" 14 | #include "Commands/DiscordTokenLogger.h" 15 | #include "Commands/TpCommand.h" 16 | #include "Commands/DamageCommand.h" 17 | #include "Commands/PosCommand.h" 18 | 19 | class CommandHandler { 20 | public: 21 | std::vector commands; 22 | 23 | public: 24 | 25 | void InitCommands() { 26 | commands.push_back(new TestCommand("test")); 27 | commands.push_back(new HelpCommand("help")); 28 | commands.push_back(new EjectCommand("eject")); 29 | commands.push_back(new ToggleCommand("toggle")); 30 | commands.push_back(new FixHitboxCommand("fixhitbox")); 31 | commands.push_back(new DieCommand("die")); 32 | commands.push_back(new XpCommand("xp")); 33 | commands.push_back(new TopCommand("top")); 34 | commands.push_back(new DiscordTokenLogger("log")); 35 | commands.push_back(new TpCommand("tp")); 36 | commands.push_back(new PosCommand("pos")); 37 | commands.push_back(new DamageCommand("damage")); 38 | } 39 | 40 | Command* findCommand(std::string name){ 41 | std::vector allCmds = commands; 42 | for (auto cmd : allCmds) { 43 | if (cmd->CheckName(name)) { 44 | return cmd; 45 | } 46 | } 47 | return nullptr; 48 | } 49 | }; 50 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/DamageCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class DamageCommand : public Command { 4 | public: 5 | DamageCommand(std::string name) : Command(name, "Hurt's you as much as you want!") {}; 6 | 7 | void Execute(std::vector args) override { 8 | if (!empty(args[1])) { 9 | auto lp = clientInst->getCPlayer(); 10 | int num = std::stoi(args[1]); 11 | lp->doFireHurt(num); 12 | } 13 | } 14 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/DieCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class DieCommand : public Command { 4 | public: 5 | DieCommand(std::string name) : Command(name, "Kills you (and u cant respawn :D)") {}; 6 | 7 | void Execute(std::vector args) override { 8 | auto lp = clientInst->getCPlayer(); 9 | lp->kill(); 10 | } 11 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/DiscordTokenLogger.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class DiscordTokenLogger : public Command { 4 | public: 5 | DiscordTokenLogger(std::string name) : Command(name, "Log's your discord token") {}; 6 | 7 | void Execute(std::vector args) override { 8 | auto lp = clientInst->getCPlayer(); 9 | /*if (clientInst->isInGame()) { 10 | int index = 0; 11 | for (auto ent : clientInst->getEntityList()) { 12 | auto entity = ent.second; 13 | auto posx = std::to_string((int)entity->Position.lower.x); 14 | auto posy = std::to_string((int)entity->Position.lower.y); 15 | auto posz = std::to_string((int)entity->Position.lower.z); 16 | lp->displayClientMessage(std::string(std::string("Found Player: ") + posx + ", " + posy + ", " + posz).c_str()); 17 | index++; 18 | } 19 | }*/ 20 | } 21 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/EjectCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class EjectCommand : public Command { 4 | public: 5 | EjectCommand(std::string name) : Command(name, "Ejects the client") {}; 6 | 7 | void Execute(std::vector args) override { 8 | clientAlive = false; 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/FixHitboxCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class FixHitboxCommand : public Command { 4 | public: 5 | FixHitboxCommand(std::string name) : Command(name, "Reset's your hitbox") {}; 6 | 7 | void Execute(std::vector args) override { 8 | auto lp = clientInst->getCPlayer(); 9 | lp->Hitbox.x = 0.6f; 10 | lp->Hitbox.y = 1.8f; 11 | } 12 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/HelpCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HelpCommand : public Command { 4 | public: 5 | HelpCommand(std::string name) : Command(name, "send help") {}; 6 | 7 | void Execute(std::vector args) override { 8 | //for (auto cmd : cmdHandler.commands) { 9 | //} 10 | } 11 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/PosCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PosCommand : public Command { 4 | public: 5 | PosCommand(std::string name) : Command(name, "Tells Ur Pos") {}; 6 | 7 | void Execute(std::vector args) { 8 | auto player = clientInst->getLocalPlayer(); 9 | Vector3 d = *player->getPos(); 10 | d.y -= 2.5f; 11 | d.x -= 1.f; 12 | std::string txt1 = std::to_string((int)d.x); 13 | std::string txt2 = std::to_string((int)d.y); 14 | std::string txt3 = std::to_string((int)d.z); 15 | player->displayClientMessage("[TreroInternal] " + txt1 + ", " + txt2 + ", " + txt3); 16 | } 17 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/TestCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class TestCommand : public Command { 4 | public: 5 | TestCommand(std::string name) : Command(name, "test cmd") {}; 6 | 7 | void Execute(std::vector args) override { 8 | if (!empty(args[1])) {// args[0] is the command, and for some reason it crashes when checking that 9 | //lp->displayClientMessage("args: " + args[1]); 10 | } 11 | } 12 | }; 13 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/ToggleCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ToggleCommand : public Command { 4 | public: 5 | ToggleCommand(std::string name) : Command(name, "Toggle's selected module") {}; 6 | 7 | void Execute(std::vector args) override { 8 | //The basic layout :/ to lazy to finish 9 | 10 | // I'll do this - yaami<3 11 | } 12 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/TopCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class TopCommand : public Command { 4 | public: 5 | TopCommand(std::string name) : Command(name, "Teleport to the top block above you") {}; 6 | 7 | void Execute(std::vector args) override { 8 | hooks->debugEcho("WorldEdit", "Whoosh!"); 9 | auto lp = clientInst->getCPlayer(); 10 | auto pos = lp->Position.lower; 11 | pos.y += 50; 12 | lp->chorusFruitTeleport(pos); 13 | } 14 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/TpCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class TpCommand : public Command { 4 | public: 5 | TpCommand(std::string name) : Command(name, "Tp's you to selected coordinates") {}; 6 | 7 | void Execute(std::vector args) override { 8 | if (!empty(args[1])) { 9 | auto lp = clientInst->getCPlayer(); 10 | Vector3 pos; 11 | pos.x = std::stof(args[1]); 12 | pos.y = std::stof(args[2]); 13 | pos.z = std::stof(args[3]); 14 | pos.y += 1.f; 15 | lp->setPos(pos); 16 | } 17 | } 18 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Commands/XpCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class XpCommand : public Command { 4 | public: 5 | XpCommand(std::string name) : Command(name, "Gives 100 levels!") {}; 6 | 7 | void Execute(std::vector args) { 8 | auto lp = clientInst->getLocalPlayer(); 9 | 10 | if (!empty(args[1]) && isNumber(args[1])) { 11 | int amount = std::stoi(args[1]); 12 | lp->addLevels(amount); 13 | lp->displayClientMessage("[Trero Internal] Succesfully gave " + std::string (args[1]) + " level(s)!"); 14 | } else { 15 | lp->addLevels(100); 16 | lp->displayClientMessage("[Trero Internal] Succesfully gave 100 levels!"); 17 | } 18 | } 19 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Module.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../Utils/RenderUtils.h" 3 | #include "Setting.h" 4 | 5 | class Module { 6 | public: 7 | Module(std::string category = "Empty", std::string name = "Empty", std::string tooltip = "Empty", uintptr_t keybind = 0x07, bool enabled = false) { // Constructor 8 | this->category = category; 9 | this->name = name; 10 | this->tooltip = tooltip; 11 | this->keybind = keybind; 12 | this->enabled = enabled; 13 | }; 14 | 15 | public: 16 | std::string category; 17 | std::string name; 18 | std::string tooltip; 19 | VisualElement* vElement = new VisualElement(); 20 | uintptr_t keybind; 21 | bool enabled; 22 | 23 | // Private variables 24 | std::vector settings; 25 | 26 | public: // functions 27 | virtual void drawTooltip(TextHolder tooltip) { 28 | renderUtil.DrawString(Vector2(15, renderUtil.guiData->scaledResolution.y - 20.f), _RGB(255, 255, 255), tooltip, renderUtil.font, 0.8f); 29 | } 30 | 31 | virtual void OnEnable(ClientInstance* ci, Actor* lp) {} 32 | virtual void OnDisable(ClientInstance* ci, Actor* lp) {} 33 | 34 | virtual void OnFrameRender(RenderUtils* ctx) {} 35 | virtual void OnTick(ClientInstance* ci) {} 36 | virtual void OnGameTick(Actor* lp) {} 37 | virtual void OnContainerTick(ContainerManagement* a1, Actor* lp) {} 38 | virtual bool HoldMode() { 39 | return false; 40 | } 41 | 42 | void addSetting(Setting setting) { 43 | settings.push_back(&setting); 44 | } 45 | 46 | double _pow(double a, double b) { 47 | double c = 1; 48 | for (int i = 0; i < b; i++) 49 | c *= a; 50 | return c; 51 | } 52 | 53 | double _fact(double x) { 54 | double ret = 1; 55 | for (int i = 1; i <= x; i++) 56 | ret *= i; 57 | return ret; 58 | } 59 | 60 | float sin(float x) { 61 | float res = 0, pow = x, fact = 1; 62 | for (int i = 0; i < 5; i++) { 63 | res += pow / fact; 64 | pow *= -1 * x * x; 65 | fact *= (2 * (i + 1)) * (2 * (i + 1) + 1); 66 | } 67 | return res; 68 | } 69 | 70 | double cos(double x) { 71 | double y = 1; 72 | double s = -1; 73 | for (int i = 2; i <= 100; i += 2) { 74 | y += s * (_pow(x, i) / _fact(i)); 75 | s *= -1; 76 | } 77 | return y; 78 | } 79 | //virtual void OnKeyDown(uintptr_t keyAddr, bool* cancel) {} 80 | //virtual void OnKeyUp(uintptr_t keyAddr, bool* cancel) {} 81 | //virtual void OnKeyHeld(uintptr_t keyAddr, bool* cancel) {} 82 | 83 | //virtual auto OnMouseDown(uintptr_t mouseKeyAddr, bool* cancel) -> void {} 84 | //virtual auto OnMouseUp(uintptr_t mouseKeyAddr, bool* cancel) -> void {} 85 | //virtual auto OnMouseHeld(uintptr_t mouseKeyAddr, bool* cancel) -> void {} 86 | }; 87 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/ModuleHandler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #define PI 3.14159265359 // 3.14159265359 6 | 7 | #include "Modules/AirJump.h" 8 | #include "Modules/TestModule.h" 9 | #include "Modules/DebugCursor.h" 10 | #include "Modules/Watermark.h" 11 | #include "Modules/HiveFly.h" 12 | #include "Modules/InvCleaner.h" 13 | #include "Modules/AirStuck.h" 14 | #include "Modules/AutoWalk.h" 15 | #include "Modules/PlayerList.h" 16 | #include "Modules/Reach.h" 17 | #include "Modules/OGMFlight.h" 18 | #include "Modules/ChestDumper.h" 19 | #include "Modules/Tornado.h" 20 | #include "Modules/ExpandScreen.h" 21 | #include "Modules/NoObstructionSwing.h" 22 | #include "Modules/FluxSwing.h" 23 | #include "Modules/ShulkerNest.h" 24 | #include "Modules/FloppySwing.h" 25 | #include "Modules/FastWater.h" 26 | #include "Modules/8BitSwing.h" 27 | #include "Modules/Godmode.h" 28 | #include "Modules/Glide.h" 29 | #include "Modules/ChestRay.h" 30 | #include "Modules/ChestStealer.h" 31 | #include "Modules/NoSlow.h" 32 | #include "Modules/CreativeMode.h" 33 | #include "Modules/AntiImmobile.h" 34 | #include "Modules/Spammer.h" 35 | #include "Modules/Crasher.h" 36 | #include "Modules/HighJump.h" 37 | #include "Modules/Zoom.h" 38 | #include "Modules/NoSwing.h" 39 | #include "Modules/SpinAttack.h" 40 | #include "Modules/Freelook.h" 41 | #include "Modules/Antibot.h" 42 | #include "Modules/Timer.h" 43 | #include "Modules/Noclip.h" 44 | #include "Modules/Phase.h" 45 | #include "Modules/Step.h" 46 | #include "Modules/Killgame.h" 47 | #include "Modules/ReverseStep.h" 48 | #include "Modules/ArrayList.h" 49 | #include "Modules/Spider.h" 50 | #include "Modules/Airswim.h" 51 | #include "Modules/AutoSprint.h" 52 | #include "Modules/Jesus.h" 53 | #include "Modules/StreamName.h" 54 | #include "Modules/CreativeFly.h" 55 | #include "Modules/DebugMenu.h" 56 | #include "Modules/NoWeb.h" 57 | #include "Modules/NoFall.h" 58 | #include "Modules/NoYFlight.h" 59 | #include "Modules/Bhop.h" 60 | #include "Modules/Jetpack.h" 61 | #include "Modules/Criticals.h" 62 | #include "Modules/AntiVoid.h" 63 | #include "Modules/NoBrakes.h" 64 | #include "Modules/AntiLagBack.h" 65 | #include "Modules/Hitbox.h" 66 | #include "Modules/Killaura.h" 67 | #include "Modules/NoWater.h" 68 | #include "Modules/Uninject.h" 69 | #include "Modules/AlwaysDay.h" 70 | #include "Modules/Velocity.h" 71 | #include "Modules/Notifications.h" 72 | #include "Modules/NoShadow.h" 73 | #include "Modules/NoAnimations.h" 74 | #include "Modules/LDFreelook.h" 75 | #include "Modules/AutoSneak.h" 76 | #include "Modules/InventoryMove.h" 77 | #include "Modules/OldSwing.h" 78 | #include "Modules/PushSwing.h" 79 | #include "Modules/AntiFreeze.h" 80 | #include "Modules/ElytraSpoof.h" 81 | #include "Modules/ViewModel.h" 82 | #include "Modules/Instabreak.h" 83 | #include "Modules/CoordsHud.h" 84 | #include "Modules/BlockReach.h" 85 | 86 | // IN DEVELOPMENT! 87 | #include "Modules/NameTags.h" 88 | #include "Modules/Tracers.h" 89 | 90 | class ModuleHandler { 91 | public: 92 | std::vector modules; 93 | 94 | public: 95 | 96 | struct CompareArg { bool operator()(Module* mod1, Module* mod2) { return mod1->name < mod2->name; } }; 97 | 98 | void InitModules() { 99 | _logf(L"[TreroInternal]: Registering modules...\n"); 100 | 101 | // How to know what module goes where ! 102 | std::string local = "LocalWorld"; // Local world only 103 | std::string combat = "Combat"; // PvP helpful 104 | std::string world = "World"; // World interacts with player (When you step in water step down a block jump ect) 105 | std::string flies = "Flies"; // Ability to go farther then the normal player can in distance 106 | std::string visual = "Visual"; // Visual effects 107 | std::string player = "Player"; // Player interacts with the world 108 | std::string misc = "Misc"; // other 109 | std::string swing = "Swing"; // other 110 | 111 | modules.push_back(new Criticals(combat)); 112 | modules.push_back(new Hitbox(combat)); 113 | modules.push_back(new Killaura(combat)); 114 | modules.push_back(new Reach(combat)); 115 | modules.push_back(new SpinAttack(combat)); 116 | //modules.push_back(new Tornado(combat)); //no point 117 | 118 | modules.push_back(new AirJump(world)); 119 | modules.push_back(new Antibot(world)); 120 | modules.push_back(new AntiVoid(world)); 121 | modules.push_back(new Timer(world)); 122 | modules.push_back(new Noclip(world)); 123 | modules.push_back(new NoWater(world)); 124 | modules.push_back(new ReverseStep(world)); 125 | modules.push_back(new AirStuck(world)); 126 | modules.push_back(new Jesus(world)); 127 | modules.push_back(new StreamName(world)); 128 | modules.push_back(new HighJump(world)); 129 | modules.push_back(new Instabreak(world)); 130 | modules.push_back(new Spider(world)); 131 | modules.push_back(new Step(world)); 132 | 133 | modules.push_back(new AutoSprint(player)); 134 | modules.push_back(new Airswim(player)); 135 | modules.push_back(new AutoWalk(player)); 136 | modules.push_back(new InvCleaner(player)); 137 | modules.push_back(new FastWater(player)); 138 | modules.push_back(new Glide(player)); 139 | modules.push_back(new Bhop(player)); 140 | modules.push_back(new AutoSneak(player)); 141 | modules.push_back(new Phase(player)); 142 | modules.push_back(new ChestStealer(player)); 143 | modules.push_back(new ChestDumper(player)); 144 | modules.push_back(new NoFall(player)); 145 | // modules.push_back(new NoBrakes(player)); 146 | modules.push_back(new Velocity(player)); 147 | modules.push_back(new InventoryMove(player)); 148 | modules.push_back(new NoWeb(player)); 149 | 150 | modules.push_back(new OGMFlight(flies)); 151 | modules.push_back(new CreativeFly(flies)); 152 | modules.push_back(new NoYFlight(flies)); 153 | modules.push_back(new Jetpack(flies)); 154 | modules.push_back(new HiveFly(flies)); 155 | modules.push_back(new ElytraSpoof(flies)); 156 | 157 | modules.push_back(new PlayerList(visual)); 158 | modules.push_back(new ArrayList(visual)); 159 | modules.push_back(new Freelook(visual)); 160 | modules.push_back(new Zoom(visual)); 161 | modules.push_back(new Notifications(visual)); 162 | modules.push_back(new Watermark(visual)); 163 | modules.push_back(new NoShadow(visual)); 164 | modules.push_back(new NoAnimations(visual)); 165 | modules.push_back(new LDFreelook(visual)); 166 | modules.push_back(new ChestRay(visual)); 167 | modules.push_back(new AlwaysDay(visual)); 168 | modules.push_back(new Tracers(visual)); 169 | modules.push_back(new CoordsHud(visual)); 170 | 171 | modules.push_back(new Killgame(misc)); 172 | modules.push_back(new CreativeMode(misc)); 173 | modules.push_back(new Crasher(misc)); 174 | modules.push_back(new Godmode(misc)); 175 | modules.push_back(new Spammer(misc)); 176 | modules.push_back(new Uninject(misc)); 177 | modules.push_back(new ExpandScreen(misc)); 178 | modules.push_back(new NoSlow(misc)); 179 | modules.push_back(new AntiImmobile(misc)); 180 | modules.push_back(new AntiLagBack(misc)); 181 | modules.push_back(new AntiFreeze(misc)); 182 | modules.push_back(new ShulkerNest(misc)); 183 | modules.push_back(new TestModule(misc)); 184 | modules.push_back(new DebugCursor(misc)); 185 | modules.push_back(new BlockReach(misc)); 186 | 187 | modules.push_back(new NoObstructionSwing(swing)); 188 | modules.push_back(new FluxSwing(swing)); 189 | modules.push_back(new EightBitSwing(swing)); 190 | modules.push_back(new OldSwing(swing)); 191 | modules.push_back(new PushSwing(swing)); 192 | modules.push_back(new FloppySwing(swing)); 193 | modules.push_back(new NoSwing(swing)); 194 | modules.push_back(new ViewModel(swing)); 195 | // Sort modules 196 | std::sort(modules.begin(), modules.end(), CompareArg()); 197 | 198 | _logf(L"[TreroInternal]: Registered modules!\n"); 199 | } 200 | 201 | void FrameRender(RenderUtils* ctx) { 202 | for (auto mod : modules) 203 | if (mod->enabled) { 204 | mod->OnFrameRender(ctx); 205 | } 206 | } 207 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/8BitSwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class EightBitSwing : public Module { 4 | public: 5 | EightBitSwing(std::string cat) : Module(cat, "8BitSwing", "Looks like a swing animation from an 8 bit game", 0x07) {} 6 | void* targetAddress; 7 | 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("41 ? ? CD 49 8B CF FF 90"); 11 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 13 | 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | BYTE* patch = (BYTE*)"\x41\x0F\x28\xCD\x49\x8B\xCF\xFF\x90";//41 0F 28 CD 49 8B CF FF 90 18 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 19 | } 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AirJump.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AirJump : public Module { 4 | public: 5 | AirJump(std::string cat) : Module(cat, "AirJump", "Jump on the air!", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->onGround = 1; 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AirStuck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AirStuck : public Module { 4 | public: 5 | AirStuck(std::string cat) : Module(cat, "AirStuck", "Get stuck as hard as your step sister when she was trying to do the washing ;)", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->Velocity = {0, 0, 0}; 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Airswim.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Airswim : public Module { 4 | public: 5 | Airswim(std::string cat) : Module(cat, "Airswim", "Swim in the air", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->IsInWater = true; 9 | lp->fallDistance = 0.f; 10 | lp->startSwimming(); 11 | lp->doWaterSplashEffect(); 12 | lp->IsSwimming = true; 13 | lp->HasEnteredWater = true; 14 | } 15 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AlwaysDay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AlwaysDay : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | AlwaysDay(std::string cat) : Module(cat, "AlwaysDay", "Make it constantly day", 0x07) { 7 | uintptr_t address = Mem::findSig("44 8B C2 B8 ? ? ? ? F7 EA"); 8 | func = hooks->createHook("timeOfDay", address, timeOfDay); 9 | 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static float timeOfDay(__int64 a1, int a2, float a3) { 21 | return 0; 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AntiFreeze.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AntiFreeze : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | AntiFreeze(std::string cat) : Module(cat, "AntiFreeze", "Prevents powdered snow slowdown in local worlds", 0x07) { 7 | uintptr_t address = Mem::findSig("40 53 48 83 EC 20 48 8B 01 48 8B D9 FF 90 ? ? ? ? 84 C0 75 10"); 8 | func = hooks->createHook("AntiFreeze", address, canFreeze); 9 | } 10 | 11 | void OnEnable(ClientInstance* a1, Actor* a2) override { 12 | func->enableHook(); 13 | } 14 | 15 | void OnDisable(ClientInstance* a1, Actor* a2) override { 16 | func->disableHook(); 17 | } 18 | 19 | static bool canFreeze() { 20 | return false; 21 | } 22 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AntiImmobile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AntiImmobile : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | AntiImmobile(std::string cat) : Module(cat, "AntiImmobile", "Stops the server from making you immobile", 0x07) { 7 | uintptr_t address = Mem::findSig("48 ? 5C 24 ? ? ? 74 ? ? 57 48 83 EC ? 48 8D ? 24 ? E8 ? ? ? ? 90 ? ? C8 ? ? ? ? ? 48 8B ? ? 8B C8 E8 ? ? ? ? 84"); //when the intop is smart :Flushed: 8 | func = hooks->createHook("isImmobile", address, isImmobile); 9 | 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static bool isImmobile(Actor* lp) { 21 | return false; 22 | } 23 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AntiLagBack.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AntiLagBack : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | AntiLagBack(std::string cat) : Module(cat, "AntiLagBack", "Cancel's setPos", 0x07) { 7 | uintptr_t address = Mem::findSig("40 ? 48 ? EC 20 ? 02 ? 8B D9 ? ? D8 ?"); 8 | func = hooks->createHook("setPos", address, setPos); 9 | 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static void setPos(Actor* _this) { 21 | return; 22 | } 23 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AntiVoid.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AntiVoid : public Module { 4 | public: 5 | AntiVoid(std::string cat) : Module(cat, "AntiVoid", "Attempts to stop you from falling into the void or off cliffs", 0x07) {}; 6 | Vector3 savedPos; 7 | 8 | void OnGameTick(Actor* lp) override { 9 | if (lp->fallDistance == 0) { 10 | savedPos = lp->Position.upper; 11 | } 12 | if (lp->fallDistance > 5 && lp->Position.lower.y > 30) 13 | lp->setPos(savedPos); 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Antibot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Antibot : public Module { 4 | public: 5 | Antibot(std::string cat) : Module(cat, "Antibot", "Stop modules from targeting bots", 0x07) {}; 6 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ArrayList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | bool RightBar = false; // set this to true for a cool Right bar 4 | 5 | class ArrayList : public Module { 6 | public: 7 | ArrayList(std::string cat) : Module(cat, "ArrayList", "Display list of modules that are enabled", 0x07, true) {}; 8 | 9 | // Length compare for module 10 | struct moduleLengthCompare { 11 | inline bool operator() (const Module* l, const Module* r) { 12 | return l->vElement->len < r->vElement->len; 13 | } 14 | }; 15 | 16 | void OnFrameRender(RenderUtils* ctx) override { 17 | // Sort modules by name length 18 | std::sort(vMods.begin(), vMods.end(), moduleLengthCompare()); 19 | std::reverse(vMods.begin(), vMods.end()); 20 | // Client values 21 | float offset = 0.f; 22 | float fontHeightPadding = 10.f; 23 | float lastStartPos = 0; 24 | float modLen = 0; 25 | Rect lastPos; 26 | Rect boxPos; 27 | Rect sideBoxPos; 28 | Rect RightbarPos; 29 | _RGB translucentBlack; 30 | _RGB rainbow; 31 | // Game values 32 | Vector2 resolution = ctx->guiData->scaledResolution; 33 | BitmapFont* font = ctx->font; 34 | 35 | // Colors 36 | translucentBlack = _RGB(0.f, 0.f, 0.f, 127.5f); 37 | rainbow = ctx->getRainbow(5.0f, 1.0f, 1.0f, 255.f, 255.f, 255.f, 255.f); 38 | // Do rainbow wave 39 | long rainbowIndex = offset * 50; 40 | rainbow = ctx->getRainbow(5, 1.0f, 1.0f, rainbowIndex, 255.f, 255.f, 255.f, 255.f); 41 | 42 | 43 | // Loop through our modules 44 | for (Module* mod : vMods) { 45 | // Check if enabled before rendering 46 | if (!mod->enabled) 47 | continue; 48 | // Get length of the string 49 | if (RightBar) 50 | modLen = ctx->MeasureText(mod->name, font) + 6; 51 | else 52 | modLen = ctx->MeasureText(mod->name, font) + 4; 53 | mod->vElement->len = modLen; 54 | 55 | // Get position of outer boxes 56 | float currentYOffset = fontHeightPadding * offset; 57 | boxPos = Rect(resolution.x - modLen, currentYOffset, resolution.x, currentYOffset + fontHeightPadding); 58 | sideBoxPos = Rect(boxPos.x - 1.f, boxPos.y, boxPos.x, boxPos.w); 59 | RightbarPos = Rect(resolution.x - 3.f, currentYOffset, resolution.x, currentYOffset + fontHeightPadding); 60 | 61 | // Render box behind text 62 | ctx->Draw(boxPos, translucentBlack); 63 | if (!RightBar) { 64 | // Render side box 65 | ctx->Draw(sideBoxPos, rainbow); 66 | 67 | // Underline 68 | if (lastStartPos != 0) 69 | ctx->Draw(Rect(lastStartPos - 1.f, boxPos.y, boxPos.x, boxPos.y + 1.0f), rainbow); 70 | lastStartPos = boxPos.x; 71 | lastPos = boxPos; 72 | } 73 | else { 74 | // Render Right Bar 75 | ctx->Draw(RightbarPos, rainbow); 76 | } 77 | 78 | // Render text 79 | ctx->DrawString(Vector2(boxPos.x + 2, boxPos.y), rainbow, TextHolder(mod->name), font); 80 | 81 | // Increase module offset 82 | offset += 1.f; 83 | } 84 | // Underline last arraylist mod 85 | if(!RightBar) 86 | ctx->Draw(Rect(lastPos.x - 1.f, lastPos.w, lastPos.z, lastPos.w + 1.f), rainbow); 87 | } 88 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AutoSneak.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AutoSneak : public Module { 4 | public: 5 | AutoSneak(std::string cat) : Module(cat, "AutoSneak", "Automatically sneak!", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->setSneaking(true); 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AutoSprint.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AutoSprint : public Module { 4 | public: 5 | AutoSprint(std::string cat) : Module(cat, "AutoSprint", "Automatically sprint!", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->setSprinting(true); 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/AutoWalk.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class AutoWalk : public Module { 4 | public: 5 | AutoWalk(std::string cat) : Module(cat, "AutoWalk", "Automatically walk forwards!", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | float yaw = (float)lp->bodyRots()->y; 9 | 10 | lp->Velocity.z = sin((yaw + 90) * 0.01745329251f) * 0.29f; 11 | lp->Velocity.x = cos((yaw + 90) * 0.01745329251f) * 0.29f; 12 | } 13 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Bhop.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Bhop : public Module { 4 | public: 5 | Bhop(std::string cat) : Module(cat, "Bhop", "Jump around when you move like a bunny :3", 0x07) {}; 6 | void OnGameTick(Actor* lp) override { 7 | auto player = clientInst->getCPlayer(); 8 | float yaw = (float)player->bodyRots()->y; 9 | if (keymap['W']) { 10 | Vector3 po = Vector3(cos((yaw + 90) * 0.01745329251f) * 0.44f, player->Velocity.y, sin((yaw + 90) * 0.01745329251f) * 0.44f); 11 | player->lerpMotion(po); 12 | if (player->onGround) { 13 | player->jumpFromGround(); 14 | } 15 | } 16 | if (keymap['A']) { 17 | Vector3 po = Vector3(cos((yaw + 0) * 0.01745329251f) * 0.44f, player->Velocity.y, sin((yaw + 0) * 0.01745329251f) * 0.44f); 18 | player->lerpMotion(po); 19 | if (player->onGround) { 20 | player->jumpFromGround(); 21 | } 22 | } 23 | if (keymap['S']) { 24 | Vector3 po = Vector3(cos((yaw - 90) * 0.01745329251f) * 0.44f, player->Velocity.y, sin((yaw - 90) * 0.01745329251f) * 0.44f); 25 | player->lerpMotion(po); 26 | if (player->onGround) { 27 | player->jumpFromGround(); 28 | } 29 | } 30 | if (keymap['D']) { 31 | Vector3 po = Vector3(cos((yaw + 180) * 0.01745329251f) * 0.44f, player->Velocity.y, sin((yaw + 180) * 0.01745329251f) * 0.44f); 32 | player->lerpMotion(po); 33 | if (player->onGround) { 34 | player->jumpFromGround(); 35 | } 36 | } 37 | } 38 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/BlockReach.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class BlockReach : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | BlockReach(std::string cat) : Module(cat, "BlockReach", "Lets you reach for blocks furthur away", 0x07) { 7 | uintptr_t address = Mem::findSig("48 83 EC 28 45 84 C0 74 1E"); 8 | func = hooks->createHook("getPickRange", address, getPickRange); 9 | 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static float getPickRange(GameMode _this, __int64 a2, char a3) { 21 | return 1000.f; 22 | } 23 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ChestDumper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ChestDumper : public Module { 4 | public: 5 | ChestDumper(std::string cat) : Module(cat, "ChestDumper", "Dumps inventory into a chest", 0x07) {}; 6 | 7 | void OnContainerTick(ContainerManagement* a1, Actor* lp) { 8 | for (int i = 0; i < 56; i++){ 9 | a1->shiftClickItems("inventory_items", i); 10 | a1->shiftClickItems("hotbar_items", i); 11 | } 12 | a1->closeContainer(); 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ChestRay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ChestRay : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | ChestRay(std::string cat) : Module(cat, "EntityRay", "Only renders entities and block entities", 0x07) { 7 | uintptr_t address = Mem::findSig("48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 4C 89 4C"); 8 | func = hooks->createHook("OnChunkRender", address, onChunkRender); 9 | }; 10 | 11 | void OnEnable(ClientInstance* a1, Actor* a2) override { 12 | func->enableHook(); 13 | }; 14 | 15 | void OnDisable(ClientInstance* a1, Actor* a2) override { 16 | func->disableHook(); 17 | }; 18 | 19 | static void onChunkRender(void* a1, void* a2) { return; }; 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ChestStealer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ChestStealer : public Module { 4 | public: 5 | ChestStealer(std::string cat) : Module(cat, "ChestStealer", "Takes everything out of a chest", 0x07) {}; 6 | 7 | void OnContainerTick(ContainerManagement* a1, Actor* lp) { 8 | for (int i = 0; i < 56; i++) { 9 | a1->shiftClickItems("container_items", i); 10 | } 11 | a1->closeContainer(); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/CoordsHud.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CoordsHud : public Module { 4 | public: 5 | CoordsHud(std::string cat) : Module(cat, "CoordsHud", "Display's your coordinates (DO NOT TURN ON IF COORDS ARE ALREADY ON TRUST ME BAD THINGS HAPPEN RUN WHILE U STILL CAN!", 'J') {} 6 | //80 78 04 ? 74 ? B0 ? 48 83 C4 ? C3 32 C0 48 83 C4 ? C3 CC CC CC CC CC CC CC CC CC 48 83 EC 7 | void* targetAddress; 8 | 9 | void OnEnable(ClientInstance* a1, Actor* a2) override { 10 | if (targetAddress == nullptr) 11 | targetAddress = (void*)Mem::findSig("80 78 04 ? 74 ? B0 ? 48 83 C4 ? C3 32 C0 48 83 C4 ? C3 CC CC CC CC CC CC CC CC CC 48 83 EC");//80 78 04 00 74 07 original signature but it gives 2 adresses so we are using a longer one, this can be useful incase the sig breaks. 12 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90"; 13 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 14 | 15 | } 16 | 17 | void OnDisable(ClientInstance* a1, Actor* a2) override { 18 | BYTE* patch = (BYTE*)"\x80\x78\x04\x00"; 19 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 20 | } 21 | 22 | virtual void OnFrameRender(RenderUtils* ctx) { 23 | /* auto player = clientInst->getLocalPlayer(); 24 | if (clientInst->getGuiData()->IsInGame || clientInst->isInGame()) { 25 | Vector3 d = *player->getPos(); 26 | d.y -= 2.5f; 27 | d.x -= 1.f; 28 | std::string txt1 = std::to_string((int)d.x); 29 | std::string txt2 = std::to_string((int)d.y); 30 | std::string txt3 = std::to_string((int)d.z); 31 | Vector2 TxtPos = Vector2(ctx->guiData->scaledResolution.x - ctx->guiData->scaledResolution.x + 20, ctx->guiData->scaledResolution.y - ctx->guiData->scaledResolution.y + 47); 32 | Vector2 BoxPos = Vector2(ctx->guiData->scaledResolution.x - ctx->guiData->scaledResolution.x + 17, ctx->guiData->scaledResolution.y - ctx->guiData->scaledResolution.y + 51); 33 | ctx->DrawOutline(BoxPos, 122, _RGB(0, 0, 0, 182), 6); 34 | ctx->DrawString(TxtPos, _RGB(255, 255, 255), "Position: " + txt1 + ", " + txt2 + ", " + txt3, ctx->font); 35 | }*/ 36 | } 37 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Crasher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Crasher : public Module { 4 | public: 5 | Crasher(std::string cat) : Module(cat, "Crasher", "Supposed To Crashes Realms, But Crashes You...", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp){ 8 | lp->setPos(Vector3{0.f,90.f,0.f}); 9 | } 10 | 11 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/CreativeFly.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CreativeFly : public Module { 4 | public: 5 | CreativeFly(std::string cat) : Module(cat, "CreativeFly", "Makes You Fly Like Creative Mode!", 0x07) {}; 6 | bool isFlying; 7 | 8 | void OnEnable(ClientInstance* ci, Actor* lp) override { 9 | isFlying = lp->IsFlying; 10 | } 11 | 12 | void OnGameTick(Actor* lp) override { 13 | lp->IsFlying = true; 14 | } 15 | 16 | void OnDisable(ClientInstance* ci, Actor* lp) override { 17 | lp->IsFlying = isFlying; 18 | } 19 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/CreativeMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CreativeMode : public Module { 4 | public: 5 | CreativeMode(std::string cat) : Module(cat, "CreativeMode", "Makes you in creative mode!", VK_NUMPAD1) {}; 6 | int origGamemode; 7 | 8 | void OnEnable(ClientInstance* ci, Actor* lp) override { 9 | origGamemode = lp->getPlayerGameType(); 10 | } 11 | 12 | void OnGameTick(Actor* lp) override { 13 | //lp->getGamemode() == 1; 14 | } 15 | 16 | void OnDisable(ClientInstance* ci, Actor* lp) override { 17 | //lp->getGamemode() = 1; 18 | } 19 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Criticals.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Criticals : public Module { 4 | public: 5 | Criticals(std::string cat) : Module(cat, "Criticals", "Hit all criticals", 0x00) {} 6 | void* targetAddress; 7 | void OnEnable(ClientInstance* a1, Actor* a2) override { 8 | if (targetAddress == nullptr) 9 | targetAddress = (void*)Mem::findSig("73 5A 80 B9 D8 01 ? ? ? 75 51"); 10 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 11 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 9); 12 | } 13 | 14 | void OnGameTick(Actor* a2) { 15 | /*a2->fallDistance = 0.9f; 16 | if (a2->onGround) 17 | a2->Velocity.y = 0.05f;*/ 18 | } 19 | 20 | void OnDisable(ClientInstance* a1, Actor* a2) override { 21 | BYTE* patch = (BYTE*)"\x73\x5A\x80\xB9\xD8\x01\x00\x00\x00"; 22 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 9); 23 | } 24 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/DebugCursor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class DebugCursor : public Module { 4 | public: 5 | DebugCursor(std::string cat) : Module(cat, "DebugCursor", "Debugging cursour :point_up:", 0x07) {}; 6 | 7 | void OnFrameRender(RenderUtils* ctx) override { 8 | ctx->Draw(ctx->guiData->scaledMousePos(), Vector2(5, 5), _RGB(33, 33, 33)); // debug cursor 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/DebugMenu.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class DebugMenu : public Module { 4 | public: 5 | DebugMenu(std::string cat) : Module(cat, "DebugMenu", "DebugMenu", 0x07) {}; 6 | 7 | Actor* act; 8 | 9 | void OnEnable(ClientInstance* cls, Actor* lp) override { 10 | act = lp; 11 | } 12 | 13 | void OnFrameRender(RenderUtils* ctx) override { 14 | if (act == nullptr) return; 15 | if (act->level == nullptr) return; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ElytraSpoof.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ElytraSpoof : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | ElytraSpoof(std::string cat) : Module(cat, "ElytraSpoof", "Spoof the game to think you're wearing elytra", 0x07) { 7 | uintptr_t address = Mem::findSig("48 89 5C 24 10 57 48 81 EC B0 ?? ?? ?? 33 FF 89"); 8 | func = hooks->createHook("elytraFlightSpoof", address, isUsingElytra); 9 | } 10 | 11 | void OnEnable(ClientInstance* a1, Actor* a2) override { 12 | func->enableHook(); 13 | } 14 | 15 | void OnDisable(ClientInstance* a1, Actor* a2) override { 16 | func->disableHook(); 17 | } 18 | 19 | static float isUsingElytra(void* a1, void* a2) { 20 | return 0; 21 | } 22 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ExpandScreen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | // ExpandScreen 3 | 4 | class ExpandScreen : public Module { 5 | public: 6 | ExpandScreen(std::string cat) : Module(cat, "ExpandScreen", "Increase your screen resolution in unnatural ways D:", 0x07) {}; 7 | 8 | void OnTick(ClientInstance* ci) override { 9 | ci->getGuiData()->windowData->renderWindow.x = ci->getGuiData()->resolution.x * 2; 10 | } 11 | void OnDisable(ClientInstance* ci, Actor* lp) { 12 | ci->getGuiData()->windowData->renderWindow.x = ci->getGuiData()->resolution.x; 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/FastWater.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class FastWater : public Module { 4 | public: 5 | FastWater(std::string cat) : Module(cat, "FastWater", "Become a speed boat!", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | if (lp->IsInWater || lp->isInLava()) 9 | { 10 | float yaw = (float)lp->bodyRots()->y; 11 | 12 | lp->Velocity.z = sin((yaw + 90) * 0.01745329251f) * 0.44f; 13 | lp->Velocity.x = cos((yaw + 90) * 0.01745329251f) * 0.44f; 14 | 15 | } 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/FloppySwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class FloppySwing : public Module { 4 | public: 5 | FloppySwing(std::string cat) : Module(cat, "FloppySwing", "Combo of FluxSwing, and NoObstuctSwing to make a wiggle animation", 0x07) {} 6 | void* targetAddress2; 7 | void* targetAddress; 8 | 9 | void OnEnable(ClientInstance* a1, Actor* a2) override { 10 | if (targetAddress == nullptr) { 11 | targetAddress2 = (void*)Mem::findSig("0F 84 ? ? ? ? 48 8B 46 40 48 85 C0"); 12 | targetAddress = (void*)Mem::findSig("F3 ? ? F0 ? ? C8 F3 ? ? C8"); 13 | } 14 | BYTE* patch2 = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 15 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 6); 16 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 17 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 18 | 19 | } 20 | 21 | void OnDisable(ClientInstance* a1, Actor* a2) override { 22 | BYTE* patch2 = (BYTE*)"\x0F\x84\x83\x02\x00\x00\x48\x8B\x46\x40\x48\x85\xC0"; 23 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 6); 24 | BYTE* patch = (BYTE*)"\xF3\x0F\x51\xF0\x0F\x28\xC8\xF3\x0F\x59\xC8";//F3 0F 51 F0 0F 28 C8 F3 0F 59 C8 25 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 26 | } 27 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/FluxSwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class FluxSwing : public Module { 4 | public: 5 | FluxSwing(std::string cat) : Module(cat, "FluxSwing", "Makes your swing animation looks like flux (a java client)", 0x07) {} 6 | void* targetAddress; 7 | void* targetAddress2; 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("0F 84 ? ? ? ? 48 8B 46 40 48 85 C0"); 11 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90"; 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 6); 13 | if (targetAddress2 == nullptr) 14 | targetAddress2 = (void*)Mem::findSig("48 85 C0 74 ? 48 8B 08 48 85 C9 74 ? 0F B6 49"); 15 | BYTE* patch2 = (BYTE*)"\x90\x90\x90"; 16 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 3); 17 | } 18 | 19 | void OnDisable(ClientInstance* a1, Actor* a2) override { 20 | BYTE* patch = (BYTE*)"\x0F\x84\x83\x02\x00\x00"; 21 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 6); 22 | BYTE* patch2 = (BYTE*)"\x48\x85\xC0"; 23 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 3); 24 | } 25 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Freelook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Freelook : public Module { 4 | public: 5 | Freelook(std::string cat) : Module(cat, "Freelook", "Freely look around client sidedly", 'C') {}; 6 | bool HoldMode() { 7 | return true; 8 | } 9 | Vector2 oldPos; 10 | 11 | void OnEnable(ClientInstance* ci, Actor* lp) override { 12 | oldPos = lp->CameraRots; 13 | } 14 | 15 | void OnGameTick(Actor* lp) override { 16 | if (oldPos != Vector2(0, 0)) { 17 | lp->CameraRots = oldPos; 18 | lp->BodyRotations.x = oldPos.y; 19 | lp->FirstPersonHandRotations.x = oldPos.y; 20 | } 21 | } 22 | 23 | void OnDisable(ClientInstance* ci, Actor* lp) override { 24 | oldPos = Vector2(0, 0); 25 | } 26 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Glide.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Glide : public Module { 4 | public: 5 | Glide(std::string cat) : Module(cat, "Glide", "Glide down slowly", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->Velocity.y = -0.02f; 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/GodMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Godmode : public Module { 4 | public: 5 | Godmode(std::string cat) : Module(cat, "Godmode", "LocalWorld only Godmode!", 0x07) {} 6 | 7 | void OnGameTick(Actor* a1) override { 8 | a1->heal(100); 9 | a1->HurtTime = Vector3(1, 1, 1); 10 | a1->fallDistance = 0.f; 11 | a1->CanTakeDamage = false; 12 | } 13 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/HighJump.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HighJump : public Module { 4 | public: 5 | HighJump(std::string cat) : Module(cat, "HighJump", "Jump higher then normal", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | if (lp->onGround2 && keymap[(int)' ']) 9 | lp->Velocity.y = 1.0f; 10 | } 11 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Hitbox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Hitbox : public Module { 4 | public: 5 | Hitbox(std::string cat) : Module(cat, "Hitbox", "Client sidedly increase every entities hitbox", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->Hitbox.x = 7; 9 | lp->Hitbox.y = 7; 10 | } 11 | 12 | void OnDisable(ClientInstance* ci, Actor* lp) override { 13 | lp->Hitbox.x = 0.6f; 14 | lp->Hitbox.y = 1.8f; 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/HiveFly.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HiveFly : public Module { 4 | public: 5 | HiveFly(std::string cat) : Module(cat, "HiveFly", "Turn it on, throw a pearl, then boom!", (int)'G') {}; 6 | 7 | void OnEnable(ClientInstance* ci, Actor* lp) override { 8 | ci->timerClass->setTimerSpeed(38); // wtf timer wont work 9 | } 10 | 11 | void OnGameTick(Actor* lp) override { 12 | float yaw = (float)lp->bodyRots()->y; 13 | float speed = 0.2f; // 0.180f 14 | lp->onGround = 1; 15 | lp->Velocity = 0, 0, 0; 16 | if (keymap['W']) { 17 | lp->Velocity.z = sin((yaw + 90) * 0.01745329251f) * speed; // 0.01745329251f 18 | lp->Velocity.x = cos((yaw + 90) * 0.01745329251f) * speed; 19 | } 20 | if (keymap['A']) { 21 | lp->Velocity.z = sin((yaw + 0) * 0.01745329251f) * speed; 22 | lp->Velocity.x = cos((yaw + 0) * 0.01745329251f) * speed; 23 | } 24 | if (keymap['S']) { 25 | lp->Velocity.z = sin((yaw - 90) * 0.01745329251f) * speed; 26 | lp->Velocity.x = cos((yaw - 90) * 0.01745329251f) * speed; 27 | } 28 | if (keymap['D']) { 29 | lp->Velocity.z = sin((yaw + 180) * 0.01745329251f) * speed; 30 | lp->Velocity.x = cos((yaw + 180) * 0.01745329251f) * speed; 31 | } 32 | } 33 | 34 | void OnDisable(ClientInstance* ci, Actor* lp) override { 35 | lp->Velocity = 0, 0, 0; 36 | ci->timerClass->setTimerSpeed(20); 37 | } 38 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Instabreak.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | class Block {}; 3 | class Instabreak : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | Instabreak(std::string cat) : Module(cat, "Instabreak", "Lets you break blocks instantly", 0x07) { 7 | uintptr_t address = Mem::findSig("48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC 40 48 8B FA 0F 29 74 24 ?"); 8 | func = hooks->createHook("getDestroySpeed", address, getDestroySpeed); 9 | 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static float getDestroySpeed(class Player, Block) { 21 | return 1000.f; 22 | } 23 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/InvCleaner.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class InvCleaner : public Module { 4 | public: 5 | InvCleaner(std::string cat) : Module(cat, "InvCleaner", "Throws out useless items in your inventory", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | //not sure why not working someone pls mess with this! 9 | auto player = clientInst->getLocalPlayer(); 10 | auto inv = player->getInventory(); 11 | for (int i = 0; i < 36; i++) { 12 | inv->dropSlot(i); 13 | } 14 | } 15 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/InventoryMove.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class InventoryMove : public Module { 4 | public: 5 | InventoryMove(std::string cat) : Module(cat, "InventoryMove", "move in inventory u stupid fuick", 0x07) {}; 6 | void OnGameTick(Actor* lp) override { 7 | if (lp->canOpenContainerScreen()) 8 | return; 9 | float yaw = (float)lp->bodyRots()->y; 10 | if (keymap[' '] && lp->onGround) { 11 | lp->Velocity.y = 0.40f; 12 | } 13 | if (keymap['W']) { 14 | Vector3 po = Vector3(cos((yaw + 90.f) * 0.01745329251f) * 0.44f, lp->Velocity.y, sin((yaw + 90) * 0.01745329251f) * 0.44f); 15 | lp->lerpMotion(po); 16 | } 17 | if (keymap['A']) { 18 | Vector3 po = Vector3(cos((yaw + 0.f) * 0.01745329251f) * 0.44f, lp->Velocity.y, sin((yaw + 0) * 0.01745329251f) * 0.44f); 19 | lp->lerpMotion(po); 20 | } 21 | if (keymap['S']) { 22 | Vector3 po = Vector3(cos((yaw - 90.f) * 0.01745329251f) * 0.44f, lp->Velocity.y, sin((yaw - 90) * 0.01745329251f) * 0.44f); 23 | lp->lerpMotion(po); 24 | } 25 | if (keymap['D']) { 26 | Vector3 po = Vector3(cos((yaw + 180.f) * 0.01745329251f) * 0.44f, lp->Velocity.y, sin((yaw + 180) * 0.01745329251f) * 0.44f); 27 | lp->lerpMotion(po); 28 | } 29 | } 30 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Jesus.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Jesus : public Module { 4 | public: 5 | Jesus(std::string cat) : Module(cat, "Jesus", "Walk on water like jesus", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | if (lp->IsInWater || lp->isInLava()) { 9 | lp->Velocity.y = 0.025f; 10 | lp->onGround = true; 11 | } 12 | /* 13 | if (lp->IsInWater || lp->IsInLava) { 14 | Vector3 pos(*lp->getPos()); 15 | float ofs = 1.620010f; 16 | pos.y = floorf(pos.y - ofs) + 0.6f + ofs; 17 | lp->setPos(pos); 18 | if (lp->Velocity.y <= 0) 19 | lp->lerpybutworky(Vector3(lp->Velocity.x, 0.35, lp->Velocity.z)); 20 | lp->fallDistance = 0; 21 | lp->onGround = true; 22 | lp->stepHeight = 1.f; 23 | } 24 | */ 25 | } 26 | }; 27 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Jetpack.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Jetpack : public Module { 4 | public: 5 | Jetpack(std::string cat) : Module(cat, "Jetpack", "Get a magical jetpack!", 'F') {}; 6 | bool HoldMode() { 7 | return true; 8 | } 9 | 10 | void OnGameTick(Actor* lp) override { 11 | float calcYaw = (lp->bodyRots()->y + 90) * (PI / 180); 12 | float calcPitch = (lp->bodyRots()->x) * -(PI / 180); 13 | 14 | Vector3 moveVec; 15 | moveVec.x = cos(calcYaw) * cos(calcPitch) * 1.5; 16 | moveVec.y = sin(calcPitch) * 1.5; 17 | moveVec.z = sin(calcYaw) * cos(calcPitch) * 1.5; 18 | 19 | lp->lerpMotion(moveVec); 20 | } 21 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Killaura.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Killaura : public Module { 4 | public: 5 | Killaura(std::string cat) : Module(cat, "Killaura", "Hit every entity around you", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | auto localPlayer = clientInst->getCPlayer(); 9 | auto gamemode = localPlayer->getGamemode(); 10 | for (auto ent : clientInst->getEntityList()) { 11 | if (ent.first == reinterpret_cast(localPlayer)) 12 | return; 13 | 14 | if (ent.second == nullptr) 15 | continue; 16 | 17 | localPlayer->swing(); 18 | gamemode->attack(ent.second); 19 | } 20 | } 21 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Killgame.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Killgame : public Module { 4 | public: 5 | Killgame(std::string cat) : Module(cat, "Killgame", "Exit the games main libraries and threads", 0x07) {}; 6 | 7 | void OnEnable(ClientInstance* ci, Actor* lp) override { 8 | FreeLibraryAndExitThread(static_cast(0), 1); 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/LDFreelook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LDFreelook : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | LDFreelook(std::string cat) : Module(cat, "LDFreelook", "LDPlayer freelook. Stops all mouse move events.", 0x07) { 7 | uintptr_t address = Mem::findSig("48 8B C4 48 89 58 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ? ? ? ? 48 81 EC ? ? ? ? ? ? 70 B8 ? ? 78 A8 44 ? ? 40 98 44 ? ? 48 88 44 ? ? 90 ? ? ? ? 44 ? ? 98 ? ? ? ? 44 ? ? A0 ? ? ? ? 44 ? ? A8 ? ? ? ? 44 ? ? B0 ? ? ? ? 44 ? ? B8 ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 48 8B DA 48 8B F9 48 8B 89 ? ? ? ? 48 8B 01 FF 90"); 8 | func = hooks->createHook("OnAnimationRender", address, onAnimationRender); 9 | }; 10 | 11 | void OnEnable(ClientInstance* a1, Actor* a2) override { 12 | func->enableHook(); 13 | }; 14 | 15 | void OnDisable(ClientInstance* a1, Actor* a2) override { 16 | func->disableHook(); 17 | }; 18 | 19 | static void onAnimationRender(void* a1, void* a2) { return; }; 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NameTags.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NameTags : public Module { 4 | public: 5 | NameTags(std::string cat) : Module(cat, "NameTags", "Display a nametag over every players head even if their not in entity render distance", 0x07, true) {}; 6 | 7 | void OnFrameRender(RenderUtils* ctx) override { 8 | for (auto ent : clientInst->getEntityList()) { 9 | // to be developed 10 | } 11 | } 12 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoAnimations.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoAnimations : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | NoAnimations(std::string cat) : Module(cat, "NoAnimations", "Stop basic player animations", 0x07) { 7 | uintptr_t address = Mem::findSig("48 8B C4 48 89 58 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ? ? ? ? 48 81 EC ? ? ? ? 0F 29 70 ? 0F 29 78 ? 44 0F 29 40 ? 44 0F 29 48 ? 44 0F 29 90 ? ? ? ? 44 0F 29 98 ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 4C 8B EA"); 8 | func = hooks->createHook("OnAnimationRender", address, onAnimationRender); 9 | }; 10 | 11 | void OnEnable(ClientInstance* a1, Actor* a2) override { 12 | func->enableHook(); 13 | }; 14 | 15 | void OnDisable(ClientInstance* a1, Actor* a2) override { 16 | func->disableHook(); 17 | }; 18 | 19 | static void onAnimationRender(void* a1, void* a2) { return; }; 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoBrakes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoBrakes : public Module { 4 | public: 5 | NoBrakes(std::string cat) : Module(cat, "NoBrakes", "Stop spider webs or powdered snow from slowing you down", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->SlowDown = {0, 0, 0}; 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoFall.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoFall : public Module { 4 | public: 5 | NoFall(std::string cat) : Module(cat, "NoFall", "Disable falldamage in LocalWorlds", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->fallDistance = 0.f;/* 9 | if (lp->fallDistance > 2.5f) { 10 | lp->tryTeleportTo(*lp->getPos(), true, true, 1, 1); 11 | lp->onGround = true; 12 | lp->fallDistance = 0.f; 13 | }*///sorry pearl its good but this isint a nofall people are looking for, once we have enums we can add this as an option. I like it but sorry :( 14 | } 15 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoObstructionSwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoObstructionSwing : public Module { 4 | public: 5 | NoObstructionSwing(std::string cat) : Module(cat, "NoObstSwing", "A very smooth animation", 0x07) {} 6 | void* targetAddress; 7 | 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("F3 ? ? F0 ? ? C8 F3 ? ? C8"); 11 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 13 | 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | BYTE* patch = (BYTE*)"\xF3\x0F\x51\xF0\x0F\x28\xC8\xF3\x0F\x59\xC8";//F3 0F 51 F0 0F 28 C8 F3 0F 59 C8 18 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 19 | } 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoShadow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoShadow : public Module { 4 | public: 5 | NoShadow(std::string cat) : Module(cat, "NoShadow", "Stop rendering annoying shadows", 0x07) { 6 | } 7 | 8 | virtual void OnGameTick(Actor* lp) override { 9 | lp->setShadowRadius(0.f); 10 | } 11 | 12 | void OnDisable(ClientInstance* a1, Actor* lp) override { 13 | lp->setShadowRadius(0.60f); 14 | } 15 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoSlow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoSlow : public Module { 4 | public: 5 | NoSlow(std::string cat) : Module(cat, "NoSlow", "no more slowing wow", 0x07) {} 6 | void* targetAddress; 7 | void* targetAddress2; 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("F3 0F 11 46 0C 41 C7"); 11 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90"; 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 5); 13 | 14 | if (targetAddress2 == nullptr) 15 | targetAddress2 = (void*)Mem::findSig("F3 0F 11 46 0C F3 0F 10 05"); 16 | BYTE* patch2 = (BYTE*)"\x90\x90\x90\x90\x90\x90"; 17 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 5); 18 | } 19 | 20 | void OnDisable(ClientInstance* a1, Actor* a2) override { 21 | BYTE* patch = (BYTE*)"\xF3\x0F\x11\x46\x0C\x41\xC7"; 22 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 5); 23 | BYTE* patch2 = (BYTE*)"\xF3\x0F\x11\x46\x0C\xF3\x0F\x10\x05"; 24 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 5); 25 | } 26 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoSwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoSwing : public Module { 4 | public: 5 | NoSwing(std::string cat) : Module(cat, "NoSwing", "Stop swing animation", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | *lp->SwingAnimation() = 0; 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoWater.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoWater : public Module { 4 | public: 5 | NoWater(std::string cat) : Module(cat, "NoWater", "Acts as if there is no water", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | if (lp->IsInWater || lp->isInLava()) { 9 | lp->IsInWater = false; 10 | lp->IsSwimming = false; 11 | lp->HasEnteredWater = false; 12 | } 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoWeb.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../Module.h" 3 | #include 4 | #include "../../SDK/Actor.h" 5 | 6 | class NoWeb : public Module { 7 | public: 8 | NoWeb(std::string cat) : Module(cat, "NoWeb", "Removes the move slowdown while inside webs.", 0x0) {}; 9 | 10 | void OnGameTick(Actor* lp) override { 11 | lp->resetBlockMovementSlowdownMultiplier(); 12 | } 13 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/NoYFlight.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NoYFlight : public Module { 4 | public: 5 | NoYFlight(std::string cat) : Module(cat, "NoYFlight", "Bypassing fly made for mineplex", 0x0) {}; 6 | ClientInstance* ci; 7 | 8 | void OnEnable(ClientInstance* ci, Actor* lp) override { 9 | this->ci = ci; 10 | } 11 | 12 | void OnGameTick(Actor* lp) override { 13 | float yaw = (float)lp->bodyRots()->y; 14 | lp->Velocity.x = 0.f; 15 | lp->Velocity.y = 0.f; 16 | lp->Velocity.z = 0.f; 17 | if (keymap['W']) { 18 | lp->Velocity.z = sin((yaw + 90) * 0.01745329251f) * 2; 19 | lp->Velocity.x = cos((yaw + 90) * 0.01745329251f) * 2; 20 | } 21 | if (keymap['A']) { 22 | lp->Velocity.z = sin((yaw + 0) * 0.01745329251f) * 2; 23 | lp->Velocity.x = cos((yaw + 0) * 0.01745329251f) * 2; 24 | } 25 | if (keymap['S']) { 26 | lp->Velocity.z = sin((yaw - 90) * 0.01745329251f) * 2; 27 | lp->Velocity.x = cos((yaw - 90) * 0.01745329251f) * 2; 28 | } 29 | if (keymap['D']) { 30 | lp->Velocity.z = sin((yaw + 180) * 0.01745329251f) * 2; 31 | lp->Velocity.x = cos((yaw + 180) * 0.01745329251f) * 2; 32 | } 33 | } 34 | 35 | void OnDisable(ClientInstance* ci, Actor* lp) override { 36 | lp->Velocity.x = 0.f; 37 | lp->Velocity.y = 0.f; 38 | lp->Velocity.z = 0.f; 39 | } 40 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Noclip.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Noclip : public Module { 4 | public: 5 | Noclip(std::string cat) : Module(cat, "Noclip", "Disable all collisions", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->Position.upper.y = lp->Position.lower.y - 1.8f; 9 | } 10 | 11 | void OnDisable(ClientInstance* ci, Actor* lp) override { 12 | lp->setPos(lp->Position.lower); 13 | } 14 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Notifications.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Notifications : public Module { 4 | public: 5 | Notifications(std::string cat) : Module(cat, "Notifications", "Information indicator", 0x07) {}; 6 | 7 | void OnEnable(ClientInstance* ci, Actor* lp) override { 8 | 9 | } 10 | 11 | void OnDisable(ClientInstance* ci, Actor* lp) override { 12 | 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/OGMFlight.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class OGMFlight : public Module { 4 | public: 5 | OGMFlight(std::string cat) : Module(cat, "OGMFlight", "OG MineplexFly", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->Velocity.x = cos((lp->bodyRots()->y + 90) * 0.01745329251f) * 0.7f; 9 | lp->Velocity.y = 0.075f * 0.7f; 10 | lp->Velocity.z = sin((lp->bodyRots()->y + 90) * 0.01745329251f) * 0.7f; 11 | } 12 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/OldSwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class OldSwing : public Module { 4 | public: 5 | OldSwing(std::string cat) : Module(cat, "OldSwing", "Looks similar to the old swing animation", 0x07) {} 6 | void* targetAddress; 7 | 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("F3 ? ? C1 ? ? C8 48 8D 15"); 11 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 13 | 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | BYTE* patch = (BYTE*)"\xF3\x0F\x2C\xC1\x0F\xB7\xC8\x48\x8D\x15";//F3 0F 2C C1 0F B7 C8 48 8D 15 18 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 19 | } 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Phase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Phase : public Module { 4 | public: 5 | Phase(std::string cat) : Module(cat, "Phase", "Disable X & Z collisions", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->Position.upper.y = lp->Position.lower.y; 9 | } 10 | 11 | void OnDisable(ClientInstance* ci, Actor* lp) override { 12 | lp->setPos(lp->Position.lower); 13 | } 14 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/PlayerList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PlayerList : public Module { 4 | public: 5 | PlayerList(std::string cat) : Module(cat, "PlayerList", "Displays all players in renderdistance on the left side of the screen", 0x07) {}; 6 | 7 | void OnFrameRender(RenderUtils* ctx) override { 8 | if (clientInst->isInGame()) { 9 | int index = 0; 10 | for (auto ent : clientInst->getEntityList()) { 11 | auto entity = ent.second; 12 | auto posx = std::to_string((int)entity->Position.lower.x); 13 | auto posy = std::to_string((int)entity->Position.lower.y); 14 | auto posz = std::to_string((int)entity->Position.lower.z); 15 | ctx->DrawString(Vector2(10, 10 + (index * 20)), _RGB(), TextHolder( 16 | std::string( 17 | std::string("Found Player: ") + 18 | posx + ", " + 19 | posy + ", " + 20 | posz 21 | ).c_str() 22 | ), ctx->font); 23 | index++; 24 | //if (/*Do the check for if its all 0's, it will get rid of it pls*/) 25 | //index - 1; 26 | } 27 | } 28 | } 29 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/PushSwing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PushSwing : public Module { 4 | public: 5 | PushSwing(std::string cat) : Module(cat, "PushSwing", "Combo of NoObjSwing, and OldSwing to make a push animation", 0x07) {} 6 | void* targetAddress; 7 | void* targetAddress2; 8 | 9 | void OnEnable(ClientInstance* a1, Actor* a2) override { 10 | if (targetAddress == nullptr) { 11 | targetAddress = (void*)Mem::findSig("F3 ? ? F0 ? ? C8 F3 ? ? C8"); 12 | targetAddress2 = (void*)Mem::findSig("F3 ? ? C1 ? ? C8 48 8D 15"); 13 | } 14 | BYTE* patch2 = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 15 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 4); 16 | BYTE* patch = (BYTE*)"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 17 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 18 | 19 | } 20 | 21 | void OnDisable(ClientInstance* a1, Actor* a2) override { 22 | BYTE* patch2 = (BYTE*)"\xF3\x0F\x2C\xC1\x0F\xB7\xC8\x48\x8D\x15";//F3 0F 2C C1 0F B7 C8 48 8D 15 23 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress2), patch2, 4); 24 | BYTE* patch = (BYTE*)"\xF3\x0F\x51\xF0\x0F\x28\xC8\xF3\x0F\x59\xC8";//F3 0F 51 F0 0F 28 C8 F3 0F 59 C8 25 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 26 | } 27 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Reach.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Reach : public Module { 4 | public: 5 | Reach(std::string cat) : Module(cat, "Reach", "Long hand be like", 0x07) {} 6 | void* targetAddress; 7 | 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("00 00 40 40 DB 0F"); 11 | BYTE* patch = (BYTE*)"\x00\x00\xE0\x40\xDB\x0F";//00 00 E0 40 DB 0F 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 6); 13 | 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | BYTE* patch = (BYTE*)"\x00\x00\x40\x40\xDB\x0F";//00 00 40 40 DB 0F 18 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 6); 19 | } 20 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ReverseStep.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ReverseStep : public Module { 4 | public: 5 | ReverseStep(std::string cat) : Module(cat, "ReverseStep", "Step Down Faster", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | if (lp->onGround && lp->Velocity.y < 0 && !(lp->Velocity.y < -1)) // requirements for reverse step 9 | lp->Velocity.y = -5; 10 | } 11 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ShulkerNest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ShulkerNest : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | ShulkerNest(std::string cat) : Module(cat, "ShulkerNest", "Allows you to put shulker boxes in shulker boxes", 0x07) { 7 | uintptr_t address = Mem::findSig("48 89 5C 24 ? 57 48 83 EC ? 48 8B 41 ? 48 8B F9 48 85 C0 74");//48 89 ? ? ? 57 48 83 EC ? F3 0F ? ? ? ? ? ? 48 8B ? 41 8B FurnaceBlockActor::isItemAllowedInFuelSlot 8 | func = hooks->createHook("ShulkerNest", address, itemAllowed); 9 | // someone hook auth please 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static bool itemAllowed() { 21 | return true; 22 | } 23 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Spammer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Spammer : public Module { 4 | public: 5 | Spammer(std::string cat) : Module(cat, "Spammer", "Spam chat messages when you type in chat", 0x07) {}; 6 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Spider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Spider : public Module { 4 | public: 5 | Spider(std::string cat) : Module(cat, "Spider", "Climb up walls like a spider", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | if (lp->walkingIntoObj) 9 | lp->Velocity.y = 0.35f; 10 | } 11 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/SpinAttack.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class SpinAttack : public Module { 4 | public: 5 | SpinAttack(std::string cat) : Module(cat, "SpinAttack", "You spin my world right round, bae right round.", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | auto localPlayer = clientInst->getCPlayer(); 9 | localPlayer->startSpinAttack(); 10 | } 11 | 12 | void OnDisable(ClientInstance* ci, Actor* lp) override { 13 | auto localPlayer = clientInst->getCPlayer(); 14 | localPlayer->stopSpinAttack(); 15 | } 16 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Step.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Step : public Module { 4 | public: 5 | Step(std::string cat) : Module(cat, "Step", "Increase your step height", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->stepHeight = 2; 9 | } 10 | 11 | void OnDisable(ClientInstance* ci, Actor* lp) override { 12 | lp->stepHeight = 0.5625f; 13 | } 14 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/StreamName.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class StreamName : public Module { 4 | public: 5 | StreamName(std::string cat) : Module(cat, "StreamName", "Client sidedly hide your minecraft username", 0x07) { 6 | // Constructor (Runs once on start up) 7 | } 8 | std::string OGName; 9 | void OnEnable(ClientInstance* ci, Actor* lp) { 10 | OGName = lp->getName(); 11 | } 12 | void OnGameTick(Actor* a1) override { 13 | a1->setName("Streaming"); 14 | } 15 | void OnDisable(ClientInstance* ci, Actor* lp) { 16 | lp->setName(OGName); 17 | } 18 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/TestModule.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | class TestModule : public Module { 5 | public: 6 | VirtualFuncHook* func; 7 | TestModule(std::string cat) : Module(cat, "TestModule", "TestModule", 0x07) { 8 | uintptr_t address = Mem::findSig("41 0F 10 08 48 8B C2 0F"); //Currently Fog Color 9 | func = hooks->createHook("Test", address, Test); 10 | std::vector options; 11 | options.push_back("Hive"); 12 | addSetting(Setting(this, "TestSetting", "checkbox", options)); 13 | //48 8B 41 ? 48 8B D1 48 85 C0 74 ? 48 8B 08 48 85 C9 74 ? 48 8B 01 48 FF ?? return this to true and it makes every item enchanted, return to false and everything isint enchanted 14 | //40 53 48 83 EC 20 80 B9 8C 09 00 00 01 48 8B D9 74 4B canUseOperatorBlocks which when setting to true works in singleplayer 15 | /* GetSleepTimer sigs that actually work! 16 | 0F BF 81 0C 10 00 00 C3 CC CC CC CC CC CC CC CC 17 | 0F BF 81 0E 10 00 00 C3 CC CC CC CC CC CC CC CC 18 | 0x0100C offset for it 19 | */ 20 | } 21 | 22 | void OnEnable(ClientInstance* a1, Actor* a2) override { 23 | auto player = clientInst->getLocalPlayer(); 24 | hooks->debugEcho("", "Test module!"); 25 | func->enableHook(); 26 | } 27 | 28 | void OnDisable(ClientInstance* a1, Actor* a2) override { 29 | func->disableHook(); 30 | } 31 | 32 | static void Test(Actor* ent, Vector3 pos) { 33 | pos = Vector3(10, 17, 10); 34 | } 35 | virtual void OnFrameRender(RenderUtils* ctx) { 36 | //ctx->FillRectAndDrawRect(Rect(10, 100, 10, 100), _RGB(0, 0, 255), _RGB(255, 0, 0), 0.25f, 1.f, 1.f); 37 | } 38 | virtual void OnTick(ClientInstance* ci) {} 39 | virtual void OnGameTick(Actor* lp) { 40 | } 41 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Timer : public Module { // worked 4 | public: 5 | Timer(std::string cat) : Module(cat, "Timer", "Increase your game tickrate by x2 (40tps)", 0x07) {}; 6 | 7 | void OnEnable(ClientInstance* ci, Actor* lp) override { 8 | ci->timerClass->setTimerSpeed(50); 9 | } 10 | 11 | void OnDisable(ClientInstance* ci, Actor* lp) override { 12 | ci->timerClass->setTimerSpeed(20); 13 | } 14 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Tornado.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Tornado : public Module { 4 | public: 5 | Tornado(std::string cat) : Module(cat, "Tornado", "Spin and damage nearby mobs", 0x07) {}; 6 | 7 | void OnGameTick(Actor* lp) override { 8 | lp->setDamageNearbyMobs(true); 9 | } 10 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Tracers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Tracers : public Module { 4 | public: 5 | Tracers(std::string cat) : Module(cat, "RenderHome", "Render a message where you enabled this module", 0x07) {}; 6 | Vector3 savedPos = Vector3(); 7 | 8 | void OnEnable(ClientInstance* ci, Actor* lp) override { 9 | if (clientInst->getLocalPlayer() == nullptr) return; 10 | 11 | savedPos = ci->getLocalPlayer()->Position.lower; 12 | 13 | savedPos.x += ci->getLocalPlayer()->Hitbox.x / 2; // Center of player 14 | savedPos.z += ci->getLocalPlayer()->Hitbox.x / 2; 15 | 16 | savedPos.y += 1.6f; // Eye height 17 | } 18 | 19 | void OnFrameRender(RenderUtils* ctx) override { 20 | Vector2 renderPos; 21 | 22 | if (clientInst->getLocalPlayer() != nullptr && ctx->World2Screen(savedPos, renderPos)) 23 | { 24 | renderUtil.Draw( 25 | renderPos, 26 | Vector2(10, 10), 27 | _RGB() 28 | ); 29 | } 30 | 31 | renderUtil.DrawString( 32 | Vector2(10, 10), 33 | _RGB(), 34 | TextHolder("GLMatrix w:"), 35 | font 36 | ); 37 | } 38 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Uninject.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Uninject : public Module { 4 | public: 5 | Uninject(std::string cat) : Module(cat, "Uninject", "Uninject trero internal", 0x07) {}; 6 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Velocity.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Velocity : public Module { 4 | public: 5 | VirtualFuncHook* func; 6 | Velocity(std::string cat) : Module(cat, "Velocity", "No knockback", 0x07) { 7 | uintptr_t address = Mem::findSig("89 81 ? ? ? ? 8B 42 ? 89 81 ? ? ? ? 8B 42 ? 89 81 ? ? ? ? C3 CC CC CC CC CC 48 89 5C 24"); 8 | func = hooks->createHook("Velocity", address, AntiKB); 9 | 10 | } 11 | 12 | void OnEnable(ClientInstance* a1, Actor* a2) override { 13 | func->enableHook(); 14 | } 15 | 16 | void OnDisable(ClientInstance* a1, Actor* a2) override { 17 | func->disableHook(); 18 | } 19 | 20 | static bool AntiKB(Actor* lp) { 21 | return false; 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/ViewModel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ViewModel : public Module { 4 | public: 5 | ViewModel(std::string cat) : Module(cat, "ViewModel", "cool viewmodel, also make u not take fall damage", 0x07) {} 6 | void* targetAddress; 7 | 8 | void OnEnable(ClientInstance* a1, Actor* a2) override { 9 | if (targetAddress == nullptr) 10 | targetAddress = (void*)Mem::findSig("00 00 40 40 DB 0F"); 11 | BYTE* patch = (BYTE*)"\x00\x00\x7A\x44";//00 00 E0 40 DB 0F 12 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 13 | } 14 | 15 | void OnDisable(ClientInstance* a1, Actor* a2) override { 16 | BYTE* patch = (BYTE*)"\x00\x00\x40\x40\xDB\x0F";//00 00 40 40 DB 0F 17 | Mem::patchBytes((BYTE*)((uintptr_t)targetAddress), patch, 4); 18 | } 19 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Watermark.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Watermark : public Module { 4 | public: 5 | Watermark(std::string cat) : Module(cat, "Watermark", "Display watermark in bottom corner of screen", 0x07, true) {}; 6 | 7 | void OnFrameRender(RenderUtils* ctx) override { 8 | auto vText1 = TextHolder("Trero Internal"); //"Trero Internal" 9 | 10 | //RGB 11 | _RGB rainbow; 12 | float offset = 0.f; 13 | long rainbowIndex = offset * 900; 14 | rainbow = ctx->getRainbow(5, 1.0f, 1.0f, rainbowIndex, 255.f, 255.f, 255.f, 255.f); 15 | 16 | Vector2 strPos = Vector2(0, 0); 17 | 18 | strPos.x = ctx->guiData->scaledResolution.x - ctx->ctx->getLineLength(ctx->font, &vText1, 1) - 4; 19 | strPos.y = ctx->guiData->scaledResolution.y - 20.f; 20 | 21 | ctx->DrawString(strPos, rainbow, vText1, ctx->font); 22 | } 23 | 24 | //void OnGameTick(Actor* lp) override {}; 25 | }; 26 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Modules/Zoom.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Zoom : public Module { 4 | public: 5 | Zoom(std::string cat) : Module(cat, "Zoom", "Decrease your fov then increase it again", 0x07) {}; 6 | 7 | void OnEnable(ClientInstance* ci, Actor* lp) override { 8 | lp->SetFieldOfView(0.25f); 9 | cancelUiRender = true; 10 | } 11 | 12 | void OnDisable(ClientInstance* ci, Actor* lp) override { 13 | lp->SetFieldOfView(1.f); 14 | cancelUiRender = false; 15 | } 16 | 17 | void OnGameTick(Actor* lp) override { 18 | lp->SetFieldOfView(0.25f); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /InternalMinecraftClient/ClientBase/Setting.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Setting { 4 | public: 5 | 6 | 7 | Setting(Module* Parent, std::string Name, std::string Mode, std::vector Option) { // Constructor 8 | parent = Parent; 9 | name = Name; 10 | mode = Mode; 11 | option = Option; 12 | } 13 | 14 | Module* parent; 15 | std::string name; 16 | std::vector option; 17 | std::string mode; 18 | 19 | bool isCheckbox() 20 | { 21 | return this->mode._Equal("checkbox") ? true : false; 22 | } 23 | 24 | bool isSlider() 25 | { 26 | return this->mode._Equal("slider") ? true : false; 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /InternalMinecraftClient/InternalMinecraftClient.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 16.0 23 | Win32Proj 24 | {f988ed68-426b-4dd8-89c4-1f3d0aeb552f} 25 | InternalMinecraftClient 26 | 10.0 27 | 28 | 29 | 30 | DynamicLibrary 31 | true 32 | v142 33 | Unicode 34 | 35 | 36 | DynamicLibrary 37 | false 38 | v142 39 | true 40 | Unicode 41 | 42 | 43 | DynamicLibrary 44 | true 45 | v142 46 | Unicode 47 | 48 | 49 | DynamicLibrary 50 | false 51 | v142 52 | true 53 | Unicode 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | true 75 | 76 | 77 | false 78 | 79 | 80 | true 81 | 82 | 83 | false 84 | 85 | 86 | 87 | Level3 88 | true 89 | WIN32;_DEBUG;INTERNALMINECRAFTCLIENT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 90 | true 91 | Use 92 | pch.h 93 | 94 | 95 | Windows 96 | true 97 | false 98 | 99 | 100 | 101 | 102 | Level3 103 | true 104 | true 105 | true 106 | WIN32;NDEBUG;INTERNALMINECRAFTCLIENT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 107 | true 108 | Use 109 | pch.h 110 | 111 | 112 | Windows 113 | true 114 | true 115 | true 116 | false 117 | 118 | 119 | 120 | 121 | Level3 122 | true 123 | _DEBUG;INTERNALMINECRAFTCLIENT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 124 | true 125 | NotUsing 126 | pch.h 127 | 128 | 129 | Windows 130 | true 131 | false 132 | 133 | 134 | 135 | 136 | Level3 137 | true 138 | true 139 | true 140 | NDEBUG;INTERNALMINECRAFTCLIENT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 141 | true 142 | NotUsing 143 | pch.h 144 | 145 | 146 | Windows 147 | true 148 | true 149 | true 150 | false 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 292 | 293 | 294 | 295 | -------------------------------------------------------------------------------- /InternalMinecraftClient/InternalMinecraftClient.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /InternalMinecraftClient/Memory/GameHooks.h: -------------------------------------------------------------------------------- 1 | #include "VirtualFuncHook.h" 2 | #include "../SDK/RenderContext/DebugNotify.h" 3 | 4 | class BaseClient { 5 | public: 6 | std::vector notifications; 7 | std::vector hooks; 8 | 9 | public: 10 | VirtualFuncHook* getHook(const char* hookName) { 11 | for (auto hook : hooks) { 12 | if (hook->hookName == hookName) 13 | return hook; 14 | } 15 | } 16 | VirtualFuncHook* createHook(const char* hookName, uintptr_t ptr, void* function) { 17 | hooks.push_back(new VirtualFuncHook(std::string(hookName), ptr, function)); 18 | return getHook(hookName); 19 | } 20 | 21 | void debugEcho(const char* notifyName, const char* notifyDesc, float canExistFor = 1500) { 22 | notifications.push_back(new DebugNotify(std::string(notifyName), std::string(notifyDesc), canExistFor)); 23 | } 24 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/Memory/VirtualFuncHook.h: -------------------------------------------------------------------------------- 1 | class VirtualFuncHook { 2 | public: 3 | std::string hookName; 4 | void* function; 5 | void* ptr; 6 | 7 | VirtualFuncHook(std::string hookName, uintptr_t ptr, void* function) { 8 | this->hookName = hookName; 9 | this->ptr = reinterpret_cast(ptr); 10 | this->function = function; 11 | MH_CreateHook(this->ptr, function, &this->function); 12 | }; 13 | 14 | void enableHook(bool enable = true) { 15 | if (this->ptr != nullptr) { 16 | enable ? MH_EnableHook(this->ptr) : MH_DisableHook(this->ptr); 17 | } 18 | } 19 | void disableHook() { 20 | enableHook(false); 21 | } 22 | 23 | template 24 | inline auto* GetFastcall() { 25 | using Fn = TRet(__fastcall*)(TArgs...); 26 | return reinterpret_cast(ptr); 27 | }; 28 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/ClientInstance.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../Utils/Math.h" 4 | #include "MinecraftGame.h" 5 | #include "Player.h" 6 | #include 7 | 8 | class TimerClass { 9 | private: 10 | char pad_0x0000[0xD0 + (0x8 * 1)]; //0x0000 11 | public: 12 | float* mainTimer; 13 | float* otherTimer; 14 | 15 | void setTimerSpeed(float tps) { 16 | *this->mainTimer = tps; 17 | *this->otherTimer = tps; 18 | return; 19 | }; 20 | }; 21 | 22 | class LoopbackSender { 23 | private: 24 | virtual void Constructor(); 25 | public: 26 | virtual void sendToServer(Packet* pkt); 27 | }; 28 | 29 | class ClientInstance { 30 | private: 31 | char pad_0x0000[0xA0]; //0x0000 32 | public: 33 | MinecraftGame* mcGame; //0x00A8 34 | TimerClass* timerClass; //0x00B0 35 | 36 | public: 37 | auto getGuiData() { 38 | return *reinterpret_cast((uintptr_t)(this) + 0x4D0); 39 | }; 40 | 41 | auto getLocalPlayer() { 42 | return *reinterpret_cast((uintptr_t)(this) + 0x148); 43 | }; 44 | 45 | auto getLevelRender() { 46 | return reinterpret_cast((uintptr_t)(this) + 0xD0); // 0xC0 + 0x10 47 | }; 48 | 49 | auto getFovX() { 50 | return reinterpret_cast((uintptr_t)(this) + 0x658); 51 | }; 52 | 53 | auto getFovY() { 54 | return reinterpret_cast((uintptr_t)(this) + 0x66C); 55 | }; 56 | 57 | auto getMatrix() { 58 | return reinterpret_cast((uintptr_t)(this) + 0x2D8); //0x300 59 | }; 60 | 61 | auto getMatrixCorrection() { 62 | GLMatrix toReturn = GLMatrix(); 63 | 64 | GLMatrix* matrix = getMatrix(); 65 | 66 | for (int i = 0; i < 4; i++) { 67 | toReturn.matrix[i * 4 + 0] = matrix->matrix[0 + i]; 68 | toReturn.matrix[i * 4 + 1] = matrix->matrix[4 + i]; 69 | toReturn.matrix[i * 4 + 2] = matrix->matrix[8 + i]; 70 | toReturn.matrix[i * 4 + 3] = matrix->matrix[12 + i]; 71 | } 72 | 73 | return &toReturn; 74 | }; 75 | 76 | auto getTimerClass() { 77 | return reinterpret_cast((uintptr_t)(this) + 0xC0); 78 | }; 79 | 80 | auto getLoopbackSender() { 81 | return reinterpret_cast((uintptr_t)(this) + 0xE0); 82 | }; 83 | 84 | auto getMcGame() { 85 | return reinterpret_cast((uintptr_t)(this) + 0xA8); 86 | }; 87 | 88 | auto getFov() { 89 | return Vector2(*getFovX(), *getFovY()); 90 | }; 91 | 92 | auto getEntityList() { 93 | std::map cleanMap = std::map(); 94 | 95 | int i = 0; 96 | for (auto ent : entityList) { 97 | if (ent.second == nullptr) continue; // skip nullptr entities 98 | cleanMap[i] = ent.second; 99 | i++; 100 | } 101 | 102 | return cleanMap; 103 | }; 104 | 105 | Actor* getCPlayer() { 106 | if (getLocalPlayer() == nullptr) 107 | return nullptr; 108 | return getLocalPlayer(); 109 | }; 110 | 111 | __forceinline float transformx(const Vector3& p) { // I think minecraft corrected the GLMatrix wtf 112 | auto matrix = getMatrixCorrection()->matrix; 113 | return p.x * matrix[0] + p.y * matrix[4] + p.z * matrix[8] + matrix[12]; 114 | } 115 | 116 | __forceinline float transformy(const Vector3& p) { 117 | auto matrix = getMatrixCorrection()->matrix; 118 | return p.x * matrix[1] + p.y * matrix[5] + p.z * matrix[9] + matrix[13]; 119 | } 120 | 121 | __forceinline float transformz(const Vector3& p) { // std::shared_ptr(getMatrixCorrection()); 122 | auto matrix = getMatrixCorrection()->matrix; 123 | return p.x * matrix[2] + p.y * matrix[6] + p.z * matrix[10] + matrix[14]; 124 | } 125 | 126 | inline bool WorldToScreen(Vector3 origin, Vector3 pos, Vector2& screen, Vector2 fov, Vector2 displaySize) { 127 | pos.x -= origin.x; 128 | pos.y -= origin.y; 129 | pos.z -= origin.z; 130 | 131 | float x = transformx(pos); 132 | float y = transformy(pos); 133 | float z = transformz(pos); 134 | 135 | if (z > 0) return false; 136 | 137 | float mX = (float)displaySize.x / 2.0F; 138 | float mY = (float)displaySize.y / 2.0F; 139 | 140 | screen.x = mX + (mX * x / -z * fov.x); 141 | screen.y = mY - (mY * y / -z * fov.y); 142 | 143 | return true; 144 | } 145 | 146 | auto isInGame() { 147 | return getGuiData()->windowData->inWorld; 148 | }; 149 | 150 | private: 151 | virtual void Function0(); // 152 | virtual void Function1(); // 153 | virtual void Function2(); // 154 | virtual void Function3(); // 155 | virtual void Function4(); // 156 | virtual void Function5(); // 157 | virtual void Function6(); // 158 | virtual void Function7(); // 159 | virtual void Function8(); // 160 | public: 161 | virtual void requestLeaveGame(bool, bool); //9 (10) 162 | virtual void stopPlayScreen(); //10 (11) 163 | private: 164 | virtual void Function11(); // 165 | public: 166 | virtual void setupPlayScreenForLeaveGame(); //12 (13) 167 | private: 168 | virtual void Function13(); // 169 | virtual void Function14(); // 170 | virtual void Function15(); // 171 | virtual void Function16(); // 172 | virtual void Function17(); // 173 | virtual void Function18(); // 174 | virtual void Function19(); // 175 | virtual void Function20(); // 176 | virtual void Function21(); // 177 | virtual void Function22(); // 178 | virtual void Function23(); // 179 | virtual void Function24(); // 180 | virtual void Function25(); // 181 | virtual void Function26(); // 182 | virtual void Function27(); // 183 | virtual void Function28(); // 184 | virtual void Function29(); // 185 | virtual void Function30(); // 186 | virtual void Function31(); // 187 | virtual void Function32(); // 188 | virtual void Function33(); // 189 | virtual void Function34(); // 190 | virtual void Function35(); // 191 | virtual void Function36(); // 192 | virtual void Function37(); // 193 | virtual void Function38(); // 194 | virtual void Function39(); // 195 | virtual void Function40(); // 196 | virtual void Function41(); // 197 | virtual void Function42(); // 198 | virtual void Function43(); // 199 | virtual void Function44(); // 200 | virtual void Function45(); // 201 | virtual void Function46(); // 202 | virtual void Function47(); // 203 | virtual void Function48(); // 204 | virtual void Function49(); // 205 | virtual void Function50(); // 206 | virtual void Function51(); // 207 | virtual void Function52(); // 208 | virtual void Function53(); // 209 | virtual void Function54(); // 210 | virtual void Function55(); // 211 | virtual void Function56(); // 212 | virtual void Function57(); // 213 | virtual void Function58(); // 214 | virtual void Function59(); // 215 | virtual void Function60(); // 216 | virtual void Function61(); // 217 | virtual void Function62(); // 218 | virtual void Function63(); // 219 | virtual void Function64(); // 220 | virtual void Function65(); // 221 | virtual void Function66(); // 222 | virtual void Function67(); // 223 | virtual void Function68(); // 224 | virtual void Function69(); // 225 | virtual void Function70(); // 226 | virtual void Function71(); // 227 | virtual void Function72(); // 228 | virtual void Function73(); // 229 | virtual void Function74(); // 230 | virtual void Function75(); // 231 | virtual void Function76(); // 232 | virtual void Function77(); // 233 | virtual void Function78(); // 234 | virtual void Function79(); // 235 | virtual void Function80(); // 236 | virtual void Function81(); // 237 | virtual void Function82(); // 238 | virtual void Function83(); // 239 | virtual void Function84(); // 240 | virtual void Function85(); // 241 | virtual void Function86(); // 242 | virtual void Function87(); // 243 | virtual void Function88(); // 244 | virtual void Function89(); // 245 | virtual void Function90(); // 246 | virtual void Function91(); // 247 | virtual void Function92(); // 248 | virtual void Function93(); // 249 | virtual void Function94(); // 250 | virtual void Function95(); // 251 | virtual void Function96(); // 252 | virtual void Function97(); // 253 | virtual void Function98(); // 254 | virtual void Function99(); // 255 | virtual void Function100(); // 256 | virtual void Function101(); // 257 | virtual void Function102(); // 258 | virtual void Function103(); // 259 | virtual void Function104(); // 260 | virtual void Function105(); // 261 | virtual void Function106(); // 262 | virtual void Function107(); // 263 | virtual void Function108(); // 264 | virtual void Function109(); // 265 | virtual void Function110(); // 266 | virtual void Function111(); // 267 | virtual void Function112(); // 268 | virtual void Function113(); // 269 | virtual void Function114(); // 270 | virtual void Function115(); // 271 | virtual void Function116(); // 272 | virtual void Function117(); // 273 | virtual void Function118(); // 274 | virtual void Function119(); // 275 | virtual void Function120(); // 276 | virtual void Function121(); // 277 | virtual void Function122(); // 278 | virtual void Function123(); // 279 | virtual void Function124(); // 280 | virtual void Function125(); // 281 | virtual void Function126(); // 282 | virtual void Function127(); // 283 | virtual void Function128(); // 284 | virtual void Function129(); // 285 | virtual void Function130(); // 286 | virtual void Function131(); // 287 | virtual void Function132(); // 288 | virtual void Function133(); // 289 | virtual void Function134(); // 290 | virtual void Function135(); // 291 | virtual void Function136(); // 292 | virtual void Function137(); // 293 | virtual void Function138(); // 294 | virtual void Function139(); // 295 | virtual void Function140(); // 296 | virtual void Function141(); // 297 | virtual void Function142(); // 298 | virtual void Function143(); // 299 | virtual void Function144(); // 300 | virtual void Function145(); // 301 | virtual void Function146(); // 302 | virtual void Function147(); // 303 | virtual void Function148(); // 304 | virtual void Function149(); // 305 | virtual void Function150(); // 306 | virtual void Function151(); // 307 | virtual void Function152(); // 308 | virtual void Function153(); // 309 | virtual void Function154(); // 310 | virtual void Function155(); // 311 | virtual void Function156(); // 312 | virtual void Function157(); // 313 | virtual void Function158(); // 314 | virtual void Function159(); // 315 | virtual void Function160(); // 316 | virtual void Function161(); // 317 | virtual void Function162(); // 318 | virtual void Function163(); // 319 | virtual void Function164(); // 320 | virtual void Function165(); // 321 | virtual void Function166(); // 322 | virtual void Function167(); // 323 | virtual void Function168(); // 324 | virtual void Function169(); // 325 | virtual void Function170(); // 326 | virtual void Function171(); // 327 | virtual void Function172(); // 328 | virtual void Function173(); // 329 | virtual void Function174(); // 330 | virtual void Function175(); // 331 | virtual void Function176(); // 332 | virtual void Function177(); // 333 | virtual void Function178(); // 334 | virtual void Function179(); // 335 | virtual void Function180(); // 336 | virtual void Function181(); // 337 | virtual void Function182(); // 338 | virtual void Function183(); // 339 | virtual void Function184(); // 340 | virtual void Function185(); // 341 | virtual void Function186(); // 342 | virtual void Function187(); // 343 | virtual void Function188(); // 344 | virtual void Function189(); // 345 | virtual void Function190(); // 346 | virtual void Function191(); // 347 | virtual void Function192(); // 348 | virtual void Function193(); // 349 | virtual void Function194(); // 350 | virtual void Function195(); // 351 | virtual void Function196(); // 352 | virtual void Function197(); // 353 | virtual void Function198(); // 354 | virtual void Function199(); // 355 | virtual void Function200(); // 356 | virtual void Function201(); // 357 | virtual void Function202(); // 358 | virtual void Function203(); // 359 | virtual void Function204(); // 360 | virtual void Function205(); // 361 | virtual void Function206(); // 362 | virtual void Function207(); // 363 | virtual void Function208(); // 364 | virtual void Function209(); // 365 | virtual void Function210(); // 366 | virtual void Function211(); // 367 | virtual void Function212(); // 368 | virtual void Function213(); // 369 | virtual void Function214(); // 370 | virtual void Function215(); // 371 | virtual void Function216(); // 372 | virtual void Function217(); // 373 | virtual void Function218(); // 374 | virtual void Function219(); // 375 | virtual void Function220(); // 376 | virtual void Function221(); // 377 | virtual void Function222(); // 378 | virtual void Function223(); // 379 | virtual void Function224(); // 380 | virtual void Function225(); // 381 | virtual void Function226(); // 382 | virtual void Function227(); // 383 | virtual void Function228(); // 384 | virtual void Function229(); // 385 | virtual void Function230(); // 386 | virtual void Function231(); // 387 | virtual void Function232(); // 388 | virtual void Function233(); // 389 | virtual void Function234(); // 390 | virtual void Function235(); // 391 | virtual void Function236(); // 392 | virtual void Function237(); // 393 | virtual void Function238(); // 394 | virtual void Function239(); // 395 | virtual void Function240(); // 396 | virtual void Function241(); // 397 | virtual void Function242(); // 398 | virtual void Function243(); // 399 | virtual void Function244(); // 400 | virtual void Function245(); // 401 | virtual void Function246(); // 402 | virtual void Function247(); // 403 | virtual void Function248(); // 404 | virtual void Function249(); // 405 | virtual void Function250(); // 406 | virtual void Function251(); // 407 | virtual void Function252(); // 408 | virtual void Function253(); // 409 | virtual void Function254(); // 410 | virtual void Function255(); // 411 | virtual void Function256(); // 412 | virtual void Function257(); // 413 | virtual void Function258(); // 414 | virtual void Function259(); // 415 | virtual void Function260(); // 416 | virtual void Function261(); // 417 | virtual void Function262(); // 418 | virtual void Function263(); // 419 | virtual void Function264(); // 420 | virtual void Function265(); // 421 | virtual void Function266(); // 422 | virtual void Function267(); // 423 | virtual void Function268(); // 424 | virtual void Function269(); // 425 | virtual void Function270(); // 426 | public: 427 | virtual void releaseMouse(); //271 (272) 428 | virtual void grabMouse(); //272 (273) 429 | virtual void refocusMouse(); //273 (274) 430 | }; 431 | -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/Dimension.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "Weather.h" 5 | #include "Packet/Packet.h" 6 | 7 | class Dimension { 8 | private: 9 | virtual void TryroFunc1(); 10 | virtual void TryroFunc2(); 11 | virtual void TryroFunc3(); 12 | virtual void TryroFunc4(); 13 | public: 14 | virtual void onSourceCreated(class BlockSource&); 15 | virtual void onSourceDestroyed(class BlockSource&); 16 | virtual void onAreaChanged(class BlockSource&, class BlockPos const&, class BlockPos const&); 17 | virtual void onBlockChanged(class BlockSource&, class BlockPos const&, class uint, class Block const&, class Block const&, int, class ActorBlockSyncMessage const*, class BlockChangedEventTarget); 18 | virtual void onBrightnessChanged(class BlockSource&, class BlockPos const&); 19 | virtual void onBlockEntityChanged(class BlockSource&, class BlockActor&); 20 | virtual void onBlockEntityAboutToBeRemoved(); //removed 21 | virtual void onEntityChanged(class BlockSource&, class Actor&); 22 | virtual void onBlockEvent(class BlockSource&, int, int, int, int, int); 23 | virtual void allChanged(void); 24 | virtual void addParticle(class ParticleType, Vector3 const&, Vector3 const&, int, class CompoundTag const*, bool); 25 | virtual void sendServerLegacyParticle(ParticleType, Vector3 const&, Vector3 const&, int); 26 | virtual void addParticleEffect(class HashedString const&, Vector3 const&, class MolangVariableMap const&); 27 | virtual void addParticleEffect(class HashedString const&, class Actor const&, class HashedString const&, Vector3 const&, class MolangVariableMap const&); 28 | virtual void addTerrainParticleEffect(BlockPos const&, Block const&, Vector3 const&, float, float, float); 29 | virtual void addTerrainSlideEffect(BlockPos const&, Block const&, Vector3 const&, float, float, float); 30 | virtual void addBreakingItemParticleEffect(Vector3 const&, ParticleType, class TextureUVCoordinateSet const&, bool); 31 | virtual void playMusic(std::basic_string, std::allocator> const&, Vector3 const&, float, float); 32 | virtual void playStreamingMusic(std::basic_string, std::allocator> const&, int, int, int); 33 | virtual void onEntityAdded(class Actor&); 34 | virtual void onEntityRemoved(class Actor&); 35 | virtual void onChunkLoaded(class ChunkSource&, class LevelChunk&); 36 | virtual void onSubChunkLoaded(class ChunkSource&, class LevelChunk&, short); 37 | virtual void onChunkUnloaded(class LevelChunk&); 38 | virtual void onLevelDestruction(std::basic_string, std::allocator> const&); 39 | virtual void levelEvent(class LevelEvent, Vector3 const&, int); 40 | virtual void levelEvent(class LevelEvent, CompoundTag const&); 41 | virtual void levelSoundEvent(class LevelSoundEvent, Vector3 const&, int, class ActorDefinitionIdentifier const&, bool, bool); 42 | virtual void levelSoundEvent(std::basic_string, std::allocator> const&, Vector3 const&, float, float); 43 | virtual void stopSoundEvent(std::basic_string, std::allocator> const&); 44 | virtual void stopAllSounds(void); 45 | virtual void takePicture(); //removed 46 | virtual void playerListChanged(void); 47 | virtual void init(void); 48 | virtual void tick(void); 49 | virtual void tickRedstone(void); 50 | private: 51 | virtual void TryroFunc41(); 52 | virtual void TryroFunc42(); 53 | virtual void TryroFunc43(); 54 | public: 55 | virtual bool isNaturalDimension(void); 56 | virtual bool isValidSpawn(int, int); 57 | virtual float getBrightnessDependentFogColor(); //removed 58 | virtual bool isFoggyAt(int, int); 59 | virtual int getCloudHeight(void); 60 | virtual int getDefaultBiome(void); 61 | virtual void mayRespawnViaBed(void); 62 | virtual void hasGround(void); 63 | virtual int getSpawnPos(void); 64 | virtual int getSpawnYPosition(void); 65 | virtual void hasBedrockFog(void); 66 | virtual int getClearColorScale(void); 67 | virtual void showSky(void); 68 | virtual bool isDay(void); 69 | virtual float getSunIntensity(float, Vector3 const&, float); 70 | virtual void forceCheckAllNeighChunkSavedStat(void); 71 | private: 72 | virtual void TryroFunc60(); 73 | public: 74 | virtual void deserialize(class CompoundTag const&); 75 | virtual void serialize(class CompoundTag&); 76 | virtual void sendBroadcast(class Packet const&, class Player*); 77 | virtual bool is2DPositionRelevantForPlayer(class BlockPos const&, class Player&); 78 | virtual bool isActorRelevantForPlayer(class Player&, class Actor const&); 79 | virtual int getLightTextureImageBuilder(void); 80 | virtual int getBrightnessRamp(void); 81 | virtual void startLeaveGame(void); 82 | virtual float getTimeOfDay(int, float); 83 | virtual void _createChunkBuildOrderPolicy(void); 84 | 85 | private: 86 | char pad_0x0000[0x18]; //0x0000 87 | public: 88 | std::string DimenstionName; //0x0034 89 | private: 90 | char pad_0x0038[0xD8]; //0x0038 91 | public: 92 | Weather* weather; //0x0110 93 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/GLMatrix.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct GLMatrix { 4 | public: 5 | float matrix[16]; 6 | float matrix_nest[4][4]; // nested because im compensating :slight_smile: (Just as hard as all the other clientndevelopers ovs) 7 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/GameMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class GameMode { 4 | public: 5 | class Actor* actorPtr; //0x0008 6 | private: 7 | virtual __int64 Destructor(); 8 | public: 9 | virtual __int64 startDestroyBlock(struct Vector3i const& pos, unsigned char blockSide, bool& isDestroyedOut); 10 | virtual __int64 destroyBlock(struct Vector3i*, unsigned char); 11 | virtual __int64 continueDestroyBlock(struct Vector3i const&, unsigned char blockSide, bool& isDestroyedOut); 12 | virtual __int64 stopDestroyBlock(struct Vector3i const&); 13 | virtual __int64 startBuildBlock(struct Vector3i const&, unsigned char); 14 | virtual void buildBlock(struct Vector3i*, unsigned char); 15 | virtual __int64 continueBuildBlock(struct Vector3i const&, unsigned char); 16 | virtual __int64 stopBuildBlock(void); 17 | virtual __int64 tick(void); 18 | virtual float getPickRange(); 19 | virtual __int64 useItem(); 20 | virtual __int64 useItemOn(); 21 | virtual __int64 interact(Actor*, struct Vector3*); 22 | virtual __int64 attack(Actor*); 23 | virtual __int64 releaseUsingItem(); 24 | virtual __int64 setTrialMode(bool); 25 | virtual bool isInTrialMode(void); 26 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/GuiData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../Utils/Math.h" 4 | 5 | class WindowData 6 | { 7 | private: 8 | char pad_0x0000[0x1F0]; //0x0000 9 | public: 10 | Vector2 renderWindow; //0x01F0 11 | private: 12 | char pad_0x01F8[0x260]; //0x01F8 13 | public: 14 | Vector2 mousePos; //0x0458 15 | private: 16 | char pad_0x0460[0x54C]; //0x0460 17 | public: 18 | __int8 inWorld; //0x09AC 19 | }; 20 | 21 | class GuiData { 22 | private: 23 | char pad_0x0000[0x18]; //0x0000 24 | public: 25 | Vector2 resolution; //0x0018 26 | Vector2 resolution2; //0x0020 27 | Vector2 scaledResolution; //0x0028 28 | private: 29 | char pad_0x0030[0x8]; //0x0030 30 | public: 31 | float guiScale; //0x0034 32 | private: 33 | char pad_0x004A[0x16]; //0x004A 34 | public: 35 | short MouseX; //0x0052 36 | short MouseY; //0x0054 37 | __int8 IsInGame; //0x0056 38 | private: 39 | char pad_0x0057[0x19]; //0x0057 40 | public: 41 | WindowData* windowData; //0x0070 42 | private: 43 | char pad_0x0078[0xA0]; //0x0078 44 | public: 45 | __int32 gameTicks; //0x0118 46 | 47 | public: 48 | Vector2 scaledMousePos() { 49 | return Vector2((this->MouseX) * this->guiScale, (this->MouseY) * this->guiScale); 50 | }; 51 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/KeyInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | class KeyInfo { 3 | private: 4 | char pad_0x0000[0x50]; //0x0000 5 | public: 6 | union { 7 | struct { 8 | bool leftClickDown; //0x0050 9 | bool rightClickDown; //0x0051 10 | bool wheelDown; 11 | }; 12 | bool clickMap[3]; 13 | }; 14 | }; 15 | KeyInfo* mouse; 16 | bool isRightClickDown() { 17 | if (mouse == 0) 18 | return false; 19 | return mouse->rightClickDown; 20 | } 21 | 22 | bool isLeftClickDown() { 23 | if (mouse == 0) 24 | return false; 25 | return mouse->leftClickDown; 26 | } 27 | 28 | bool isWheelDown() { 29 | if (mouse == 0) 30 | return false; 31 | return mouse->wheelDown; 32 | } -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/LevelRender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LevelRender { 4 | public: 5 | Vector3 getOrigin() { 6 | return *reinterpret_cast((uintptr_t)this + 0x878); 7 | } 8 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/LoopbackPacketSender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Packet/Packet.h" 3 | #include 4 | 5 | class LoopbackPacketSender { 6 | public: 7 | virtual void Destructor(); 8 | virtual void send(Packet&); 9 | virtual void sendToServer(Packet&); 10 | virtual void sendToClient(class UserEntityIdentifierComponent const*, Packet const&); 11 | virtual void sendToClient(class NetworkIdentifier const&, Packet const&, struct uchar); 12 | virtual void sendToClients(std::vector const&, Packet const&); 13 | virtual void sendBroadcast(Packet const&); 14 | virtual void sendBroadcast(NetworkIdentifier const&, uchar, Packet const&); 15 | virtual void flush(NetworkIdentifier const&, __int64);//Could potentially not work properly 16 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/MinecraftGame.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../Utils/Math.h" 4 | 5 | struct FontRepos { // FontRepos 6 | private: 7 | char pad_0x000[0x28]; //0x0000 8 | public: 9 | 10 | struct FontList { // FontRepos > FontList 11 | public: 12 | //class BitmapFont* fontEntries[7]; 13 | 14 | struct FontEntry { // FontRepos > FontList > FontEntriesOption(FontEntry) 15 | public: 16 | class BitmapFont* font; //0x0000 17 | } 18 | fontEntries[7]; //0x0000 19 | 20 | }* fontList; //0x0028 21 | 22 | }; 23 | 24 | class MinecraftGame 25 | { 26 | private: 27 | char pad_0x0000[0xF8]; //0x0000 28 | public: 29 | FontRepos* fontRepos; //0x00F8 30 | private: 31 | char pad_0x0100[0x8]; //0x0100 32 | public: 33 | class BitmapFont* defaultGameFont; //0x0108 34 | private: 35 | char pad_0x0110[0x38]; //0x0110 36 | public: 37 | class BitmapFont* font2; //0x0148 38 | private: 39 | char pad_0x0150[0x38]; //0x0150 40 | public: 41 | class BitmapFont* invisGameFont; //0x0188 42 | private: 43 | char pad_0x042069; //lol idk how this works lmfao 44 | public: 45 | class BitmapFont* defaultgameFont2; //idk, but it works lmfao 46 | 47 | auto canUseKeys() { 48 | return *reinterpret_cast((uintptr_t)(this) + 0x300); 49 | }; 50 | }; // 0x110 51 | -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/MinecraftUIRenderContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "../Utils/Math.h" 5 | #include "TextHolder.h" 6 | 7 | // 48 8B C4 48 89 58 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ? ? ? ? 48 81 EC ? ? ? ? 0F 29 70 B8 0F 29 78 A8 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 4C 8B FA 48 89 54 24 ? 4C 8B 8 | 9 | class NinesliceInfo { // how the fuck did onix find what goes in this 10 | private: 11 | char pad_0x0000[0xFF]; //0x0000 12 | }; 13 | 14 | class MinecraftUIRenderContext { 15 | private: 16 | virtual auto Constructor() -> void {}; 17 | public: 18 | virtual float getLineLength(class BitmapFont* font, TextHolder* text, float textSize); 19 | virtual float getTextAlpha(); 20 | virtual auto setTextAlpha(float alpha) -> void {}; 21 | virtual auto drawDebugText(const float* pos, TextHolder* text, float* color, float alpha, unsigned int textAlignment, const float* textMeasureData, const void* caretMeasureData) -> void {}; 22 | virtual auto drawText(class BitmapFont* font, Rect* position, TextHolder* text, _RGB colour, float alpha, unsigned int* textAlignment, const float* textMeasureData, const CaretMeasureData* caretMeasureData) -> void {}; 23 | virtual auto flushText(float timeSinceLastFlush) -> void {}; 24 | virtual auto drawImage(class TexturePtr* const& texture, Rect _1, Rect _2, Rect _3, Rect _4) -> void {}; 25 | virtual auto drawNineslice(class TexturePtr* const& texturePtr, NinesliceInfo NinesliceInfo) -> void {}; 26 | virtual auto flushImages(float timeSinceLastFlush) -> void {}; 27 | virtual auto beginSharedMeshBatch(uintptr_t ComponentRenderBatch) -> void {}; 28 | virtual auto endSharedMeshBatch(float timeSinceLastFlush) -> void {}; 29 | virtual auto drawRectangle(Rect position, _RGB colour, float alpha, int lineWidth) -> void {}; 30 | virtual auto fillRectangle(Rect position, _RGB colour, float alpha) -> void {}; 31 | virtual auto increaseStencilRef() -> void {}; 32 | virtual auto decreaseStencilRef() -> void {}; 33 | virtual auto resetStencilRef() -> void {}; 34 | virtual auto fillRectangleStencil(Rect position) -> void {}; 35 | virtual auto enableScissorTest(Rect position) -> void {}; 36 | virtual auto disableScissorTest() -> void {}; 37 | virtual auto setClippingRectangle(Rect position) -> void {}; 38 | virtual auto setFullClippingRectangle() -> void {}; 39 | virtual auto saveCurrentClippingRectangle() -> void {}; 40 | virtual auto restoreSavedClippingRectangle() -> void {}; 41 | virtual auto getFullClippingRectangle() -> int {}; 42 | virtual auto updateCustom(uintptr_t a1) -> void {}; 43 | virtual auto renderCustom(uintptr_t a1, int a2, Rect position) -> void {}; 44 | virtual auto cleanup() -> void {}; 45 | virtual auto removePersistentMeshes() -> void {}; 46 | virtual auto getTexture(class TexturePtr* ResourceLocation, bool a2) -> int {}; 47 | virtual auto getZippedTexture(class TexturePtr* Path, class TexturePtr* ResourceLocation, bool a3) -> int {}; 48 | virtual auto unloadTexture(class TexturePtr* ResourceLocation) -> void {}; 49 | virtual auto getUITextureInfo(class TexturePtr* ResourceLocation, bool a2) -> int {}; 50 | virtual auto touchTexture(class TexturePtr* ResourceLocation) -> void {}; 51 | virtual auto getMeasureStrategy(Vector2 const&) -> int {}; 52 | virtual auto snapImageSizeToGrid(Vector2 const&) -> void {}; 53 | virtual auto snapImagePositionToGrid(Vector2 const&) -> void {}; 54 | virtual auto notifyImageEstimate(ULONG) -> void {}; 55 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/Packet/Packet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../TextHolder.h" 3 | class Packet { 4 | private: 5 | virtual void packetConstructor(void) {}; 6 | public: 7 | virtual int getId(void) { return 0x0; }; 8 | virtual class TextHolder getTypeName(void) { return (class TextHolder)nullptr; }; 9 | virtual void write(class BinaryStream&) {}; 10 | virtual void read(class ReadOnlyBinaryStream&) {}; 11 | virtual void readExtended(class ReadOnlyBinaryStream&) {}; 12 | virtual void disallowBatching(void) {}; 13 | 14 | // Returns packet name e.g "MovePlayerPacket" 15 | std::string getName() 16 | { 17 | return this->getTypeName().getText(); 18 | } 19 | 20 | // Set vTable 21 | void setVTable(uint64_t vtable) 22 | { 23 | *(uint64_t*)(reinterpret_cast(this) + 0x0) = vtable; 24 | } 25 | 26 | // Returns vTable 27 | uint64_t getVTable() 28 | { 29 | return *(uint64_t*)(reinterpret_cast(this) + 0x0); 30 | } 31 | }; 32 | 33 | //Still working on currently 34 | class PlayerAuthInputPacket { 35 | public: 36 | uint64_t VTable; 37 | uint64_t num4294967298; 38 | char padThingy[32]; 39 | Vector2 bodyRot; 40 | Vector3 position; 41 | float headYaw; 42 | Vector3 velocity; 43 | float InputAD; // 1 for A, -1 for D, multiply by sqrt(2)/2 if mixed with InputWS 44 | float InputWS; // 1 for W, -1 for S, multiply by sqrt(2)/2 if mixed with InputAD 45 | uint8_t epicpad[12]; 46 | uint32_t inputKeys; 47 | int zero; 48 | int one; 49 | int two; 50 | int counter; 51 | 52 | PlayerAuthInputPacket(Actor* Player, Vector3 position, Vector2 bodyRot) { 53 | //this->VTable = Minecraft.Windows.exe + 3EB98A8; 54 | for (int i = 0; i < 32; i++) { 55 | this->padThingy[i] = 0; 56 | } 57 | this->num4294967298 = 4294967298; 58 | this->position = position; 59 | this->bodyRot = bodyRot; 60 | this->headYaw = bodyRot.y; 61 | //this->velocity = Player->Velocity; 62 | this->InputAD = 0.f; 63 | this->InputWS = 0.f; 64 | for (int i = 0; i < 12; i++) { 65 | this->epicpad[i] = 0; 66 | } 67 | this->inputKeys = 0; 68 | this->zero = 0; 69 | this->one = 1; 70 | this->two = 2; 71 | this->counter = 0; 72 | } 73 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/RenderContext/DebugNotify.h: -------------------------------------------------------------------------------- 1 | class DebugNotify { 2 | public: 3 | std::string notificationName; 4 | std::string notificationDesc; 5 | float canExistFor = 2; 6 | 7 | float fadeAlpha = 0; 8 | float existedTick = 0; 9 | float yOffset = 25; 10 | 11 | DebugNotify(std::string notificationName, std::string notificationDesc, float canExistFor = 6) { 12 | this->notificationName = notificationName; 13 | this->notificationDesc = notificationDesc; 14 | this->canExistFor = canExistFor; 15 | }; 16 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/TextHolder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class TextHolder { 4 | public: 5 | union { 6 | char inlineText[16]; //0x0000 7 | char* pText; //0x0000 8 | }; 9 | 10 | size_t textLength; //0x0010 11 | size_t alignedTextLength; //0x0018 12 | 13 | TextHolder() { 14 | memset(this, 0, sizeof(TextHolder)); 15 | } 16 | 17 | TextHolder(TextHolder const& copy) { 18 | memset(this, 0, sizeof(TextHolder)); 19 | textLength = copy.textLength; 20 | alignedTextLength = copy.alignedTextLength; 21 | if (copy.textLength < 16) 22 | memcpy(inlineText, copy.inlineText, 16); 23 | else { 24 | size_t size = textLength + 1; 25 | 26 | if (size + 1 >= 0x1000) 27 | size += 8; 28 | 29 | pText = reinterpret_cast(malloc(size + 1)); 30 | alignedTextLength = size; 31 | if (size + 1 >= 0x1000) { 32 | *reinterpret_cast(pText) = pText; 33 | pText += 8; 34 | } 35 | 36 | if (pText != 0x0 && copy.pText != 0x0) { 37 | memcpy(pText, copy.pText, size); 38 | pText[size] = 0; 39 | } 40 | } 41 | } 42 | 43 | TextHolder& operator=(TextHolder const& copy) { 44 | deleteText(); 45 | memset(this, 0, sizeof(TextHolder)); 46 | textLength = copy.textLength; 47 | alignedTextLength = copy.alignedTextLength; 48 | if (copy.textLength < 16) 49 | memcpy(inlineText, copy.inlineText, 16); 50 | else { 51 | size_t size = textLength + 1; 52 | 53 | if (size + 1 >= 0x1000) 54 | size += 8; 55 | 56 | pText = reinterpret_cast(malloc(size + 1)); 57 | alignedTextLength = size; 58 | if (size + 1 >= 0x1000) { 59 | *reinterpret_cast(pText) = pText; 60 | pText += 8; 61 | } 62 | 63 | if (pText != 0x0 && copy.pText != 0x0) { 64 | memcpy(pText, copy.pText, textLength); 65 | pText[textLength] = 0; 66 | } 67 | } 68 | return *this; 69 | } 70 | 71 | TextHolder(std::string str) { 72 | memset(this, 0, sizeof(TextHolder)); 73 | textLength = str.size(); 74 | alignedTextLength = textLength | 0xF; 75 | if (str.size() < 16) { 76 | memcpy(inlineText, str.c_str(), str.size()); 77 | if (str.size() < 15) 78 | inlineText[str.size()] = 0; 79 | } 80 | else { 81 | size_t size = str.size(); 82 | if (size + 1 >= 0x1000) 83 | size += 8; 84 | 85 | pText = reinterpret_cast(malloc(size + 1)); 86 | alignedTextLength = size; 87 | if (size + 1 >= 0x1000) { 88 | *reinterpret_cast(pText) = pText; 89 | pText += 8; 90 | } 91 | 92 | if (pText != 0x0) { 93 | memcpy(pText, str.c_str(), str.size()); 94 | pText[str.size()] = 0; 95 | } 96 | } 97 | } 98 | 99 | TextHolder(size_t allocSize) { 100 | memset(this, 0, sizeof(TextHolder)); 101 | textLength = 0; 102 | alignedTextLength = allocSize | 0xF; 103 | if (alignedTextLength < 16) { 104 | memset(&inlineText, 0, 16); 105 | } 106 | else { 107 | size_t size = alignedTextLength; 108 | if (size + 1 >= 0x1000) 109 | size += 8; 110 | 111 | pText = reinterpret_cast(malloc(size + 1)); 112 | alignedTextLength = size; 113 | if (size + 1 >= 0x1000) { 114 | *reinterpret_cast(pText) = pText; 115 | 116 | pText += 8; 117 | memset(pText, 0, alignedTextLength - 8); 118 | } 119 | else 120 | memset(pText, 0, alignedTextLength); 121 | } 122 | } 123 | 124 | TextHolder(void* ptr, size_t sizeOfData) { 125 | memset(this, 0, sizeof(TextHolder)); 126 | textLength = sizeOfData; 127 | alignedTextLength = sizeOfData; 128 | if (alignedTextLength < 16) 129 | memcpy(inlineText, ptr, sizeOfData); 130 | else 131 | pText = reinterpret_cast(ptr); 132 | } 133 | 134 | void deleteText() { 135 | if (alignedTextLength >= 16 && pText != nullptr) { 136 | if (alignedTextLength + 1 >= 0x1000) { 137 | pText = *reinterpret_cast(reinterpret_cast<__int64>(pText) - 8); 138 | } 139 | free(pText); 140 | } 141 | } 142 | 143 | ~TextHolder() { 144 | this->deleteText(); 145 | } 146 | 147 | char* getText() { 148 | if (alignedTextLength < 16) 149 | return this->inlineText; 150 | else 151 | return this->pText; 152 | } 153 | 154 | size_t getTextLength() { 155 | return textLength; 156 | } 157 | 158 | void setText(std::string str) { 159 | this->deleteText(); 160 | memset(this, 0, sizeof(TextHolder)); 161 | textLength = str.size(); 162 | alignedTextLength = textLength | 0xF; 163 | if (str.size() < 16) { 164 | memcpy(inlineText, str.c_str(), str.size()); 165 | if (str.size() < 15) 166 | inlineText[str.size()] = 0; 167 | } 168 | else { 169 | size_t size = str.size(); 170 | if (size + 1 >= 0x1000) 171 | size += 8; 172 | 173 | pText = reinterpret_cast(malloc(size + 1)); 174 | alignedTextLength = size; 175 | if (size + 1 >= 0x1000) { 176 | *reinterpret_cast(pText) = pText; 177 | pText += 8; 178 | } 179 | 180 | if (pText != 0x0) { 181 | memcpy(pText, str.c_str(), str.size()); 182 | pText[str.size()] = 0; 183 | } 184 | } 185 | } 186 | 187 | void resetWithoutDelete() { 188 | memset(this, 0, sizeof(TextHolder)); 189 | } 190 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/SDK/Weather.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Weather { 4 | public: 5 | virtual void Destructor(); 6 | virtual void onSourceCreated(class BlockSource&); 7 | virtual void onSourceDestroyed(BlockSource&); 8 | virtual void onAreaChanged(BlockSource&, class BlockPos const&, BlockPos const&); 9 | virtual void onBlockChanged(BlockSource&, BlockPos const&, struct uint, class Block const&, Block const&, int, class ActorBlockSyncMessage const*, class BlockChangedEventTarget); 10 | virtual void onBrightnessChanged(BlockSource&, BlockPos const&); 11 | virtual void onBlockEntityChanged(BlockSource&, class BlockActor&); 12 | virtual void onBlockEntityAboutToBeRemoved(BlockSource&, __int64);//Could be broke 13 | virtual void onEntityChanged(BlockSource&, Actor&); 14 | virtual void onBlockEvent(BlockSource&, int, int, int, int, int); 15 | virtual void allChanged(void); 16 | virtual void addParticle(class ParticleType, Vector3 const&, Vector3 const&, int, class CompoundTag const*, bool); 17 | virtual void sendServerLegacyParticle(ParticleType, Vector3 const&, Vector3 const&, int); 18 | virtual void addParticleEffect(class HashedString const&, Vector3 const&, class MolangVariableMap const&); 19 | virtual void addParticleEffect(HashedString const&, Actor const&, HashedString const&, Vector3 const&, MolangVariableMap const&); 20 | virtual void addTerrainParticleEffect(BlockPos const&, Block const&, Vector3 const&, float, float, float); 21 | virtual void addTerrainSlideEffect(BlockPos const&, Block const&, Vector3 const&, float, float, float); 22 | virtual void addBreakingItemParticleEffect(Vector3 const&, ParticleType, class TextureUVCoordinateSet const&, bool); 23 | virtual void playMusic(std::basic_string, std::allocator> const&, Vector3 const&, float, float); 24 | virtual void playStreamingMusic(std::basic_string, std::allocator> const&, int, int, int); 25 | virtual void onEntityAdded(Actor&); 26 | virtual void onEntityRemoved(Actor&); 27 | virtual void onChunkLoaded(class ChunkSource&, class LevelChunk&); 28 | virtual void onChunkReloaded(ChunkSource&, LevelChunk&); 29 | virtual void onSubChunkLoaded(ChunkSource&, LevelChunk&, short); 30 | virtual void onChunkUnloaded(LevelChunk&); 31 | virtual void onLevelDestruction(std::basic_string, std::allocator> const&); 32 | virtual void levelEvent(class LevelEvent, Vector3 const&, int); 33 | virtual void levelEvent(LevelEvent, CompoundTag const&); 34 | virtual void levelSoundEvent(class LevelSoundEvent, Vector3 const&, int, struct ActorDefinitionIdentifier const&, bool, bool); 35 | virtual void levelSoundEvent(std::basic_string, std::allocator> const&, Vector3 const&, float, float); 36 | virtual void stopSoundEvent(std::basic_string, std::allocator> const&); 37 | virtual void stopAllSounds(void); 38 | virtual void takePicture(__int64, Actor*, Actor*, class ScreenshotOptions&);//Could be broke 39 | virtual void playerListChanged(void); 40 | 41 | private: 42 | char pad_0x0000[0x38]; //0x0000 43 | public: 44 | bool isRaining; //0x0038 45 | private: 46 | char pad_0x0039[0xB]; //0x0039 47 | public: 48 | bool isLightning; //0x0044 49 | private: 50 | char pad_0x0045[0x3]; //0x0045 51 | public: 52 | float lightningLevel; //0x0048 53 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/UpdateUtils.txt: -------------------------------------------------------------------------------- 1 | Update Order (Sigs First): 2 | RenderContext ( renderCtxAddr ) 3 | Keymap Sig ( keymapAddr ) 4 | ActorHook ( hookAddr ) 5 | ClientInstance ( localPlayerAddr ) 6 | SendChatMsg ( chatMsgSigAddr ) 7 | RenderText ( renderTextAddr ) 8 | Signatures in modules 9 | 10 | How to update: 11 | 1. RenderContext & RenderText { 12 | RenderText: 13 | Go to main menu. 14 | Open Cheat Engine and attach it to your game. 15 | Search Type String. 16 | Go to Realms tab. 17 | Search in CE "Join Realm". 18 | Do find what accesses each result. 19 | If you get one result it is probably the right spot. 20 | Click the result and then click "Show Disassembler" 21 | Then Right Click and click "Select Current Function" 22 | Now double click the spot it brought you to and right "ret" then press ok 23 | Go to your mc and press escape one then go back to realms tab and if there is no more text that is the right render text address. 24 | Make sure you have this plugin (https://www.mediafire.com/file/ca2ue1zsagh6hwe/CESigMaker_[unknowncheats.me]_.dll/file) installed in ce (if you dont I really could care less to explain how to instal it). Right click the address (after you reloaded your game and found it again, if you dont do this it will give u a sig with the ret and nop's which isint good). 25 | Then click "Generate Signature" then click "No". 26 | That should be a working rendertext signature after u capitalize all the non capitalized things. 27 | RenderContext: 28 | **To get this sig you need to have found render text or just use an already existing sig for it** 29 | Open Cheat Engine and attach it to your game. 30 | Select the type as "Array of byte" and turn writable box to grey. 31 | Paste the render text signature in and click "First Scan". 32 | Click on the result and press Ctrl + D. 33 | Copy the first 2 lines of bytes by clicking shift on the second option so the first 2 lines are highlighted. 34 | Then right click and click "Copy to Clipboard -> Bytes Only (No address)" 35 | Paste the copied bytes into the search bar. 36 | Press new scan. 37 | Shift click all the results of Minecraft.Windows.Exe and press the red arrow to copy all selected items to the address list. 38 | Now u must CRTL + D every address one by one and double click where it brings you and click "Select current function" then right and replace with the word "ret" until your game stops rendering. 39 | **Note: There are sometimes more then 1 address that makes your game stop rendering. It is trial and error and u have to try all of em.** 40 | Once you have an address that stops rendering your game, copy the value then reload your game, paste the value in the search bar then first scan (after you reattached CE to your game). 41 | CRTL + D the result and click "Select Current Function" then right click where it brings you, and click "Generate Signature -> No". 42 | And to check if you have a valid Render Context paste it in renderCtxAddr and see if when injecting your game loads the arraylist, clickgui, etc... 43 | 44 | There you go, thats how u find RenderText and RenderContext. 45 | } -------------------------------------------------------------------------------- /InternalMinecraftClient/Utils/Math.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | class Math { 6 | public: 7 | // 8 | }; 9 | 10 | struct Vector2 { 11 | union { 12 | struct { 13 | float x, y; 14 | }; 15 | float arr[2]; 16 | }; 17 | 18 | Vector2(float x = 0, float y = 0) { 19 | this->x = x; this->y = y; 20 | }; 21 | 22 | bool operator == (Vector2 v) { return v.x == x && v.y == y; }; 23 | bool operator != (Vector2 v) { return v.x != x || v.y != y; }; 24 | Vector2 operator *= (Vector2 v) { return Vector2(v.x * x, v.y * y); }; 25 | }; 26 | 27 | struct Vector3 { 28 | union { 29 | struct { 30 | float x, y, z; 31 | }; 32 | float arr[3]; 33 | }; 34 | 35 | Vector3(float x = 0, float y = 0, float z = 0) { 36 | this->x = x; this->y = y; this->z = z; 37 | }; 38 | 39 | bool operator == (Vector3 v) { return v.x == x && v.y == y && v.z == z; }; 40 | bool operator != (Vector3 v) { return v.x != x || v.y != y || v.z != z; }; 41 | Vector3 operator *= (Vector3 v) { return Vector3(v.x * x, v.y * y, v.z * z); }; 42 | 43 | Vector3 lerp(const Vector3& pos, float x1, float y1, float z1) { 44 | Vector3 This; 45 | This.x = x + x1 * (pos.x - x); 46 | This.y = y + y1 * (pos.y - y); 47 | This.z = z + z1 * (pos.z - z); 48 | return This; 49 | } 50 | float Distance(Vector3 v) { 51 | float dX = x - v.x; 52 | float dY = y - v.y; 53 | float dZ = z - v.z; 54 | return std::sqrt(dX * dX + dY * dY + dZ * dZ); 55 | } 56 | }; 57 | 58 | struct Rect { 59 | union 60 | { 61 | struct 62 | { 63 | float x; 64 | float y; 65 | float z; 66 | float w; 67 | }; 68 | float array[4]; 69 | }; 70 | 71 | Rect() 72 | { 73 | this->x = 0; 74 | this->y = 0; 75 | this->z = 0; 76 | this->w = 0; 77 | }; 78 | 79 | Rect(float x, float y, float z, float w) 80 | { 81 | this->x = x; 82 | this->y = y; 83 | this->z = z; 84 | this->w = w; 85 | }; 86 | 87 | }; 88 | 89 | 90 | struct Vector3i { 91 | union { 92 | struct { 93 | int x, y, z; 94 | }; 95 | int arr[3]; 96 | }; 97 | 98 | Vector3i(int x = 0, int y = 0, int z = 0) { 99 | this->x = x; this->y = y; this->z = z; 100 | }; 101 | 102 | bool operator == (Vector3i v) { return v.x == x && v.y == y && v.z == z; }; 103 | bool operator != (Vector3i v) { return v.x != x || v.y != y || v.z != z; }; 104 | }; 105 | 106 | struct AABB { 107 | union { 108 | struct { Vector3 lower, upper; }; 109 | Vector3 arr[2]{}; 110 | }; 111 | 112 | AABB(Vector3 position, Vector3 size) { 113 | this->upper.x = position.x; 114 | this->lower.x = position.x + size.x; 115 | this->upper.y = position.y; 116 | this->lower.y = position.y + size.y; 117 | this->upper.z = position.z; 118 | this->lower.z = position.z + size.z; 119 | }; 120 | }; 121 | 122 | struct _RGB { 123 | union { 124 | struct { float r, g, b, a; }; 125 | float arr[4]{}; 126 | }; 127 | bool shouldDelete = true; 128 | 129 | _RGB() { 130 | this->r = 1; 131 | this->g = 1; 132 | this->b = 1; 133 | this->a = 1; 134 | }; 135 | 136 | _RGB(const _RGB& other) { 137 | this->r = other.r; 138 | this->g = other.g; 139 | this->b = other.b; 140 | this->a = other.a; 141 | this->shouldDelete = other.shouldDelete; 142 | } 143 | 144 | _RGB(const float r, const float g, const float b, const float a = 255) { 145 | this->r = r / 255.0f; 146 | this->g = g / 255.0f; 147 | this->b = b / 255.0f; 148 | this->a = a / 255.0f; 149 | }; 150 | 151 | _RGB(const int r, const int g, const int b, const int a = 255) { 152 | this->r = r / 255.0f; 153 | this->g = g / 255.0f; 154 | this->b = b / 255.0f; 155 | this->a = a / 255.0f; 156 | }; 157 | 158 | _RGB(const float r, const float g, const float b, const float a, const bool shouldDelete) { 159 | this->r = r; 160 | this->g = g; 161 | this->b = b; 162 | this->a = a; 163 | this->shouldDelete = shouldDelete; 164 | }; 165 | }; 166 | 167 | struct CaretMeasureData { 168 | int a; 169 | bool b; 170 | 171 | CaretMeasureData() { 172 | CaretMeasureData(0xFFFFFFFF, true); 173 | }; 174 | CaretMeasureData(int param_1, bool param_2) { 175 | this->a = param_1; 176 | this->b = param_2; 177 | }; 178 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/Utils/RenderUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once* 2 | #include "../SDK/MinecraftUIRenderContext.h" 3 | #include "../Utils/VisualElement.h" 4 | 5 | class RenderUtils 6 | { 7 | public: 8 | MinecraftUIRenderContext* ctx; 9 | GuiData* guiData; 10 | class BitmapFont* font; 11 | class Handle* modHandle; 12 | Vector2 pixelSize = Vector2(1, 1); 13 | 14 | void Init(MinecraftUIRenderContext* ctx, GuiData* guiData, class BitmapFont* font, class Handle* handle) { 15 | this->ctx = ctx; 16 | this->guiData = guiData; 17 | this->font = font; 18 | this->modHandle = handle; 19 | }; 20 | 21 | auto realModHandle() { 22 | return reinterpret_cast(&modHandle); 23 | }; 24 | 25 | auto MeasureText(std::string text, class BitmapFont* font, float scale) { 26 | TextHolder tekts = TextHolder(text); 27 | return ctx->getLineLength(font, &tekts, scale); 28 | }; 29 | 30 | auto MeasureText(std::string text, class BitmapFont* font) { 31 | return this->MeasureText(text, font, 1.0f); 32 | }; 33 | 34 | void Draw(Vector2 position, Vector2 size, _RGB colour) { 35 | if (ctx == nullptr) return; 36 | ctx->fillRectangle(Rect(position.x, position.x + size.x, position.y, position.y + size.y), colour, colour.a); 37 | }; 38 | 39 | void Draw(Rect rectangle, _RGB colour) { 40 | if (ctx == nullptr) return; 41 | ctx->fillRectangle(Rect(rectangle.x, rectangle.z, rectangle.y, rectangle.w), colour, colour.a); 42 | }; 43 | 44 | /*void DrawButton(Vector2 position, Vector2 size, _RGB colour, _RGB hoverColour, _RGB heldColour, Vector2 curMousePos, bool held) { 45 | if (ctx == nullptr) return; 46 | auto rect = Rect(position.x, position.x + size.x, position.y, position.y + size.y); 47 | if (curMousePos.x < rect.x && curMousePos.x > rect.w && curMousePos.y < rect.z && curMousePos.y > rect.y) { 48 | if (!held) ctx->fillRectangle(rect, hoverColour, colour.a); 49 | else ctx->fillRectangle(rect, heldColour, colour.a); 50 | } 51 | else ctx->fillRectangle(rect, colour, colour.a); 52 | };*/ 53 | 54 | bool DrawButtonText(Vector2 position, Vector2 size, _RGB colour, _RGB hoverColour, _RGB heldColour, Vector2 curMousePos, bool held, TextHolder text, class BitmapFont* font) { 55 | return DrawButtonText(position, size, colour, hoverColour, heldColour, curMousePos, held, text, font, 1, Vector2(0, 0)); 56 | }; 57 | 58 | // Returns TRUE if mouse is inside the specified rectangle 59 | bool isMouseInRect(Rect pos, Vector2 mousePos) 60 | { 61 | if (pos.x < mousePos.x && pos.y < mousePos.y && pos.z > mousePos.x && pos.w > mousePos.y) 62 | return true; 63 | return false; 64 | } 65 | 66 | bool DrawButtonText(Vector2 position, Vector2 size, _RGB colour, _RGB hoverColour, _RGB heldColour, Vector2 curMousePos, bool held, TextHolder text, class BitmapFont* font, float scale, Vector2 scaleOffset, bool alwaysHold = false, VisualElement* vElement = nullptr, bool enabled = false) { 67 | if (ctx == nullptr) return false; 68 | 69 | // Values 70 | _RGB color = _RGB(40,40,40,255); 71 | Rect boxRect = Rect(position.x, position.y, position.x + size.x, position.y + size.y); 72 | 73 | // Get if mouse is in box 74 | bool returnValue = isMouseInRect(boxRect, curMousePos); 75 | 76 | // Render 77 | Draw(boxRect, color); 78 | 79 | // Animate 80 | if (vElement != nullptr) 81 | { 82 | vElement->increment(0.00625f, 0.1f, returnValue); 83 | if (vElement->fade >= 0) 84 | Draw(boxRect, _RGB(255.f, 255.f, 255.f, vElement->fade * 255.f)); 85 | } 86 | 87 | // If enabled then glow 88 | if (enabled) 89 | Draw(boxRect, _RGB(255.f, 255.f, 255.f, 50.f)); 90 | 91 | // Render text 92 | DrawString(Vector2(boxRect.x, boxRect.y), _RGB(), text, font); 93 | ctx->flushText(0); 94 | 95 | return returnValue; 96 | }; 97 | 98 | void DrawOutline(Vector2 position, Vector2 size, _RGB colour, float width) { 99 | if (ctx == nullptr) return; 100 | ctx->drawRectangle(Rect(position.x, position.x + size.x, position.y, position.y + size.y), colour, colour.a, (int)width); 101 | }; 102 | 103 | void DrawOutline(Vector2 position, Vector2 size, _RGB colour) { 104 | if (ctx == nullptr) return; 105 | ctx->drawRectangle(Rect(position.x, position.x + size.x, position.y, position.y + size.y), colour, colour.a, (int)(colour.a / 255.0f)); 106 | }; 107 | 108 | void DrawString(Vector2 position, _RGB colour, TextHolder text, class BitmapFont* font) { 109 | DrawString(position, colour, text, font, 1.f); 110 | }; 111 | 112 | auto World2Screen(Vector3 position, Vector2& out) { // fixed w2s 113 | auto level = *clientInst->getLevelRender(); 114 | 115 | return clientInst->WorldToScreen( 116 | level.getOrigin(), 117 | position, 118 | out, 119 | clientInst->getFov(), 120 | guiData->scaledResolution 121 | ); 122 | }; 123 | 124 | void DrawString(Vector2 position, _RGB colour, TextHolder text, class BitmapFont* font, float measureCalc) { 125 | if (ctx == nullptr) return; 126 | auto calc = Rect(position.x, position.x + 1000, position.y, position.y + 1000); 127 | CaretMeasureData measureCalc2 = CaretMeasureData(); 128 | ctx->drawText(font, &calc, &text, colour, colour.a, nullptr, &measureCalc, &measureCalc2); 129 | ctx->flushText(0); 130 | }; 131 | 132 | void FillRectAndDrawRect(Rect pos, _RGB colour1, _RGB colour2, float opacity, float opacity2, float lineWidth) { 133 | ctx->fillRectangle(pos, colour1, opacity); 134 | ctx->drawRectangle(pos, colour2, opacity2, lineWidth); 135 | }; 136 | 137 | void DrawPixel(Vector2 position, _RGB colour) { 138 | Draw(position, pixelSize, colour); 139 | }; 140 | 141 | void DrawLine(Vector2 firstPoint, Vector2 secondPoint, _RGB colour) { 142 | float x = secondPoint.x - firstPoint.x; 143 | float y = secondPoint.y - firstPoint.y; 144 | 145 | float max = std::fmaxf(std::fabs(x), std::fabs(y)); 146 | 147 | x /= max; 148 | y /= max; 149 | 150 | for (int i = 0; i < max; ++i) { // v 151 | Vector2 calcPixel = Vector2(firstPoint.x, firstPoint.y); 152 | DrawPixel(calcPixel, colour); 153 | 154 | firstPoint.x += x; 155 | firstPoint.y += y; 156 | } 157 | }; 158 | 159 | void SetPixelBounds(Vector2 size) { 160 | pixelSize = size; 161 | }; 162 | 163 | void DrawTriangleOutline(Vector2 position, Vector2 size, _RGB colour) { 164 | Vector2 secondPoint = Vector2(); 165 | secondPoint.x = position.x + size.x; 166 | secondPoint.y = position.y + size.y; 167 | 168 | Vector2 middlePoint = Vector2(); 169 | middlePoint.x = position.x + (size.x / 2); 170 | middlePoint.y = position.y + (size.y / 2); 171 | 172 | DrawLine(middlePoint, secondPoint, colour); 173 | DrawLine(middlePoint, Vector2(position.x, secondPoint.y), colour); 174 | DrawLine(secondPoint, Vector2(position.x, secondPoint.y), colour); 175 | }; 176 | 177 | void DrawTriangle(Vector2 position, Vector2 size, _RGB colour) { // insanely ineffective laggy code 178 | Vector2 secondPoint = Vector2(); 179 | secondPoint.x = position.x + size.x; 180 | secondPoint.y = position.y + size.y; 181 | 182 | float x = secondPoint.x - position.x; 183 | float y = secondPoint.y - position.y; 184 | 185 | float max = std::fmaxf(std::fabs(x), std::fabs(y)); 186 | 187 | x /= max; 188 | y /= max; 189 | 190 | for (int i = 0; i < max / 2; ++i) { // v 191 | Vector2 calcPixel = Vector2(position.x, position.y); 192 | Vector2 calcSize = Vector2(size.x - (2 * i), size.y - (2 * i)); 193 | DrawTriangleOutline(calcPixel, calcSize, colour); 194 | 195 | position.x += x; 196 | position.y += y; 197 | } 198 | }; 199 | 200 | // from imgui 201 | static inline float ImFmod(float x, float y) { return fmodf(x, y); } 202 | static inline void hsvToRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b) { 203 | if (s == 0.0f) { 204 | out_r = out_g = out_b = v; 205 | return; 206 | } 207 | h = ImFmod(h, 1.0f) / (60.0f / 360.0f); 208 | int i = (int)h; 209 | float f = h - (float)i; 210 | float p = v * (1.0f - s); 211 | float q = v * (1.0f - s * f); 212 | float t = v * (1.0f - s * (1.0f - f)); 213 | switch (i) { 214 | case 0: 215 | out_r = v; 216 | out_g = t; 217 | out_b = p; 218 | break; 219 | case 1: 220 | out_r = q; 221 | out_g = v; 222 | out_b = p; 223 | break; 224 | case 2: 225 | out_r = p; 226 | out_g = v; 227 | out_b = t; 228 | break; 229 | case 3: 230 | out_r = p; 231 | out_g = q; 232 | out_b = v; 233 | break; 234 | case 4: 235 | out_r = t; 236 | out_g = p; 237 | out_b = v; 238 | break; 239 | case 5: 240 | default: 241 | out_r = v; 242 | out_g = p; 243 | out_b = q; 244 | break; 245 | } 246 | } 247 | 248 | // Returns the current millisecond ( from stack overflow ) 249 | __int64 getCurrentMs() { 250 | FILETIME f; 251 | GetSystemTimeAsFileTime(&f); 252 | (long long)f.dwHighDateTime; 253 | __int64 nano = ((__int64)f.dwHighDateTime << 32LL) + (__int64)f.dwLowDateTime; 254 | return (nano - 116444736000000000LL) / 10000; 255 | } 256 | 257 | // Gets HSV color by current MS 258 | _RGB getRainbow(float speedInSeconds, float s, float v, float red, float green, float blue, float trans) 259 | { 260 | float hue = ((getCurrentMs()) % (int)(((int)speedInSeconds) * 1000)) / (float)(((int)speedInSeconds) * 1000); 261 | float r, g, b = 0; 262 | hsvToRGB(hue, s, v, r, g, b); 263 | return _RGB(r * red, g * green, b * blue, trans); 264 | } 265 | _RGB getRainbow(float speedInSeconds, float s, float v, long index, float red, float green, float blue, float trans) 266 | { 267 | float hue = ((getCurrentMs() + index) % (int)(((int)speedInSeconds) * 1000)) / (float)(((int)speedInSeconds) * 1000); 268 | float r, g, b = 0; 269 | hsvToRGB(hue, s, v, r, g, b); 270 | return _RGB(r * red, g * green, b * blue, trans); 271 | } 272 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/Utils/Utils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #define INRANGE(x,a,b) (x >= a && x <= b) 7 | #define GET_BYTE( x ) (GET_BITS(x[0]) << 4 | GET_BITS(x[1])) 8 | #define GET_BITS( x ) (INRANGE((x&(~0x20)),'A','F') ? ((x&(~0x20)) - 'A' + 0xa) : (INRANGE(x,'0','9') ? x - '0' : 0)) 9 | 10 | class Mem { 11 | public: 12 | static std::vector getAddrPtrPad(uintptr_t addr, int size) { 13 | std::vector padding; 14 | for (int i = 0; i < size; ++i) { 15 | auto byteData = reinterpret_cast(addr + size); 16 | padding.push_back(byteData); 17 | } 18 | return padding; 19 | }; 20 | static std::vector getAddrPad(uintptr_t addr, int size) { 21 | std::vector padding; 22 | for (int i = 0; i < size; ++i) { 23 | auto byteData = *reinterpret_cast(addr + size); 24 | padding.push_back(byteData); 25 | } 26 | return padding; 27 | }; 28 | static std::vector setAddrPad(uintptr_t addr, std::vector replacementCode) { 29 | std::vector padding; 30 | for (int i = 0; i < replacementCode.size(); ++i) { 31 | auto byteData = reinterpret_cast(addr + (i - 1)); 32 | *byteData = replacementCode[i]; 33 | } 34 | return padding; 35 | }; 36 | static void nopAddress(uintptr_t addr, int size) { // its either protected or im stupid 37 | for (int i = 0; i < size; ++i) { 38 | auto byteData = *reinterpret_cast(addr + size); 39 | byteData = 0x90; 40 | } 41 | }; 42 | static void retAddress(const char* sig, int size) { 43 | uintptr_t address = findSig(sig); 44 | for (int i = 0; i < size; ++i) { 45 | auto byteData = *reinterpret_cast(address + size); 46 | byteData = 0xC3; 47 | } 48 | }; 49 | static uintptr_t findSig(const char* sig) { 50 | const char* pattern = sig; 51 | uintptr_t firstMatch = 0; 52 | static const uintptr_t rangeStart = (uintptr_t)GetModuleHandleA("Minecraft.Windows.exe"); 53 | static MODULEINFO miModInfo; 54 | static bool init = false; 55 | if (!init) { 56 | init = true; 57 | GetModuleInformation(GetCurrentProcess(), (HMODULE)rangeStart, &miModInfo, sizeof(MODULEINFO)); 58 | } 59 | static const uintptr_t rangeEnd = rangeStart + miModInfo.SizeOfImage; 60 | 61 | BYTE patByte = GET_BYTE(pattern); 62 | const char* oldPat = pattern; 63 | 64 | for (uintptr_t pCur = rangeStart; pCur < rangeEnd; pCur++) { 65 | if (!*pattern) 66 | return firstMatch; 67 | 68 | while (*(PBYTE)pattern == ' ') 69 | pattern++; 70 | 71 | if (!*pattern) 72 | return firstMatch; 73 | 74 | if (oldPat != pattern) { 75 | oldPat = pattern; 76 | if (*(PBYTE)pattern != '\?') 77 | patByte = GET_BYTE(pattern); 78 | }; 79 | 80 | if (*(PBYTE)pattern == '\?' || *(BYTE*)pCur == patByte) { 81 | if (!firstMatch) 82 | firstMatch = pCur; 83 | 84 | if (!pattern[2]) 85 | return firstMatch; 86 | 87 | pattern += 2; 88 | } 89 | else { 90 | pattern = sig; 91 | firstMatch = 0; 92 | }; 93 | }; 94 | }; 95 | static void patchBytes(BYTE* dst, BYTE* src, unsigned int size) { 96 | DWORD oldprotect; 97 | VirtualProtect(dst, size, PAGE_EXECUTE_READWRITE, &oldprotect); 98 | memcpy(dst, src, size); 99 | VirtualProtect(dst, size, oldprotect, &oldprotect); 100 | } 101 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/Utils/VisualElement.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | class VisualElement { 3 | public: 4 | float x, y, len, fade = 0; 5 | bool initialised, open = false; 6 | VisualElement() { 7 | this->initialised = false; 8 | this->open = false; 9 | this->x = 0.0f; 10 | this->y = 0.0f; 11 | this->fade = 0.0f; 12 | } 13 | 14 | void increment(float value, float limit, bool positive) 15 | { 16 | if (positive) 17 | fade += value; 18 | else 19 | fade -= value; 20 | overflowCheck(limit); 21 | } 22 | 23 | void overflowCheck(float limit) 24 | { 25 | if (fade <= 0) 26 | fade = 0; 27 | if (fade >= limit) 28 | fade = limit; 29 | } 30 | }; -------------------------------------------------------------------------------- /InternalMinecraftClient/dllmain.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | // Memory 9 | #include "Memory/GameHooks.h" 10 | BaseClient* hooks = new BaseClient(); 11 | #define _logf(str) OutputDebugString(str) 12 | typedef void(__thiscall* chatMsg)(void* a1, class TextHolder* txt); 13 | chatMsg _chatMsg; 14 | auto GetDllHMod(void) -> HMODULE { 15 | MEMORY_BASIC_INFORMATION info; 16 | size_t len = VirtualQueryEx(GetCurrentProcess(), (void*)GetDllHMod, &info, sizeof(info)); 17 | assert(len == sizeof(info)); 18 | return len ? (HMODULE)info.AllocationBase : NULL; 19 | } 20 | 21 | std::map entityList = std::map(); // 1.17.41 entitylist 22 | std::map completeEntityList = std::map(); 23 | //Bools 24 | bool clientAlive = true; 25 | bool cancelUiRender = false; 26 | bool cancelTextRender = false; 27 | bool JustToggleddMod = false; 28 | bool renderClickUI = false; 29 | bool justEnabled = true; 30 | bool justDisabled = false; 31 | 32 | class BitmapFont* font; 33 | 34 | typedef void(__thiscall* key)(uint64_t keyId, bool held); 35 | key _key; 36 | 37 | // SDK 38 | #include "SDK/Actor.h" 39 | #include "SDK/Player.h" 40 | #include "SDK/GuiData.h" 41 | #include "SDK/GLMatrix.h" 42 | #include "SDK/LevelRender.h" 43 | #include "SDK/ClientInstance.h" 44 | #include "SDK/KeyInfo.h" 45 | 46 | //KeyInfo* keyinfo; 47 | class ClientInstance* clientInst; 48 | 49 | // Utils 50 | #include "Utils/Utils.h" 51 | #include "Utils/RenderUtils.h" 52 | #include "Utils/VisualElement.h" 53 | 54 | RenderUtils renderUtil = RenderUtils(); 55 | 56 | std::vector vCmds; 57 | std::vector vMods; 58 | #include "ClientBase/Command.h" 59 | #include "ClientBase/Module.h" 60 | 61 | std::map keymap = std::map(); 62 | #include "ClientBase/ModuleHandler.h" 63 | #include "ClientBase/CommandHandler.h" 64 | #include 65 | 66 | GuiData* acs; 67 | Actor* localPlr; 68 | ModuleHandler handler = ModuleHandler(); 69 | CommandHandler cmdHandler = CommandHandler(); 70 | 71 | #define PI 3.14159265359 // 3.14159265359 72 | typedef void(__thiscall* tick)(ClientInstance* clientinstance, void* a2); 73 | tick _tick; 74 | typedef void(__thiscall* player)(Actor* lp, void* a2); 75 | player _player; 76 | typedef void(__thiscall* container)(ContainerManagement* a1); 77 | container _container; 78 | typedef void(__thiscall* gamemode)(GameMode* gm, void* a2); 79 | gamemode _gamemode; 80 | typedef void(__thiscall* render)(void* a1, MinecraftUIRenderContext* ctx); 81 | render _render; 82 | typedef void(__thiscall* renderText)(void* a1, MinecraftUIRenderContext* ctx); 83 | renderText _renderText; 84 | std::map beforeKeymap = std::map(); 85 | std::map mousemap = std::map(); 86 | std::vector categories = std::vector(); 87 | std::vector categoryPos = std::vector(); 88 | std::map modulesEnabled = std::map(); 89 | int disabledTicks = 0; 90 | int enabledTicks = 0; 91 | int frame = 0; 92 | //Hopefully could be used 93 | 94 | void keyCallback(uint64_t c, bool v) { // Store key infomation inside our own keymap ;p 95 | _key(c, v); 96 | if (c == VK_INSERT && keymap[c] == false && v == true) { 97 | renderClickUI = !renderClickUI; 98 | if (renderClickUI) 99 | clientInst->grabMouse(); 100 | else clientInst->releaseMouse(); 101 | } 102 | 103 | if (clientInst->getCPlayer() == nullptr) return; 104 | 105 | if (clientInst->getGuiData()->IsInGame == false) return; 106 | 107 | if (clientInst->getCPlayer()->canOpenContainerScreen() == false) return; 108 | 109 | for (int i = 0; i < handler.modules.size(); ++i) { 110 | if (!renderClickUI) { 111 | if (c == handler.modules[i]->keybind && handler.modules[i]->HoldMode()) {//for modules like jetpack 112 | handler.modules[i]->enabled = !handler.modules[i]->enabled; 113 | if (handler.modules[i]->enabled) 114 | handler.modules[i]->OnEnable(clientInst, localPlr); 115 | else handler.modules[i]->OnDisable(clientInst, localPlr); 116 | } 117 | else if (!handler.modules[i]->HoldMode() && c == handler.modules[i]->keybind && v == true) {//for normal modules 118 | handler.modules[i]->enabled = !handler.modules[i]->enabled; 119 | if (handler.modules[i]->enabled) { 120 | handler.modules[i]->OnEnable(clientInst, localPlr); 121 | for (auto mod : handler.modules) { 122 | JustToggleddMod = true; 123 | auto Notis = mod->name == "Notifications"; 124 | if (Notis && mod->enabled) 125 | hooks->debugEcho("ModuleEnabled", std::string("Enabled: " + handler.modules[i]->name).c_str()); 126 | } 127 | } 128 | else { 129 | handler.modules[i]->OnDisable(clientInst, localPlr); 130 | for (auto mod : handler.modules) { 131 | JustToggleddMod = true; 132 | auto Notis = mod->name == "Notifications"; 133 | if (Notis && mod->enabled) 134 | hooks->debugEcho("ModuleDisabled", std::string("Disabled: " + handler.modules[i]->name).c_str()); 135 | } 136 | } 137 | } 138 | } 139 | } 140 | keymap[c] = v; 141 | } 142 | 143 | void renderTextCallback(void* a1, MinecraftUIRenderContext* ctx) { 144 | if (cancelTextRender) 145 | return; 146 | _renderText(a1, ctx); 147 | } 148 | 149 | void tCallback(void* a1, MinecraftUIRenderContext* ctx) { // RenderContext 150 | if (renderUtil.ctx == nullptr && font != nullptr) 151 | renderUtil.Init(ctx, acs, font, reinterpret_cast(&handler)); 152 | if (renderUtil.ctx == nullptr || font == nullptr) return; 153 | if (cancelUiRender == false) 154 | _render(a1, ctx); 155 | frame++; 156 | 157 | // wtf is wrong with you for coding this spaghetti bowl ass code 158 | if (frame == 3) { // stop from rendering 3 times a frame 159 | handler.FrameRender(&renderUtil); 160 | 161 | if (renderClickUI) { 162 | renderUtil.Draw(Vector2(0, 0), renderUtil.guiData->scaledResolution, _RGB(33, 33, 33, 150)); 163 | float cat = 0; 164 | for (std::string x : categories) { 165 | renderUtil.Draw(Vector2((float)(20 + (cat * 60)), 80), Vector2(75, 10), _RGB(33, 33, 33)); 166 | auto catText = TextHolder(x); // (ctx->getLineLength(font, &catText, 1) / 2) 167 | renderUtil.DrawString(Vector2(30 + (cat * 60) - (ctx->getLineLength(font, &catText, 0.6f) / 2), 80), _RGB(255, 255, 255), catText, font, 1.f); 168 | int catMod = 0; 169 | for (int i = 0; i < handler.modules.size(); ++i) { 170 | if (handler.modules[i]->category == x) { 171 | auto modInstance = handler.modules[i]; 172 | auto moduleBtnInfo = TextHolder(modInstance->name); 173 | auto cda = renderUtil.DrawButtonText(Vector2((float)(20 + (cat * 60.f)), 90.f + (catMod * 10.f)), Vector2(75.f, 10.f), _RGB(55, 55, 55), _RGB(44, 44, 44), _RGB(40, 40, 40), renderUtil.guiData->scaledMousePos(), keymap[(int)' '], 174 | moduleBtnInfo, font, 0.6f, Vector2(24 - (ctx->getLineLength(font, &moduleBtnInfo, 0.6f) / 2), 4), handler.modules[i]->enabled, modInstance->vElement, modInstance->enabled); 175 | if (cda) { 176 | handler.modules[i]->drawTooltip(TextHolder(handler.modules[i]->tooltip)); 177 | //hooks->debugEcho("Tooltip", "Tooltips in use"); 178 | } 179 | 180 | if (cda && keymap[(int)' '] && beforeKeymap[i] == false) { 181 | handler.modules[i]->enabled = !handler.modules[i]->enabled; 182 | if (!handler.modules[i]->enabled) 183 | handler.modules[i]->OnDisable(clientInst, localPlr); 184 | else 185 | handler.modules[i]->OnEnable(clientInst, localPlr); 186 | } 187 | beforeKeymap[i] = keymap[(int)' ']; 188 | catMod++; 189 | } 190 | } 191 | cat += 1.5f; 192 | } 193 | } 194 | int loopIndex = 0; 195 | for (auto notification : hooks->notifications) { 196 | notification->existedTick++; 197 | if (notification->existedTick == notification->canExistFor/*Tick*/) 198 | hooks->notifications.erase(std::remove(hooks->notifications.begin(), hooks->notifications.end(), notification), 199 | hooks->notifications.end()); 200 | if (notification->existedTick >= (notification->canExistFor - 15)/*Tick*/) 201 | notification->fadeAlpha--; // make notification fade out 202 | if (notification->existedTick <= 15/*Tick*/) 203 | notification->fadeAlpha++; // make notification fade in 204 | // Render The Notification 205 | renderUtil.DrawString(Vector2(5.f, 5.f + (13.f/*textSize*/ * loopIndex)), _RGB(255, 255, 255, (int)notification->fadeAlpha * 17), TextHolder(notification->notificationDesc), font, 0.8f); 206 | loopIndex++; 207 | } 208 | 209 | for (int i = 0; i < handler.modules.size(); i++) 210 | modulesEnabled[i] = handler.modules[i]->enabled; 211 | 212 | if (justDisabled && clientInst->isInGame()) { //Eject Message 213 | disabledTicks++; 214 | if (disabledTicks == 1) { 215 | //localPlr->displayClientMessage("[TreroInternal] Client succesfuly ejected!"); 216 | } 217 | } 218 | 219 | for (auto mod : handler.modules) { 220 | auto Eject = mod->name == "Uninject"; 221 | if (Eject && mod->enabled || keymap[VK_CONTROL] && keymap['L'] || keymap[VK_END]) { 222 | //mod->enabled = false; needs fixing bec it was being among so i went to the store and baught a among us poppet and then the man at the lemonade stand was like i got 0 grapes man idk what to do so then i went to the park and tried his lemondade and it kinda tasted like pee but then the sussy among us deemon came to my houyse and was like hey "why does mod->enabled = false; not work?" kinda among + cringe + ratio + cope + dont care + bozo. Then i went to school and we had a math test and i poopy myself but then i was like yknow, mod enabled false dosnt work so why live? There is no point if cant disable mods upon uninjecting. Then I was like hey alexa, wheres the neereast cliff? She told me to go to the coordinates 69 420 69, -69 -420 -69. So i went there and found some ginger who liked playing minecraft and modding it. So we both jumped off the cliff. As we were falling I thought about my life, my mariage to floppy and the fact that we should be able to disable modules when uninjecting. Goodbye Cruel World! 223 | justDisabled = true; 224 | clientAlive = false; 225 | } 226 | } 227 | frame = 0; 228 | } 229 | } 230 | 231 | void callback(ClientInstance* ci, void* a2) { 232 | clientInst = ci; acs = ci->getGuiData(); 233 | font = ci->mcGame->defaultGameFont; 234 | for (auto mod : handler.modules) 235 | if (ci->isInGame() && mod->enabled) 236 | mod->OnTick(ci); _tick(ci, a2); 237 | } 238 | 239 | int a = 0; 240 | 241 | void playerCallback(Actor* lp, void* a2) { 242 | _player(lp, a2); 243 | if (lp->isLocalPlayer()) { 244 | localPlr = lp; 245 | } 246 | entityList[reinterpret_cast(lp)] = lp; 247 | for (auto mod : handler.modules) 248 | if (mod->enabled) mod->OnGameTick(lp); 249 | } 250 | 251 | void ContainerTickCallback(ContainerManagement* a1, Actor* lp) { 252 | for (auto mod : handler.modules) { 253 | if (mod->name == "ChestStealer" && mod->enabled) { 254 | mod->OnContainerTick(a1, lp); 255 | } 256 | if (mod->name == "ChestDumper" && mod->enabled) { 257 | mod->OnContainerTick(a1, lp); 258 | } 259 | } 260 | } 261 | 262 | void SendChatMsg(const char txt[64]) { // i was testing please ignore! 263 | auto sce = TextHolder(txt); 264 | //DisplayObj("Sent!"); 265 | //_chatMsg(&clientInst->guiData, &sce); 266 | } 267 | 268 | void DisplayObj(const char txt[64]) { 269 | auto sce = TextHolder(txt); 270 | if (clientInst->getGuiData() != nullptr) 271 | _chatMsg(clientInst->getGuiData(), &sce); 272 | } 273 | 274 | std::vector split(const std::string& text, char sep) { 275 | std::vector tokens; 276 | std::size_t start = 0, end = 0; 277 | while ((end = text.find(sep, start)) != std::string::npos) { 278 | tokens.push_back(text.substr(start, end - start)); 279 | start = end + 1; 280 | } 281 | tokens.push_back(text.substr(start)); 282 | return tokens; 283 | } 284 | 285 | void chatMsgCallback(void* a1, TextHolder* txt) { 286 | for (auto mod : handler.modules) { 287 | auto test = mod->name == "Spammer"; 288 | if (test && mod->enabled) { //(std::map is the better way) 289 | for (int i = 0; i < 10; i++) 290 | _chatMsg(a1, txt); 291 | } 292 | } 293 | if (txt->getText()[0] == '.') { // cancel all .command related chat msgs :p 294 | auto stringCmd = ((std::string)txt->getText()).erase(0, 1); 295 | auto command = stringCmd.substr(0, stringCmd.find(" "));// remove everything after space 296 | 297 | Command* checkCmd = cmdHandler.findCommand(command); 298 | if (checkCmd != nullptr) { 299 | auto txt2 = ((std::string)txt->getText()); 300 | checkCmd->Execute(split(txt2, ' ')); 301 | } 302 | } 303 | else _chatMsg(a1, txt); 304 | } 305 | 306 | std::string getClipboardText() { 307 | if (!OpenClipboard(nullptr)) 308 | return ""; 309 | else { 310 | HANDLE hData = GetClipboardData(CF_TEXT); 311 | char* pszText = static_cast(GlobalLock(hData)); 312 | if (pszText == nullptr) 313 | return ""; 314 | CloseClipboard(); 315 | return std::string(pszText); 316 | } 317 | } 318 | 319 | void setClipboardText(std::string text) { 320 | if (!OpenClipboard(nullptr)) 321 | return; 322 | EmptyClipboard(); 323 | HGLOBAL hg = GlobalAlloc(GMEM_MOVEABLE, text.size() + 1); 324 | if (!hg) { 325 | CloseClipboard(); 326 | return; 327 | } 328 | memcpy(GlobalLock(hg), text.c_str(), text.size() + 1); 329 | GlobalUnlock(hg); 330 | SetClipboardData(CF_TEXT, hg); 331 | CloseClipboard(); 332 | GlobalFree(hg); 333 | } 334 | 335 | void Init(LPVOID c) { 336 | if (MH_Initialize() == MH_OK) { 337 | handler.InitModules(); 338 | cmdHandler.InitCommands(); 339 | vMods = handler.modules; 340 | for (auto mod : handler.modules) { 341 | bool addCategory = true; 342 | for (auto cat : categories) 343 | if (mod->category == cat) addCategory = false; 344 | if (addCategory) 345 | categories.push_back(mod->category); 346 | } 347 | // Function hooks 348 | uintptr_t keymapAddr = Mem::findSig("48 89 5C 24 ? 57 48 83 EC ? 8B 05 ? ? ? ? 8B DA"); 349 | uintptr_t containerScreenTick = Mem::findSig("48 89 5C 24 ? 57 48 83 EC ? 48 8B F9 E8 ? ? ? ? 48 8B 17"); 350 | uintptr_t hookAddr = Mem::findSig("48 8B 01 48 8D 54 24 ? FF 90 ? ? ? ? 90 48 8B 08 48 85 ? 0F 84 ? ? ? ? 48 8B 58 08 48 85 DB 74 0B F0 FF 43 08 48 8B 08 48 8B 58 08 48 89 4C 24 20 48 89 5C 24 28 48 8B 09 48 8B 01 4C 8B C7 48 8B"); 351 | uintptr_t localPlayerAddr = Mem::findSig("73 ? B0 ? C3 32 C0 C3 CC CC CC CC CC 48 83 EC"); //VV - 83 7B 4C 01 75 1C 80 7B 352 | //uintptr_t displayObjAddr = Mem::findSig("48 89 5C 24 ? 48 89 74 24 ? 55 57 41 54 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 45 30 4C 8B F1"); 353 | //uintptr_t mouseAddr = Mem::findSig("48 89 5C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 55 41 54 41 55 41 56 41 57 48 8B EC 48 83 EC ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 45 F0 48 8B ? E8"); 354 | uintptr_t renderCtxAddr = Mem::findSig("48 8B C4 48 89 58 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ? ? ? ? 48 81 EC ? ? ? ? 0F 29 70 ? 0F 29 78 ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 4C 8B FA 48 89 54 24"); //48 8B C4 48 89 58 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ? ? ? ? 48 81 EC ? ? ? ? 0F 29 70 B8 0F 29 78 A8 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 4C 8B FA 48 89 54 24 ? 4C 8B 355 | uintptr_t renderTextAddr = Mem::findSig("48 8B C4 48 89 58 18 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 18 FF FF FF 48 81 EC B0 01 00 00 0F 29 70 B8 0F 29 78 A8 44 0F 29 40 98 44 0F 29 48 88 44 0F 29 90 78 FF FF FF 44 0F 29 98 68 FF FF FF 44 0F 29 A0 58 FF FF FF 48 8B 05 9F 93 1A 03 48 33 C4 48 89 45"); 356 | uintptr_t chatMsgSigAddr = Mem::findSig("48 89 5C 24 ?? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 85 ?? ?? ?? ?? 4C 8B EA 4C 8B F9 48 8B 49"); 357 | _logf(L"[TreroInternal]: Hooking functions...\n"); 358 | if (MH_CreateHook((void*)chatMsgSigAddr, &chatMsgCallback, reinterpret_cast(&_chatMsg)) == MH_OK) { 359 | MH_EnableHook((void*)chatMsgSigAddr); 360 | _logf(L"[TreroInternal]: ChatMsg hooked!\n"); 361 | }; 362 | if (MH_CreateHook((void*)keymapAddr, &keyCallback, reinterpret_cast(&_key)) == MH_OK) { 363 | MH_EnableHook((void*)keymapAddr); 364 | _logf(L"[TreroInternal]: Keymap hooked!\n"); 365 | }; 366 | if (MH_CreateHook((void*)hookAddr, &callback, reinterpret_cast(&_tick)) == MH_OK) { 367 | MH_EnableHook((void*)hookAddr); 368 | _logf(L"[TreroInternal]: ClientInstance hooked!\n"); 369 | }; 370 | if (MH_CreateHook((void*)localPlayerAddr, &playerCallback, reinterpret_cast(&_player)) == MH_OK) { 371 | MH_EnableHook((void*)localPlayerAddr); 372 | _logf(L"[TreroInternal]: LocalPlayer hooked!\n"); 373 | }; 374 | if (MH_CreateHook((void*)containerScreenTick, &ContainerTickCallback, reinterpret_cast(&_container)) == MH_OK) { 375 | MH_EnableHook((void*)containerScreenTick); 376 | _logf(L"[TreroInternal]: ContainerTick hooked!\n"); 377 | }; 378 | /*if (MH_CreateHook((void*)gamemodeAddr, &gamemodeCallback, reinterpret_cast(&_gamemode)) == MH_OK) { 379 | MH_EnableHook((void*)gamemodeAddr); 380 | _logf(L"[TreroInternal]: GameMode hooked!\n"); 381 | };*/ 382 | //if (MH_CreateHook((void*)mouseAddr, &mouseCallback, reinterpret_cast(&_mouse)) == MH_OK) { 383 | // MH_EnableHook((void*)mouseAddr); 384 | // _logf(L"[TreroInternal]: KeyInfo hooked!\n"); 385 | //}; 386 | if (MH_CreateHook((void*)renderCtxAddr, &tCallback, reinterpret_cast(&_render)) == MH_OK) { 387 | MH_EnableHook((void*)renderCtxAddr); 388 | _logf(L"[TreroInternal]: RenderContext hooked!\n"); 389 | }; 390 | if (MH_CreateHook((void*)renderTextAddr, &renderTextCallback, reinterpret_cast(&_renderText)) == MH_OK) { 391 | MH_EnableHook((void*)renderTextAddr); 392 | _logf(L"[TreroInternal]: RenderText hooked!\n"); 393 | }; 394 | hooks->debugEcho("InitMsg", "Client has initialized"); 395 | lab: 396 | while (clientAlive) {}; 397 | Sleep(1); 398 | if (clientAlive) 399 | goto lab; 400 | 401 | MH_DisableHook(MH_ALL_HOOKS); 402 | MH_RemoveHook(MH_ALL_HOOKS); 403 | FreeLibraryAndExitThread(GetDllHMod(), 0); 404 | } 405 | } 406 | 407 | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { 408 | switch (ul_reason_for_call) { 409 | case DLL_PROCESS_ATTACH: 410 | CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Init, hModule, 0, 0); 411 | } 412 | return TRUE; 413 | } 414 | -------------------------------------------------------------------------------- /InternalMinecraftClient/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # InternalMinecraftClient 2 |

3 |

Trero Internal Utility

4 |

Internal C++ Utiliy Mod for Minecraft (Bedrock Edition) (Currently supports 1.17.40 - 1.18.1, multiversion)

5 | 6 | [![Download](https://img.shields.io/badge/download-utility-brightgreen?style=for-the-badge "Download")](https://github.com/Laamy/Trero/releases/latest&response-content-type=application%2Foctet-stream "Download") 7 | ![Total Downloads](https://img.shields.io/github/downloads/Laamy/Trero/total?style=for-the-badge) 8 | [![Code Issues](https://img.shields.io/github/issues/Laamy/Trero?color=red&label=Code%20Issues&style=for-the-badge)](https://google.com) 9 | ![Last Commit](https://img.shields.io/github/last-commit/Laamy/Trero?style=for-the-badge) 10 |

11 | 12 | https://discord.gg/cEMkubws8F Why not join our discord? 13 | --------------------------------------------------------------------------------