首页
社区
课程
招聘
[旧帖] [求助].net编译时检测软件授权的原理是什么?(强签名+License) 0.00雪花
发表于: 2011-6-12 17:33 1940

[旧帖] [求助].net编译时检测软件授权的原理是什么?(强签名+License) 0.00雪花

2011-6-12 17:33
1940
  
最近搞这样一个组件,编译时会在VS2008窗口上弹出一个对话框,提示你只有7天的试用期。
  
如果用ildasm反编译成il再编回去,编译时提示“LC.exe”以退出,代码为-1。
  
如果把Properties下的licenses.licx文件删除,运行时出错。程序停在了:
        mscorlib.dll!System.AppDomain.ExecuteAssembly(string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args) + 0x3a 字节       
位置。
  
请教坛里大虾,这样的程序该如何爆破,其运作原理是什么?
头回遇到这种情况,纠结了

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果把licenses.licx文件置空,编译时会提示dll不存在,也就是说,引用失败。

晕了,这是什么原理啊?
2011-6-12 17:53
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
檢查強簽名,如果不知道什麽是強簽名,請百度,。。
2011-6-13 10:31
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
你真的很傻,沒有人敢使用反混淆工具反混淆后來使用dll,,,反混淆工具不是萬能,會將你dll丟失很多函數和類的調用。。。。我一般不使用反混淆工具,你是非常非常新的手
2011-6-13 10:49
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
老大,我没用反混淆工具,只是用ILDASM和ILASM处理IL文件而已,中间的修改过程都是手工的。ILDASM->ILASM这个过程不会损失信息吧?

我所搞不懂的是这个编译时验证强签名的执行流程,要有个直观的流程描述图就好了。

网上搜到的信息都是如何破解强签名,看了个一头雾水,还是没搞清强签名的检测和执行流程。我认为知道了运行流程,才能有针对性地阻断其检测过程,所以一直想搞清楚微软这套东东的运行逻辑。:)
2011-6-15 07:05
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这绝不是一个简单问题,它可以在编译时保护自己,而不是运行时。

现在已经可以修改IL并重新签名了,但修改后的dll文件会在编译时报错,提示你相关类名称并未引入。

据此分析,VS2008在编译时调用了dll中的某些代码,dll据此实现自我保护,禁止编译过程的继续执行。这个流程目前不清楚在哪儿,继续寻找中...
2011-6-15 09:45
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
你騙不了我的,上次的ConsoleDemo包里的dll文件,,,就是你使用反混淆工具做的,,你已經重新上傳了,這個沒有使用反混淆工具做的,,,,,你能騙的了我嗎?呵呵呵,你不老實。。。。。
2011-6-15 10:14
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
现在讨论的是编译时验证和运行时授权的运行原理问题,与混淆与否完全没有关系嘛。
2011-6-15 14:09
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
就是你搞的dll不能運行,,,,,爲什麽我們做出來的可以?本來別人想幫你,,,但是,,,,
2011-6-15 18:11
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
抱歉,我的意思是想搞清楚这个dll在自我保护方面的运行过程和原理,而不仅仅是爆破它。

感谢支持,继续研究中...
2011-6-15 22:26
0
雪    币: 221
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
没怎么仔细看
但混淆方面的话,初步判断仅仅是名称混淆
流程混淆都没有
LZ静态分析下好了

至于licenses.licx置空会导致dll引用失败的问题
从licenses.licx的内容来看,貌似就是利用反射找dll
你如果置空,当然没法找相关dll了
删除自然更不行了,文件都找不到
这个就是本dll自校验的原理,这代码静态分析肯定能分析出来,呵呵
难度应该不大
LZ继续分析下好了:)

PS:crackdung,似乎没必要上升到骗的高度,呵呵
也不需要强调LZ是新手,每个人都是从不会到会的
你这样的话,会让新手无所适从的,呵呵
以上看的不爽,可以无视:)
2011-6-15 22:42
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
从licenses.licx的内容来看,貌似就是利用反射找dll
你如果置空,当然没法找相关dll了


感谢楼上高手提示的新方向,照此推断,也许是dll文件中有某些设置属性,引发了VS2008的编译时判断逻辑,根据licenses.licx文件中的类名称做反射引入,如果licenses.licx文件清空或不存在,就载入失败,无法与exe进行链接。这个后台程序,应该就是异常中提到的LC.exe?

继续研究中,多谢。
2011-6-16 13:05
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
不需要 licenses.licx
2011-6-16 15:37
0
游客
登录 | 注册 方可回帖
返回
//