用Xenocode混淆的C#代码,能反混淆吗

andy0618 2010-05-28 03:58:08
大家看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;
...全文
2929 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffeebull 2012-07-06
  • 打赏
  • 举报
回复
可以,有这样的活可以找我, XENOCODE、MAXTOCODE加密 、Dotfuscator混淆三种我那可以反,需要的QQ联系17413186,收费的
sphinger 2011-11-22
  • 打赏
  • 举报
回复
理论来说过程混淆是可逆的~
hguchen 2010-09-07
  • 打赏
  • 举报
回复
应该可以反。
andy0618 2010-05-29
  • 打赏
  • 举报
回复
混淆后的,我是看不懂的

而且把混淆后的代码,放到VS2008里再编译,错误很多,编译不通过

不知道.NET怎么执行混淆后的代码的
andy0618 2010-05-29
  • 打赏
  • 举报
回复
我们也是怕竟争对手破解我们的软件啊,现在软件竞争很激烈

我只是想知道,混淆的,是不是很容易被反混淆,注册的是不是很容易被破解




下面是
未混淆前的类

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
using System.IO;
/// <summary>
///Logo 的摘要说明
/// </summary>
public class Logo
{
public Logo()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
//取images\\System目录下的所有图片文件
public ArrayList GetLogo()
{
ArrayList ary = new ArrayList();
DirectoryInfo DI = new DirectoryInfo(Common.GetSystemPath("../")+"images\\System");

FileInfo[] files = DI.GetFiles();

foreach (FileInfo file in files)
{
string tempFileName = file.Name;
if (PicMSet.PicSuffixHT[file.Extension.ToLower().Substring(1, file.Extension.Length-1)] != null)
{
ary.Add(tempFileName);
}

}

return ary;
}
}





以下是混淆后的


namespace xb9d8bb5e6df032aa
{
using System;

internal class Ԕ
{
public static string _ԕ(string Ԗ, int ԗ)
{
char[] chArray;
int num2;
ushort num3;
string str;
bool flag;
ushort num = (ushort) ԗ;
if (num3 > uint.MaxValue)
{
goto Label_01C1;
}
Label_007E:
flag = ((uint) ԗ) > uint.MaxValue;
if (flag)
{
goto Label_01D3;
}
if ((num + ((uint) flag)) <= uint.MaxValue)
{
chArray = new char[Ԗ.Length / 4];
if ((num | 3) == 0)
{
goto Label_00FB;
}
if ((((uint) num2) - ((uint) num2)) > uint.MaxValue)
{
goto Label_007E;
}
}
if (num >= 0)
{
if ((((uint) flag) - num) < 0)
{
goto Label_01D3;
}
num2 = 0;
}
else if (0 == 0)
{
if (((uint) ԗ) <= uint.MaxValue)
{
return str;
}
goto Label_007E;
}
goto Label_016D;
Label_00DA:
num3 = (ushort) (num3 - num);
if ((((uint) num2) + num3) >= 0)
{
}
chArray[num2] = (char) num3;
num = (ushort) (num + 0x6fd);
flag = (((uint) ԗ) + ((uint) ԗ)) > uint.MaxValue;
goto Label_0212;
Label_00FB:
if ((num3 - ((uint) ԗ)) <= uint.MaxValue)
{
goto Label_00DA;
}
Label_0115:
if (!flag)
{
goto Label_01F1;
}
goto Label_00DA;
Label_016D:
if (num2 >= (Ԗ.Length / 4))
{
goto Label_01D3;
}
num3 = (ushort) ((((Ԗ[4 * num2] - 'a') + ((Ԗ[(4 * num2) + 1] - 0x61) << 4)) + ((Ԗ[(4 * num2) + 2] - 0x61) << 8)) + ((Ԗ[(4 * num2) + 3] - 0x61) << 12));
goto Label_00FB;
Label_01C1:
if (((uint) flag) <= uint.MaxValue)
{
goto Label_016D;
}
Label_01D3:
str = new string(chArray);
if ((((uint) ԗ) & 0) != 0)
{
goto Label_016D;
}
if ((num - ((uint) num2)) < 0)
{
goto Label_0212;
}
if (-2 == 0)
{
goto Label_00FB;
}
return str;
Label_01F1:
num2++;
goto Label_01C1;
Label_0212:
if ((((uint) ԗ) + ((uint) ԗ)) >= 0)
{
goto Label_0115;
}
goto Label_01F1;
}
}
}

andy0618 2010-05-29
  • 打赏
  • 举报
回复
这确实是Xenocode混淆的代码

是我用Xenocode混淆的啊,并不是要破解别人的啊

  • 打赏
  • 举报
回复
如果这是Xenocode的混淆结果,那么Xenocode也不怎么样哦。这种东西顶多会让你把读代码的时间从10分钟变成2个小时,但是不会隐藏什么东西。

读代码根本不需要像有些人说的那样要别人一句一句给他注释,死抠代码干什么?读懂这个方法的设计接口并亲自编写一些(反射)调用它测试,通过调整测试用例就可以把握它了。
  • 打赏
  • 举报
回复
你确定你贴出的是什么“用Xenocode混淆的c#代码”?懂得修改几个标签,但是难道连局部变量的命名都不知道修改?

文不对题的问题,是会严重误导一些人的。你的那些Label之类的跟混淆没有关系,这说明它们根本就是编译器自动生成的正常的代码,不需要混淆也是这样的。
crackdung 2010-05-29
  • 打赏
  • 举报
回复
反混淆后一般能读懂流程

my blog
http://ufo-crackerx.blog.163.com/
andy0618 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
IL文件字符串反混淆工具
[/Quote]

真的可以反混淆吗
wuyq11 2010-05-28
  • 打赏
  • 举报
回复
IL文件字符串反混淆工具
阿良chjlcn 2010-05-28
  • 打赏
  • 举报
回复
等待高手
jiezi316 2010-05-28
  • 打赏
  • 举报
回复
貌似不能
andy0618 2010-05-28
  • 打赏
  • 举报
回复
没有回答吗,高手在哪里

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧