-
-
[已解决]请帮忙把一小段混淆过的.net代码整理成C#代码
-
-
[已解决]请帮忙把一小段混淆过的.net代码整理成C#代码
请帮忙把一小段混淆过的.net代码整理成C#代码,谢谢先
Reflector 反编译的代码如下:
public static byte[] funcaa(string sText)
{
bool flag;
byte[] buffer;
int num2;
byte[] buffer2;
int num3;
uint num4;
uint num5;
int num = sText.get_Length();
if ((((uint) flag) & 0) == 0)
{
if ((num > 0) && ((((uint) flag) + num4) < 0))
{
}
flag = (((uint) num3) > uint.MaxValue) ? ((bool) false) : ((bool) (0 == (num % 2)));
goto Label_0186;
}
if (0 != 0)
{
return buffer;
}
goto Label_0073;
Label_0033:
if (flag)
{
num4 = (uint) (sText.get_Chars((int) (num3 * 2)) - ((sText.get_Chars((int) (num3 * 2)) >= 'A') ? 0x37 : 0x30));
if ((((uint) num2) - ((uint) num2)) >= 0)
{
if ((((uint) flag) & 0) == 0)
{
if (0 == 0)
{
if ((num5 + ((uint) num)) <= uint.MaxValue)
{
if (((uint) num) < 0)
{
goto Label_00EC;
}
if ((num4 + num4) < 0)
{
goto Label_004A;
}
}
flag = (bool) (num4 < 0x10);
if (flag)
{
num5 = (uint) (sText.get_Chars((int) ((num3 * 2) + 1)) - ((sText.get_Chars((int) ((num3 * 2) + 1)) >= 'A') ? 0x37 : 0x30));
flag = (bool) (num5 < 0x10);
goto Label_004A;
}
goto Label_00EC;
}
goto Label_019E;
}
goto Label_0189;
}
goto Label_0168;
}
buffer = buffer2;
if (3 == 0)
{
goto Label_018D;
}
return buffer;
Label_0042:
flag = (bool) (num3 < num2);
goto Label_0033;
Label_004A:
if (!flag)
{
buffer = null;
if ((num5 | 15) != 0)
{
return buffer;
}
goto Label_0033;
}
Label_004D:
buffer2[num3] = (byte) ((byte) ((num4 * 0x10) + num5));
if ((((uint) num3) - ((uint) num3)) <= uint.MaxValue)
{
num3 = (int) (num3 + 1);
goto Label_0042;
}
Label_0073:
if ((num5 & 0) == 0)
{
}
goto Label_004D;
Label_00EC:
return null;
Label_0168:
num3 = 0;
goto Label_0042;
Label_0186:
if (!flag)
{
goto Label_019E;
}
Label_0189:
num2 = (int) (num / 2);
Label_018D:
buffer2 = new byte[num2];
goto Label_0168;
Label_019E:
buffer = null;
if ((num4 - ((uint) num)) > uint.MaxValue)
{
goto Label_0186;
}
return buffer;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)