菜鸟中的菜鸟 发表于 2016-6-29 12:18

NET Reactor 4.8去混淆问题

某.net程序查壳如下:


尝试着用de4dot-mod-reactor 4.9去混淆,可以放到反编译器里面了查看了,但是混淆却没有去除,查看的都是乱码。如下图:


所以接下来, 要如何处理掉混淆呢??用什么工具或是方法? 求各位高手指点。谢谢。
上传下这个net程序。http://pan.baidu.com/s/1gf7BE2B

Bu弃 发表于 2016-6-29 12:18

菜鸟中的菜鸟 发表于 2016-6-29 13:23
好像你的也没有去混淆成功吧。类名和函数里面的代码都是正常的不??楼主可以看看你的“未注册”处 ...


我的是这样,其实这样就是已经去掉混淆了。至于你改了这个函数的返回值导致程序打不开,或者闪退,是因为启动的时候,他会验证时间什么的。如果成立,就直接关闭程序。你在J2h这个函数里,下个断点调试下就知道为什么会退出了。

cf8 发表于 2016-6-29 12:30

exe都玩不转。NET我还是不看了

Bu弃 发表于 2016-6-29 12:47



这样算么?

zby03772015 发表于 2016-6-29 12:53

Bu弃 发表于 2016-6-29 12:47
这样算么?

666
500到手{:6_201:}

Bu弃 发表于 2016-6-29 13:05

本帖最后由 Bu弃 于 2016-6-29 13:32 编辑


不知道有没有功能{:6_218:}
测试发现还是有点问题的

Bu弃 发表于 2016-6-29 13:05

zby03772015 发表于 2016-6-29 12:53
666
500到手

师傅教的好{:6_197:}

菜鸟中的菜鸟 发表于 2016-6-29 13:23

Bu弃 发表于 2016-6-29 13:05
师傅教的好




好像你的也没有去混淆成功吧。类名和函数里面的代码都是正常的不??楼主可以看看你的“未注册”处是否和我的一样?如果代码一模一样,说明没有去混淆成功。
如果是很清晰的代码,应该就是成功了。。这个楼主应该可能看出来的。去混淆成功再逆向的话,应该好逆向。
但是如果你的没有去混淆成功,但是还能PJ掉,,,那我就晕了,我不知道你是怎么弄。。
public static bool J2h()
{
    if (!C28.HasValue)
    {
      C28 = new bool?(B2x());
    }
    bool? nullable = C28;
    if (!(nullable.GetValueOrDefault() ? nullable.HasValue : false))
    {
      return false;
    }
    return true;
}



如果是在未去混淆下修改,好像不成功啊,我测试了, 总是闪退,,看了一下,是改的不对,猜想是因为混淆了,所以导致修改失败。。

看判断条件,当Pdk.J2h()==0时,是未注册
public static bool J2h()
{
    if (!C28.HasValue)
    {
      C28 = new bool?(B2x());
    }
    bool? nullable = C28;
    if (!(nullable.GetValueOrDefault() ? nullable.HasValue : false))
    {
      return false;
    }
    return true;
}

这个让他直接返回true应该就是注册了,我试着改过了,但是一直出错,貌似不是改法有问题,而是我怀疑是因为没有去混淆成功,
所以改的没有成功,是混淆引起的。。。。我的修改方法如下:即直接返回true



本身逆向不难,难的是不知道怎么弄干净。。如果我上述有错误,请楼主指点。






菜鸟中的菜鸟 发表于 2016-6-29 18:01

Bu弃 发表于 2016-6-29 13:37
我的是这样,其实这样就是已经去掉混淆了。至于你改了这个函数的返回值导致程序打不开,或者闪退,是因 ...

嗯,跟踪了一下,时间上有校验,所以退出了。
if (expirationDate.Subtract(DateTime.Now).TotalDays <= -100.0)
{
        base.Close();
        return;
}
修改下就可以了。。。

但是我还是感觉这不是真正的去混浊。因为程序中的函数和类名什么的,不是正常的类和函数。。所以
应该还有什么方法可以处理下的,,,看来只有等高手指点下了。

Bu弃 发表于 2016-6-29 18:18

菜鸟中的菜鸟 发表于 2016-6-29 18:01
嗯,跟踪了一下,时间上有校验,所以退出了。
if (expirationDate.Subtract(DateTime.Now).TotalDays

这已经去混淆了。不信你拖进die看看。
页: [1] 2
查看完整版本: NET Reactor 4.8去混淆问题