@@ -278,7 +278,7 @@ private void Random(ref string str)
278278 }
279279
280280 // Replace
281- str = str . Remove ( tagIndex , tagLength + 1 ) . Insert ( tagIndex , outputValue . ToString ( ) ) ;
281+ str = str . Remove ( tagIndex , tagLength + 1 ) . Insert ( tagIndex , InjectInt ( str , outputValue ) ) ;
282282 }
283283 }
284284
@@ -353,7 +353,7 @@ private void RandomS(ref string str)
353353 }
354354
355355 // Replace
356- str = str . Remove ( tagIndex , tagLength + 1 ) . Insert ( tagIndex , output ) ;
356+ str = str . Remove ( tagIndex , tagLength + 1 ) . Insert ( tagIndex , InjectString ( str , output ) ) ;
357357 }
358358 }
359359
@@ -491,7 +491,7 @@ private void Trash(ref string str)
491491 }
492492 }
493493
494- trash += $ "\" { varValue } \" .{ operation } ;";
494+ trash += $ "{ InjectString ( str , varValue ) } .{ operation } ;";
495495 }
496496 else if ( rndValue < trashChances [ trashChancesIndex ++ ] )
497497 {
@@ -532,7 +532,7 @@ private void Trash(ref string str)
532532 }
533533 }
534534
535- trash += $ "{ varType } { varName } ={ varValue } \0 { varName } { operation } ={ varChange } ;";
535+ trash += $ "{ varType } { varName } =( { varType } ) { InjectInt ( str , varValue ) } \0 { varName } { operation } =( { varType } ) { InjectInt ( str , varChange ) } ;";
536536 }
537537 else if ( rndValue < trashChances [ trashChancesIndex ++ ] )
538538 {
@@ -651,12 +651,12 @@ private void Encrypt(ref string str)
651651 $ "<trash>" +
652652 $ "<swap/>" +
653653 $ "<flow/>" +
654- $ "for(int { i } = 0 ; { i } < { baseEncrypted } .Length; { i } ++)" +
654+ $ "for(int { i } = { InjectInt ( str , 0 ) } ; { i } < { baseEncrypted } .Length; { i } ++)" +
655655 $ "{{" +
656656 $ "<flow>" +
657- $ "{ a } = { baseDecryptor } [0 ] % { baseDecryptor } [1 ];" +
657+ $ "{ a } = { baseDecryptor } [{ InjectInt ( str , 0 ) } ] % { baseDecryptor } [{ InjectInt ( str , 1 ) } ];" +
658658 $ "<trash 4>" +
659- $ "{ b } = { i } + { baseDecryptor } [1 ];" +
659+ $ "{ b } = { i } + { baseDecryptor } [{ InjectInt ( str , 1 ) } ];" +
660660 $ "<trash 4>" +
661661 $ "{ c } = { a } * { b } ;" +
662662 $ "<trash 4>" +
@@ -710,8 +710,8 @@ private void Encrypt(ref string str)
710710
711711 var tmp2 = new [ ] { decryptorOne , decryptorTwo } ;
712712
713- var baseEncrypted = ByteArrayToString ( tmp1 ) ;
714- var baseDecryptor = ByteArrayToString ( tmp2 ) ;
713+ var baseEncrypted = ByteArrayToString ( str , tmp1 ) ;
714+ var baseDecryptor = ByteArrayToString ( str , tmp2 ) ;
715715
716716 var output = $ "{ _stringDecryptorFunction } ({ baseEncrypted } ,{ baseDecryptor } )";
717717
@@ -759,12 +759,12 @@ private void Encrypt(ref string str)
759759 $ "<trash>" +
760760 $ "<swap/>" +
761761 $ "<flow/>" +
762- $ "for(int { i } = 0 ; { i } < { baseEncrypted } .Length; { i } ++)" +
762+ $ "for(int { i } = { InjectInt ( str , 0 ) } ; { i } < { baseEncrypted } .Length; { i } ++)" +
763763 $ "{{" +
764764 $ "<flow>" +
765- $ "{ a } = { baseDecryptor } [0 ] % { baseDecryptor } [1 ];" +
765+ $ "{ a } = { baseDecryptor } [{ InjectInt ( str , 0 ) } ] % { baseDecryptor } [{ InjectInt ( str , 1 ) } ];" +
766766 $ "<trash 4>" +
767- $ "{ b } = { i } + { baseDecryptor } [1 ];" +
767+ $ "{ b } = { i } + { baseDecryptor } [{ InjectInt ( str , 1 ) } ];" +
768768 $ "<trash 4>" +
769769 $ "{ c } = { a } * { b } ;" +
770770 $ "<trash 4>" +
@@ -818,8 +818,8 @@ private void Encrypt(ref string str)
818818
819819 var tmp2 = new [ ] { decryptorOne , decryptorTwo } ;
820820
821- var baseEncrypted = ByteArrayToString ( tmp1 ) ;
822- var baseDecryptor = ByteArrayToString ( tmp2 ) ;
821+ var baseEncrypted = ByteArrayToString ( str , tmp1 ) ;
822+ var baseDecryptor = ByteArrayToString ( str , tmp2 ) ;
823823
824824 var output = $ "{ _charDecryptorFunction } ({ baseEncrypted } ,{ baseDecryptor } )";
825825
@@ -859,12 +859,12 @@ private void Encrypt(ref string str)
859859 $ "{{" +
860860 $ "<flow>" +
861861 $ "<swap>" +
862- $ "{ encrypted } = BitConverter.ToInt32({ baseEncrypted } , 0 );" +
862+ $ "{ encrypted } = BitConverter.ToInt32({ baseEncrypted } , { InjectInt ( str , 0 ) } );" +
863863 $ "<trash>" +
864864 $ "<swap/>" +
865- $ "{ a } = { baseDecryptor } [0 ] % { baseDecryptor } [1 ];" +
865+ $ "{ a } = { baseDecryptor } [{ InjectInt ( str , 0 ) } ] % { baseDecryptor } [{ InjectInt ( str , 1 ) } ];" +
866866 $ "<trash 4>" +
867- $ "{ b } = { a } * { baseDecryptor } [1 ];" +
867+ $ "{ b } = { a } * { baseDecryptor } [{ InjectInt ( str , 1 ) } ];" +
868868 $ "<trash 4>" +
869869 $ "{ c } = { b } ^ { encrypted } ;" +
870870 $ "<trash 4>" +
@@ -919,8 +919,8 @@ private void Encrypt(ref string str)
919919 var tmp1 = BitConverter . GetBytes ( encrypted ) ;
920920 var tmp2 = new [ ] { decryptorOne , decryptorTwo } ;
921921
922- var baseEncrypted = ByteArrayToString ( tmp1 ) ;
923- var baseDecryptor = ByteArrayToString ( tmp2 ) ;
922+ var baseEncrypted = ByteArrayToString ( str , tmp1 ) ;
923+ var baseDecryptor = ByteArrayToString ( str , tmp2 ) ;
924924
925925 var output = $ "{ _valueDecryptorFunction } ({ baseEncrypted } , { baseDecryptor } )";
926926
@@ -1055,21 +1055,21 @@ private void Flow(ref string str)
10551055 $ "{{" +
10561056 $ "public static class { className } " +
10571057 $ "{{" +
1058- $ "private static byte[] { tmp1 } = new byte[4 ];" +
1059- $ "private static byte[] { tmp2 } = new byte[4 ];" +
1058+ $ "private static byte[] { tmp1 } = new byte[{ InjectInt ( str , 4 ) } ];" +
1059+ $ "private static byte[] { tmp2 } = new byte[{ InjectInt ( str , 4 ) } ];" +
10601060 $ "private static int { decryptorOne } ;" +
10611061 $ "private static int { decryptorTwo } ;" +
10621062 $ "private static int { result } ;" +
10631063 $ "public static int { funcName } (byte[] { baseDecryptor } )" +
10641064 $ "{{" +
10651065 $ "<swap>" +
1066- $ "Array.Copy({ baseDecryptor } , 0 , { tmp1 } , 0, 4 );" +
1067- $ "Array.Copy({ baseDecryptor } , 4 , { tmp2 } , 0, 4 );" +
1066+ $ "Array.Copy({ baseDecryptor } , { InjectInt ( str , 0 ) } , { tmp1 } , { InjectInt ( str , 0 ) } , { InjectInt ( str , 4 ) } );" +
1067+ $ "Array.Copy({ baseDecryptor } , { InjectInt ( str , 4 ) } , { tmp2 } , { InjectInt ( str , 0 ) } , { InjectInt ( str , 4 ) } );" +
10681068 $ "<trash>" +
10691069 $ "<swap/>" +
10701070 $ "<swap>" +
1071- $ "{ decryptorOne } = BitConverter.ToInt32({ tmp1 } , 0 );" +
1072- $ "{ decryptorTwo } = BitConverter.ToInt32({ tmp2 } , 0 );" +
1071+ $ "{ decryptorOne } = BitConverter.ToInt32({ tmp1 } , { InjectInt ( str , 0 ) } );" +
1072+ $ "{ decryptorTwo } = BitConverter.ToInt32({ tmp2 } , { InjectInt ( str , 0 ) } );" +
10731073 $ "<trash>" +
10741074 $ "<swap/>" +
10751075 $ "<swap>" +
@@ -1140,7 +1140,7 @@ private void Flow(ref string str)
11401140 // Last
11411141 if ( i + 1 == cases . Length )
11421142 {
1143- cases [ i ] = $ "case { switchValues [ i ] } :{{{finalBlocks[i]}{ doLoopName } =false;break;}}";
1143+ cases [ i ] = $ "case { switchValues [ i ] } :{{{finalBlocks[i]}{ doLoopName } ={ InjectBool ( str , false ) } ;break;}}";
11441144 }
11451145 // Not last
11461146 else
@@ -1150,7 +1150,7 @@ private void Flow(ref string str)
11501150 var tmp1 = new byte [ 8 ] ;
11511151 Array . Copy ( tmp2 , 0 , tmp1 , 0 , 4 ) ;
11521152 Array . Copy ( tmp3 , 0 , tmp1 , 4 , 4 ) ;
1153- var baseDecryptor = ByteArrayToString ( tmp1 ) ;
1153+ var baseDecryptor = ByteArrayToString ( str , tmp1 ) ;
11541154
11551155 cases [ i ] = $ "case { switchValues [ i ] } :{{{finalBlocks[i]}{ switchName } ={ _xorDecryptorFunction } ({ baseDecryptor } );break;}}<block>";
11561156 }
@@ -1159,7 +1159,7 @@ private void Flow(ref string str)
11591159 // Generate output
11601160 var caseOutput = cases . Aggregate ( string . Empty , ( current , c ) => current + c ) ;
11611161 var innerOutput = cases . Length < 2 ? caseOutput : $ "<swap>{ caseOutput } <swap/>";
1162- var output = $ "<swap>int { switchName } ={ switchValues [ 0 ] } ;bool { doLoopName } =true;<swap/>while({ doLoopName } ){{switch({ switchName } ){{{innerOutput}}}}}";
1162+ var output = $ "<swap>int { switchName } ={ InjectInt ( str , switchValues [ 0 ] ) } ;bool { doLoopName } ={ InjectBool ( str , true ) } ;<swap/>while({ doLoopName } ){{switch({ switchName } ){{{innerOutput}}}}}";
11631163
11641164 // Replace
11651165 str = str . Remove ( tagIndex , tagLength + endTagIndex + endTagLength ) . Insert ( tagIndex , output ) ;
@@ -1308,16 +1308,96 @@ private string[] GetCodeBlocks(string str)
13081308 return blocks ;
13091309 }
13101310
1311- private string ByteArrayToString ( byte [ ] byteArray )
1311+ private string ByteArrayToString ( string str , byte [ ] byteArray )
13121312 {
13131313 var returnSb = new StringBuilder ( "new byte[] {" ) ;
13141314 foreach ( var b in byteArray )
13151315 {
1316- returnSb . Append ( ' ' + b . ToString ( ) + ',' ) ;
1316+ returnSb . Append ( ' ' + InjectByte ( str , b ) + ',' ) ;
13171317 }
13181318 returnSb . Remove ( returnSb . Length - 1 , 1 ) ;
13191319 returnSb . Append ( "}" ) ;
13201320 return returnSb . ToString ( ) ;
13211321 }
1322+
1323+ private string InjectByte ( string str , byte b )
1324+ {
1325+ //return b.ToString();
1326+
1327+ var namespaceName = GetVariableName ( str ) ;
1328+ var className = GetVariableName ( str ) ;
1329+ var propertyName = GetVariableName ( str ) ;
1330+
1331+ Inject . Add ( $ "using System;" +
1332+ $ "namespace { namespaceName } " +
1333+ $ "{{" +
1334+ $ "public static class { className } " +
1335+ $ "{{" +
1336+ $ "public static byte { propertyName } = { b } ;" +
1337+ $ "}}" +
1338+ $ "}}") ;
1339+
1340+ return $ "{ namespaceName } .{ className } .{ propertyName } ";
1341+ }
1342+
1343+ private string InjectBool ( string str , bool b )
1344+ {
1345+ //return b.ToString().ToLower();
1346+
1347+ var namespaceName = GetVariableName ( str ) ;
1348+ var className = GetVariableName ( str ) ;
1349+ var propertyName = GetVariableName ( str ) ;
1350+
1351+ Inject . Add ( $ "using System;" +
1352+ $ "namespace { namespaceName } " +
1353+ $ "{{" +
1354+ $ "public static class { className } " +
1355+ $ "{{" +
1356+ $ "public static bool { propertyName } = { b . ToString ( ) . ToLower ( ) } ;" +
1357+ $ "}}" +
1358+ $ "}}") ;
1359+
1360+ return $ "{ namespaceName } .{ className } .{ propertyName } ";
1361+ }
1362+
1363+ private string InjectInt ( string str , int b )
1364+ {
1365+ //return b.ToString();
1366+
1367+ var namespaceName = GetVariableName ( str ) ;
1368+ var className = GetVariableName ( str ) ;
1369+ var propertyName = GetVariableName ( str ) ;
1370+
1371+ Inject . Add ( $ "using System;" +
1372+ $ "namespace { namespaceName } " +
1373+ $ "{{" +
1374+ $ "public static class { className } " +
1375+ $ "{{" +
1376+ $ "public static int { propertyName } = { b } ;" +
1377+ $ "}}" +
1378+ $ "}}") ;
1379+
1380+ return $ "{ namespaceName } .{ className } .{ propertyName } ";
1381+ }
1382+
1383+ private string InjectString ( string str , string b )
1384+ {
1385+ //return $"\"{b}\"";
1386+
1387+ var namespaceName = GetVariableName ( str ) ;
1388+ var className = GetVariableName ( str ) ;
1389+ var propertyName = GetVariableName ( str ) ;
1390+
1391+ Inject . Add ( $ "using System;" +
1392+ $ "namespace { namespaceName } " +
1393+ $ "{{" +
1394+ $ "public static class { className } " +
1395+ $ "{{" +
1396+ $ "public static string { propertyName } = \" { b } \" ;" +
1397+ $ "}}" +
1398+ $ "}}") ;
1399+
1400+ return $ "{ namespaceName } .{ className } .{ propertyName } ";
1401+ }
13221402 }
13231403}
0 commit comments