хорошо, так что в основном я перевел этот xor-конвертер из javascript, чтобы я мог быстрее xor-строки с помощью c + p моего кода на c ++, и он просто заменяет все строки на xor'd для меня, но это xors для всех строк с первым xorэто создало бы для первой строки любую помощь с этим, будет очень признателен.Я попытался создать цикл, но я просто потерпел неудачу и сдался.это, вероятно, то, что мне нужно сделать, мне просто нужен кто-то, чтобы показать мне, как я должен его настроить.
string Dec2Hex(int test)
{
string hex = test.ToString("X");
return hex;
}
string symbols = " !\"#$%&'()*+,-./0123456789:;<=>?@";
int toAscii(string xx)
{
var loAZ = "abcdefghijklmnopqrstuvwxyz";
symbols += loAZ.ToUpper();
symbols += "[\\]^_`";
symbols += loAZ;
symbols += "{|}~";
int loc;
loc = symbols.IndexOf(xx);
if (loc > -1)
{
//Ascii_Decimal = 32 + loc;
return (32 + loc);
}
return (0); // If not in range 32-126 return ZERO
}
byte[] randByte()
{
Byte[] RandByte = new Byte[5];
new Random().NextBytes(RandByte);
return RandByte;
}
public void RunEncrypter()
{
string test = textBox1.Text;
System.Text.RegularExpressions.Regex x = new System.Text.RegularExpressions.Regex("\"(.*?)\"", System.Text.RegularExpressions.RegexOptions.Singleline);
var matches = x.Matches(textBox1.Text);
string s1 = "";
if (matches.Count <= 0)
return;
s1 = matches[0].Groups[1].Value;
byte[] randombyte = randByte();
double xvaluestart = randombyte[0];
string xrefkill = "0x" + Dec2Hex(randombyte[1]) + Dec2Hex(randombyte[2]) + Dec2Hex(randombyte[3]) + Dec2Hex(randombyte[4]);
int finallen = s1.Length + 1;
string hexsequence = "\"";
double xvalue = xvaluestart;
for (int i = 0; i < s1.Length; i++)
{
string ch = s1.Substring(i, 1);
int chval;
chval = toAscii(ch);
if (chval == 0) { s1 = "invalid character: " + ch; return; }
chval ^= (int)xvalue;
xvalue += 1;
xvalue %= 256;
hexsequence += "\\x" + Dec2Hex(chval);
}
hexsequence += '"';
string s2 = "/*" + s1 + "*/XorStr<0x" + Dec2Hex((int)xvaluestart) + "," + finallen + "," + xrefkill + ">(";
s2 += hexsequence + "+" + xrefkill + ").s";
textBox1.Text = x.Replace(textBox1.Text, s2);
}
private void button1_Click(object sender, EventArgs e)
{
RunEncrypter();
}