首页
社区
课程
招聘
[原创].Net软硬兼施_无所不用其极_只为获得壳里面的加密算法
发表于: 2012-2-11 19:22 8619

[原创].Net软硬兼施_无所不用其极_只为获得壳里面的加密算法

2012-2-11 19:22
8619

本篇文章个人认为蛮适合那种 不是很了解调试工具 但是知道一些高级语言的编程知识 又了解一点JIT的运作方式的小菜 还有苦于找不到现在能脱maxtocode壳范例的小菜 大神们就不要看了。。 相信照着下面的教程做完之后 对没脱过maxtocode壳的的人会有蛮多帮助的

前段时间碰到个要获得加壳dll中加密算法的任务 整了蛮久总算整出来了 所以现在写点东西给和我一样的菜鸟 也感谢看雪论坛给了我这么多资料工具 不然不知道我要走多少弯路

我把我破的那个软件简化了 然后自己写了个简单测试程序 也用maxtocode3.5.1加了壳 构造成和以前那个程序类似的例子 就是下面的程序了 这个例子也证实了现在的maxtocode依然可以通过hook jit来得到关键代码 因为我以前一直不确定 毕竟以前前辈们的教程都是06 07年的。 现在都2012了 所以开始都不确定hook这条路走不走的通  现在完了就知道 这确实是行得通的 应该是maxtocode没走JIT + VM的双路线吧 这个我猜的。。

这个软件模式如下 只有一个主程序test.exe和一个test.dll 刚开始test.dll中没加壳


然后忽然一天 程序更新了一下变成了下面这样

很明显加了壳 并且test.dll中的算法变了
现在我们手上只有test.exe test.dll McRuntime3.dll McRuntime364.dll这几个文件 我们要获取到的是封装在test.dll中的加密算法
程序输入123456和654321是提示SUCC否则FAIL

我先直接贴出test.dll里面的代码 也方便大家下面和IL代码进行对比 至于为什么定义两个函数 因为maxtocode会把private的函数名称加密 public的就不会动 所以我这里定义两个函数 好有个对比

namespace test
{
    public class Class1
    {
         // Fields
        private static Class1 _Instance;
        private string Default_Key1;
        private string Default_Key2;

        // Methods
        public Class1()
        {
            Default_Key1 = "123456";
            Default_Key2 = "654321";
        }


        private int PassOrNot(string Key)
        {
            if (Key == Default_Key1)
            {
                return 0;
            }
            else if(Key == Default_Key2)
            {
                return 0;
            }
            else
            {
                return 1;
            }

        }

        public string KeyComp(string Key)
        {
            int iRet = PassOrNot(Key);
            if (iRet == 0)
            {
                return "pass";
            }
            else
            {
                return "nopass";
            }
        }

        // Properties
        public static Class1 Instance
        {
            get
            {
                if (_Instance == null)
                {
                    _Instance = new Class1();
                }
                return _Instance;
            }
        }
    }
}
  .method public hidebysig instance string 
          KeyComp(string Key) cil managed
  {
    // Code size       2 (0x2)
    .maxstack  8
    IL_0000:  ldnull
    IL_0001:  ret
  } // end of method Class1::KeyComp

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (17)
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主很给力啊,研究的很深入期待楼主的更多作品。顶楼主
ps:为什么图看不到。
2012-2-11 20:08
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
不好意思 吃饭去了 才回来
看不到图么?
我不晓得额 为啥我这边看得到哦
2012-2-11 20:24
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
4
图片看不到,楼主重新上传一份吧
2012-2-11 23:16
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
不知道现在能不能看的到。。 不然就要求助各位了
2012-2-12 01:56
0
雪    币: 959
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有图有码 感谢lz
2012-2-12 10:04
0
雪    币: 1259
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stu
7
不错不错,学习一下。
2012-2-12 11:22
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
呵呵呵,這個能運行,,,, 1.rar
上传的附件:
2012-2-12 15:52
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=crackdung;1044409]呵呵呵,這個能運行,,,, 1.rar[/QUOTE]

为什么里面 还有maxtocode加密的那些东西?难道不是另外建立的一个dll工程 添加IL码? 还是直接把导出的IL码填回原来的库? 我如果dll中函数不是很多的话 我觉得还是建立一个新工程好些吧 还有貌似用ilspy反编译的话 不用把前面的br pop ret改为nop reflect就不行了 好像是的
2012-2-12 16:19
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
這是我自己工具調用od+ILLY轉存出來的,幾乎說是秒殺,maxtocode保留的內容對分析和運行,沒有影響
2012-2-12 21:54
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
哦 这样的哦 那些复杂点的工具我写不出来啊。不过正在努力中 暂时想先弄个简单点的程序 输入1.compCompile地址 2.函数名 3.类名  然后导出IL代码 含有问下crackdung 照这样的话maxtocode那并没有加虚拟机咯  我看RICK老早以前的帖子就说他的DNGuard HVM在加密程序里面加了虚拟机 为什么maxtocode比他先出来还没加呢? 这个我有点想不通啊eek:
2012-2-12 23:34
0
雪    币: 20923
活跃值: (4120)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
希望能看到你更多的作品(.net手脱教程)
Hope to see more of your works (.net manual unpacking tutorials) !

超级给力!
It is superb and fantastic !

谢谢!
Thanks !
2012-2-13 10:20
0
雪    币: 419
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
呵呵,正要学习,感谢分享
2012-2-14 17:30
0
雪    币: 153
活跃值: (29)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
给力啊!学习学习,先顶再看!
2012-2-14 18:07
0
雪    币: 153
活跃值: (29)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
看完了,给力啊!连我这等菜鸟都看懂了!
2012-2-14 21:05
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
很给力!好好学习,天天向上!
2012-5-15 10:17
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
楼主的贴子很给力。谢谢。
2013-10-29 17:12
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不错!不错!很给力!
2013-10-29 21:44
0
游客
登录 | 注册 方可回帖
返回
//