Skip to content
This repository was archived by the owner on Oct 5, 2019. It is now read-only.

Commit f6411d2

Browse files
author
Zaczero
committed
Added more trash modes
1 parent 9259af5 commit f6411d2

File tree

1 file changed

+59
-6
lines changed

1 file changed

+59
-6
lines changed

SharpLoader/Core/SourceRandomizer.cs

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,40 @@ private void Trash(ref string str)
530530
{
531531
// value trash
532532
var varName = GetRandomName();
533-
var operation = _rnd.Next(0, 2) == 0 ? '+' : '-';
533+
char operation;
534+
535+
switch (_rnd.Next(0, 5))
536+
{
537+
case 0:
538+
{
539+
operation = '+';
540+
break;
541+
}
542+
case 1:
543+
{
544+
operation = '-';
545+
break;
546+
}
547+
case 2:
548+
{
549+
operation = '*';
550+
break;
551+
}
552+
case 3:
553+
{
554+
operation = '/';
555+
break;
556+
}
557+
case 4:
558+
{
559+
operation = '^';
560+
break;
561+
}
562+
default:
563+
{
564+
throw new Exception("invalid switch value");
565+
}
566+
}
534567

535568
string varType;
536569
int varValue;
@@ -542,7 +575,7 @@ private void Trash(ref string str)
542575
{
543576
varType = "byte";
544577
varChange = _rnd.Next(1, byte.MaxValue);
545-
varValue = operation == '+'
578+
varValue = operation != '-'
546579
? _rnd.Next(byte.MinValue, byte.MaxValue - varChange)
547580
: _rnd.Next(byte.MinValue + varChange, byte.MaxValue);
548581
break;
@@ -551,7 +584,7 @@ private void Trash(ref string str)
551584
{
552585
varType = "short";
553586
varChange = _rnd.Next(1, short.MaxValue);
554-
varValue = operation == '+'
587+
varValue = operation != '-'
555588
? _rnd.Next(short.MinValue, short.MaxValue - varChange)
556589
: _rnd.Next(short.MinValue + varChange, short.MaxValue);
557590
break;
@@ -560,7 +593,7 @@ private void Trash(ref string str)
560593
{
561594
varType = "int";
562595
varChange = _rnd.Next(1, int.MaxValue);
563-
varValue = operation == '+'
596+
varValue = operation != '-'
564597
? _rnd.Next(int.MinValue, int.MaxValue - varChange)
565598
: _rnd.Next(int.MinValue + varChange, int.MaxValue);
566599
break;
@@ -578,8 +611,8 @@ private void Trash(ref string str)
578611
{
579612
// object trash
580613
var operation = _rnd.Next(0, 2) == 0 ? "GetHashCode()" : "GetTypeCode()";
581-
582-
switch (_rnd.Next(0, 6))
614+
615+
switch (_rnd.Next(0, 10))
583616
{
584617
case 0:
585618
{
@@ -611,6 +644,26 @@ private void Trash(ref string str)
611644
trash += $"new long().{operation};";
612645
break;
613646
}
647+
case 6:
648+
{
649+
trash += $"new sbyte().{operation};";
650+
break;
651+
}
652+
case 7:
653+
{
654+
trash += $"new ushort().{operation};";
655+
break;
656+
}
657+
case 8:
658+
{
659+
trash += $"new uint().{operation};";
660+
break;
661+
}
662+
case 9:
663+
{
664+
trash += $"new ulong().{operation};";
665+
break;
666+
}
614667
default:
615668
{
616669
throw new Exception("invalid switch value");

0 commit comments

Comments
 (0)