Skip to content

Commit f77da57

Browse files
committed
v1.4.6
- Rewrote how dll injection is handled, it is much safer with more detailed error reporting, and it also now uses `LoadLibraryW` instead of `LoadLibraryA`. - The prevent injection if EAC is detected setting is now disabled by default for new users, injection will just fail gracefully if attempted to inject with EAC. - Removed the `Launch Rocket League` button to avoid confusion, as it required the user to manually put `-noeac` in their launch parameters. - Fixed the process status being stuck saying `East Anti-Cheat Detected` instead of saying if rocket league is running or not. - Increased the default injection time for new users from `2500` to `3500`. - Upgraded the project from '.NET 9.0' to '.NET 1.0'.
1 parent 21849fc commit f77da57

17 files changed

Lines changed: 298 additions & 340 deletions

CodeRedLauncher.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>WinExe</OutputType>
5-
<TargetFramework>net9.0-windows10.0.17763.0</TargetFramework>
5+
<TargetFramework>net10.0-windows10.0.17763.0</TargetFramework>
66
<UseWindowsForms>true</UseWindowsForms>
77
<Platforms>AnyCPU;x64</Platforms>
88
<StartupObject>CodeRedLauncher.Program</StartupObject>

Controls/CRCheckbox.Designer.cs

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Controls/CRCheckbox.resx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<root>
33
<!--
4-
Microsoft ResX Schema
4+
Microsoft ResX Schema
55
66
Version 2.0
77
@@ -48,7 +48,7 @@
4848
value : The object must be serialized with
4949
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
5050
: and then encoded with base64 encoding.
51-
51+
5252
mimetype: application/x-microsoft.net.object.soap.base64
5353
value : The object must be serialized with
5454
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter

Controls/CRStatus.Designer.cs

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Controls/CRStatus.cs

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,13 @@ public Font DescriptionFont
229229
set { DescriptionLbl.Font = value; UpdateTheme(); }
230230
}
231231

232+
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
233+
public string DescriptionText
234+
{
235+
get { return DescriptionLbl.Text; }
236+
set { DescriptionLbl.Text = value; UpdateTheme(); }
237+
}
238+
232239
public CRStatus()
233240
{
234241
InitializeComponent();
@@ -250,7 +257,7 @@ private void UpdateTheme()
250257
}
251258
else if (ControlType == ControlTheme.Light)
252259
{
253-
this.BackColor = GPalette.White; // Grey
260+
this.BackColor = GPalette.White;
254261
TitleLbl.ForeColor = GPalette.Black;
255262
DescriptionLbl.ForeColor = GPalette.Black;
256263
}
@@ -275,82 +282,82 @@ private void UpdateTheme()
275282
public void FormatType()
276283
{
277284
bool antiCheated = LocalStorage.DetectedAntiCheat();
278-
bool shouldPrevent = (antiCheated && Configuration.ShouldPreventInjection());
285+
bool shouldPrevent = (antiCheated && UserConfig.ShouldPreventEACInjection());
279286
string newTitle = "";
280287

281288
switch (DisplayType)
282289
{
283290
case StatusTypes.Process_Loading:
284291
newTitle = "Loading";
285-
DescriptionLbl.Text = "Loading...";
292+
DescriptionText = "Loading...";
286293
break;
287294
case StatusTypes.Process_Idle:
288295
newTitle = "Rocket League Is Not Running";
289-
DescriptionLbl.Text = (shouldPrevent ? "Preventing injection for your own safety!" : "Waiting for the user to launch Rocket League.");
296+
DescriptionText = (shouldPrevent ? "Preventing injection for your own safety!" : "Waiting for the user to launch Rocket League.");
290297
break;
291298
case StatusTypes.Process_Running:
292299
newTitle = "Rocket League Is Running";
293300
break;
294301
case StatusTypes.Process_Injecting:
295302
newTitle = "Rocket League Is Running";
296-
DescriptionLbl.Text = (shouldPrevent ? "Preventing injection for your own safety!" : "Process found, attempting to inject module...");
303+
DescriptionText = (shouldPrevent ? "Preventing injection for your own safety!" : "Process found, attempting to inject module...");
297304
break;
298305
case StatusTypes.Process_Manual:
299306
newTitle = "Rocket League Is Running";
300-
DescriptionLbl.Text = (shouldPrevent ? "Preventing injection for your own safety!" : "Process found, ready for manual injection!");
307+
DescriptionText = (shouldPrevent ? "Preventing injection for your own safety!" : "Process found, ready for manual injection!");
301308
break;
302309
case StatusTypes.Process_Outdated:
303310
newTitle = "Rocket League Is Running";
304-
DescriptionLbl.Text = "Version mismatch, preventing injection!";
311+
DescriptionText = "Version mismatch, preventing injection!";
305312
break;
306313
case StatusTypes.Version_Idle:
307314
newTitle = "Waiting";
308-
DescriptionLbl.Text = "Automatically checking for updates disabled.";
315+
DescriptionText = "Automatically checking for updates disabled.";
309316
antiCheated = false; // Process and version status controls use this same class, we don't want to use this for the version one.
310317
break;
311318
case StatusTypes.Version_Checking:
312319
newTitle = "Checking for Updates";
313-
DescriptionLbl.Text = "Waiting for response...";
320+
DescriptionText = "Waiting for response...";
314321
antiCheated = false;
315322
break;
316323
case StatusTypes.Version_Downloading:
317324
newTitle = "Update in Progress";
318-
DescriptionLbl.Text = "Downloading and installing...";
325+
DescriptionText = "Downloading and installing...";
319326
antiCheated = false;
320327
break;
321328
case StatusTypes.Version_Module:
322329
newTitle = "Module Out of Date";
323-
DescriptionLbl.Text = "Your module version is out of date!";
330+
DescriptionText = "Your module version is out of date!";
324331
antiCheated = false;
325332
break;
326333
case StatusTypes.Version_Launcher:
327334
newTitle = "Launcher Out of Date";
328-
DescriptionLbl.Text = "Your launcher version is out of date!";
335+
DescriptionText = "Your launcher version is out of date!";
329336
antiCheated = false;
330337
break;
331338
case StatusTypes.Version_Both:
332339
newTitle = "Both Out of Date";
333-
DescriptionLbl.Text = "Your launcher and module are out of date!";
340+
DescriptionText = "Your launcher and module are out of date!";
334341
antiCheated = false;
335342
break;
336343
case StatusTypes.Version_Safe:
337344
newTitle = "Version up to Date";
338-
DescriptionLbl.Text = "You're running on the latest release!";
345+
DescriptionText = "You're running on the latest release!";
339346
antiCheated = false;
340347
break;
341348
case StatusTypes.Version_Unsafe:
342349
newTitle = "Incompatible Version";
343-
DescriptionLbl.Text = "Please wait for a new version to be released!";
350+
DescriptionText = "Please wait for a new version to be released!";
344351
antiCheated = false;
345352
break;
346353
default:
347354
newTitle = "Loading";
348-
DescriptionLbl.Text = "Loading...";
355+
DescriptionText = "Loading...";
349356
antiCheated = false;
350357
break;
351358
}
352359

353-
if (antiCheated)
360+
if (antiCheated && shouldPrevent)
354361
{
355362
newTitle = "Easy Anti-Cheat Detected";
356363
}
@@ -363,34 +370,37 @@ private void FormatResult()
363370
switch (ResultType)
364371
{
365372
case InjectionResults.UnhandledException:
366-
DescriptionLbl.Text = "Failed to inject, an exception occurred!";
373+
DescriptionText = "Failed to inject, an unhandled exception occurred!";
367374
break;
368375
case InjectionResults.LibraryNotFound:
369-
DescriptionLbl.Text = "Failed to inject, could not find module file!";
376+
DescriptionText = "Failed to inject, could not find dll file!";
370377
break;
371378
case InjectionResults.ProcessNotFound:
372-
DescriptionLbl.Text = "Failed to inject, process no longer exists!";
379+
DescriptionText = "Failed to inject, process no longer exists!";
373380
break;
374381
case InjectionResults.AlreadyInjected:
375-
DescriptionLbl.Text = "Successfully injected, changes applied in game.";
382+
DescriptionText = "Successfully injected, changes applied in game.";
376383
break;
377384
case InjectionResults.HandleNotFound:
378-
DescriptionLbl.Text = "Failed to inject, process handle is invalid!";
385+
DescriptionText = "Failed to inject, process handle is invalid!";
386+
break;
387+
case InjectionResults.KernelNotFound:
388+
DescriptionText = "Failed to inject, kernel32.dll not found!";
379389
break;
380-
case InjectionResults.KernalNotFound:
381-
DescriptionLbl.Text = "Failed to inject, load library not found!";
390+
case InjectionResults.LoadLibraryNotFound:
391+
DescriptionText = "Failed to inject, LoadLibraryW not found!";
382392
break;
383393
case InjectionResults.AllocateFail:
384-
DescriptionLbl.Text = "Failed to inject, could not allocate space in memory!";
394+
DescriptionText = "Failed to inject, virtual allocate was blocked!";
385395
break;
386396
case InjectionResults.WriteFail:
387-
DescriptionLbl.Text = "Failed to inject, could not write bytes into memory!";
397+
DescriptionText = "Failed to inject, could not write bytes into memory!";
388398
break;
389399
case InjectionResults.ThreadFail:
390-
DescriptionLbl.Text = "Failed to inject, could not create remote thread!";
400+
DescriptionText = "Failed to inject, could not create remote thread!";
391401
break;
392402
case InjectionResults.Success:
393-
DescriptionLbl.Text = "Successfully injected, changes applied in game.";
403+
DescriptionText = "Successfully injected, changes applied in game.";
394404
break;
395405
default:
396406
break;

Controls/CRStatus.resx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<root>
33
<!--
4-
Microsoft ResX Schema
4+
Microsoft ResX Schema
55
66
Version 2.0
77
@@ -48,7 +48,7 @@
4848
value : The object must be serialized with
4949
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
5050
: and then encoded with base64 encoding.
51-
51+
5252
mimetype: application/x-microsoft.net.object.soap.base64
5353
value : The object must be serialized with
5454
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter

0 commit comments

Comments
 (0)