首页
论坛
课程
招聘
[原创]自己动手,弄了个字符串反混淆
2008-8-26 16:59 7960

[原创]自己动手,弄了个字符串反混淆

2008-8-26 16:59
7960
有时候会看到反编译后的程序里面,所有的字符串都是乱乱代码,然后要通过类似下面一样的函数进行类似的解析,才知道明文是啥。

 
   byte[] bytes = Convert.FromBase64String(param0);
    return Encoding.Unicode.GetString(bytes, 0, bytes.Length);


后来就自己写了个,在C#.NET 2005下,
下面是正则部分
            string Patt = @"(?<line>IL_\w+:\s+ldstr\s+)(?<con>(""\w+(\=){0,2}"")(\s+\+\s""\w+(\=){0,2}"")*(\s+\+\s""\w+(\=){0,2}"")?)(?<clear>\s+IL_\w+:\s+call\s+string\sNS005\.c02000025::m06000155\(string\))";
            Regex regex = new Regex(Patt, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
            string strText = regex.Replace(strTxt, new MatchEvaluator(relp));


1、NS005\.c02000025::m06000155这个就是反编译后,程序带的字符串需要解析的方法名称
2、我的IL的格式如下,这是需要解析的乱乱的麻,如果有不同的格式适当修正下正则
    IL_00e7:  ldstr      "MAAAwAH0AIAA3ADAIAAxAEIIAAAIAAwAEYAIAAxAEUA"
    IL_00ec:  call       string NS005.c02000025::m06000155(string)


下面的替换部分
        private string relp(Match m)
        {
            string strRe = "";
            string strLine = m.Groups["line"].Value;
            string strCon = m.Groups["con"].Value;
            string clear = m.Groups["clear"].Value;
            strCon = replc_n_r(strCon).Replace(@"""", "");
            strCon = Base64Format(strCon).Replace("\n", "\\n").Replace("\r", "\\r");//
            strCon = String.Format(@"""{0}""", strCon);
            return strLine + strCon;
        }
        private string replc_n_r(string str)
        {
            string strRe = "";
            string patten = @"""\s+\+\s""";
            Regex regex = new Regex(patten, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
            strRe = regex.Replace(str, "");
            return strRe;
        }


我目前基本上能解决自己的问题,如果用起来不能解决你的问题,留言大家一起与论坛的同学研究

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 5536
活跃值: 活跃值 (56)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 活跃值 26 2008-8-26 20:23
2
0
有一种传说,会re的人都很强大
雪    币: 5002
活跃值: 活跃值 (169)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
tankaiha 活跃值 29 2008-8-26 21:06
3
0
挺好的方法
re还可以用于简单的反混淆
游客
登录 | 注册 方可回帖
返回