.net反编译后发现代码混淆了,求助

wjp16351 2013-02-28 05:55:38
一个dll文件,通过Reflector反编译后 发现代码混淆了,具体反编译后的代码如下:


public class GetS
{
private static int AA85qUeMJ7LBM)FlQDDEclAD9AtZ(int num1, string text1)
{
text1 = text1.ToLower();
IList<StatStructure> CS$1$0000 = WebsiteConfig.AFZk3du(num1);
if ((CS$1$0000 != null) && (CS$1$0000.Count > 0))
{
foreach (StatStructure structure in CS$1$0000)
{
if (structure.Type == 1)
{
string[] strArray = structure.Rule.Split(new char[] { ';', 0xff1b }, StringSplitOptions.RemoveEmptyEntries);
foreach (string str in strArray)
{
if (text1.IndexOf(str.ToLower().Trim()) > -1)
{
return structure.id;
}
if (((str.IndexOf(A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("XgA=")) == 0) && (str.LastIndexOf(A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("JAA=")) == str.Length)) && (new Regex(str.Trim(), RegexOptions.IgnoreCase).Matches(text1).Count > 0))
{
return structure.id;
}
}
}
}
}
return 0;
}

private static int ABVaqkgK(int num1, string text1)
{
text1 = text1.ToLower();
IList<StatStructure> CS$1$0000 = WebsiteConfig.AFZk3du(num1);
if ((CS$1$0000 != null) && (CS$1$0000.Count > 0))
{
foreach (StatStructure structure in CS$1$0000)
{
if (structure.Type == 0)
{
string[] strArray = structure.Rule.Split(new char[] { ';', 0xff1b }, StringSplitOptions.RemoveEmptyEntries);
foreach (string str in strArray)
{
if (text1.IndexOf(str.ToLower().Trim()) > -1)
{
return structure.id;
}
if (((str.IndexOf(A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("XgA=")) == 0) && (str.LastIndexOf(A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("JAA=")) == (str.Length - 1))) && (new Regex(str.Trim(), RegexOptions.IgnoreCase).Matches(text1).Count > 0))
{
return structure.id;
}
}
}
}
}
return 0;
}

private static string ACZ9()
{
if ((HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("cgBlAGYAZQByAGUAcgA=")] != null) && (HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("cgBlAGYAZQByAGUAcgA=")].Length > 0))
{
return HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("cgBlAGYAZQByAGUAcgA=")].ToLower().Trim();
}
if ((HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("SgBzAGwAbwBjAGEAdABpAG8AbgA=")] != null) && (HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("SgBzAGwAbwBjAGEAdABpAG8AbgA=")].ToLower() == A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("dAByAHUAZQA=")))
{
return A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("SgBTAPONbI91mGKXGv/gZdVsl1/ld3dRU09lZ5Bu");
}
return "";
}

private static string ADZpe()
{
if (HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("bABvAGMAYQB0AGkAbwBuAA==")] != null)
{
return HttpContext.Current.Request.QueryString[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("bABvAGMAYQB0AGkAbwBuAA==")].ToLower().Trim();
}
if (HttpContext.Current.Request.ServerVariables[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("SABUAFQAUABfAFIARQBGAEUAUgBFAFIA")] != null)
{
return HttpContext.Current.Request.ServerVariables[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("SABUAFQAUABfAFIARQBGAEUAUgBFAFIA")].ToLower().Trim();
}
return "";
}

private string AEEJOXG(string text1)
{
string CS$1$0000 = A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("MAA=");
Process process = new Process();
process.StartInfo.FileName = A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("bgBiAHQAcwB0AGEAdAA=");
process.StartInfo.Arguments = A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("LQBhACAA") + text1;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string str = process.StandardOutput.ReadToEnd();
int index = str.IndexOf(A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("TQBBAEMAIABBAGQAZAByAGUAcwBzACAAPQA="));
if (index > 0)
{
CS$1$0000 = str.Substring(index + 14, 0x11);
}
HttpContext.Current.Response.Cookies[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("TQBhAGMA")].Value = CS$1$0000;
HttpContext.Current.Response.Cookies[A06LxsBj0VQKH.AA85qUeMJ7LBM)FlQDDEclAD9AtZ.AGaa("TQBhAGMA")].Expires = DateTime.Now.AddMonths(1);
return CS$1$0000;
}





不知道这个是用什么工具混淆的,能否反混淆!! 谢谢
...全文
460 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
色拉油 2013-03-01
  • 打赏
  • 举报
回复
自己手工处理吧
yyl8781697 2013-03-01
  • 打赏
  • 举报
回复
接受现实了把 大致能看出来就可以了,看到只是变量被混掉了 逻辑还是能看的很清楚的
Ho_Johnson 2013-03-01
  • 打赏
  • 举报
回复
编译后的变量名是转不会来的
宝_爸 2013-03-01
  • 打赏
  • 举报
回复
混淆应该是不可逆的。
  • 打赏
  • 举报
回复
你觉得什么变量名(或者方法名)合适就替换一下呗。大不了先随便给个大概的命名,然后以后有新的想法再替换。 比如说我在编译前把变量 rule 一律替换为 a88s77ss,你还要怎么“读”? 动动你的脑就迎刃而解了,不要幼稚地“反混淆”。
ycproc 2013-02-28
  • 打赏
  • 举报
回复
这样已经不错了,还想怎么反。
threenewbee 2013-02-28
  • 打赏
  • 举报
回复
还原不出来鸟。 这就好比一个码农程序员乱给变量函数起名,难道有软件可以嗖地一下把这些变量名都修改成命名规范的变量名么?
孤零落叶寒 2013-02-28
  • 打赏
  • 举报
回复
呃,混淆的很少有反混淆的,混淆就是把原来自己设置的有含义或无含义的属性方法修改成随机的,他又不明白人的意思,反混淆跟混淆差不多,就是反混淆产生的字段简单点。你查找替换下不就行了
gxingmin 2013-02-28
  • 打赏
  • 举报
回复
混淆的不严重,只是把函数名字和部分变量名字混淆了,很好翻译过来

62,046

社区成员

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

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

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

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