用Xenocode混淆的C#代码,能反混淆吗
大家看Xenocode混淆的代码,怎么能反混淆过来呢
我看到都用Label_0055等过程语句了,还能反回到正常的源码吗
char[] chArray;
int num2;
ushort num3;
string str;
bool flag;
ushort num = (ushort) Ԃ;
Label_0055:
flag = ((uint) Ԃ) > uint.MaxValue;
if (flag)
{
goto Label_027C;
}
if ((((uint) Ԃ) - num3) <= uint.MaxValue)
{
if (3 != 0)
{
if ((((uint) flag) - ((uint) num2)) <= uint.MaxValue)
{
if ((((uint) num2) - num3) > uint.MaxValue)
{
return str;
}
goto Label_0023;
}
goto Label_0055;
}
goto Label_00A6;
}
goto Label_0082;
Label_0023:
chArray = new char[ԁ.Length / 4];
goto Label_00B1;
Label_0082:
if ((((uint) num2) + ((uint) Ԃ)) > uint.MaxValue)
{
return str;
}
goto Label_0210;
Label_00A6:
if (0 != 0)
{
goto Label_01EA;
}
num = (ushort) (num + 0x6fd);
flag = (((uint) Ԃ) + ((uint) Ԃ)) > uint.MaxValue;
goto Label_011E;
Label_00B1:
num2 = 0;
goto Label_0082;
Label_00C0:
if ((((uint) flag) - num3) > uint.MaxValue)
{
goto Label_0023;
}
if (-2147483648 != 0)
{
chArray[num2] = (char) num3;
goto Label_00A6;
}
goto Label_011E;
Label_00F8:
num3 = (ushort) (num3 - num);
if ((((uint) Ԃ) + num3) >= 0)
{
if ((num3 & 0) == 0)
{
goto Label_00C0;
}
goto Label_0239;
}
goto Label_012C;
Label_011E:
if (!flag)
{
goto Label_028B;
}
goto Label_00F8;
Label_012C:
num3 = (ushort) ((((ԁ[4 * num2] - 'a') + ((ԁ[(4 * num2) + 1] - 0x61) << 4)) + ((ԁ[(4 * num2) + 2] - 0x61) << 8)) + ((ԁ[(4 * num2) + 3] - 0x61) << 12));
if (num3 < 0)
{
goto Label_011E;
}
if ((((uint) flag) - num) >= 0)
{
if ((((uint) flag) - num3) < 0)
{
goto Label_011E;
}
}
else if ((num & 0) == 0)
{
goto Label_011E;
}
goto Label_00F8;
Label_01EA:
if ((num - ((uint) num2)) <= uint.MaxValue)
{
if (((uint) Ԃ) < 0)
{
goto Label_00B1;
}
goto Label_0252;
}
Label_0210:
if (num2 >= (ԁ.Length / 4))
{
goto Label_027C;
}
if ((((uint) num2) - ((uint) flag)) >= 0)
{
goto Label_012C;
}
goto Label_01EA;
Label_0239:
if (((uint) flag) > uint.MaxValue)
{
goto Label_028B;
}
if (0x7fffffff != 0)
{
return str;
}
Label_0252:
if ((((uint) flag) & 0) == 0)
{
goto Label_012C;
}
goto Label_00C0;
Label_027C:
str = new string(chArray);
goto Label_0239;
Label_028B:
num2++;
if ((((uint) Ԃ) | 0x80000000) != 0)
{
goto Label_0210;
}
goto Label_0239;