多读书多实践,勤思考善领悟

关于.Net、C#开发的软件破解

本文于1952天之前发表,文中内容可能已经过时。

实现方法如下:

  1. 查壳,用Exeinfo等查壳工具查壳,无壳直接反编译;
  2. 去壳,有壳用对应的去壳工具脱壳;
  3. 反编译源码,用dnSPY、ILSPY、Net Reflector或doPeek反编译工具反编译软件源码,推荐dnSPY;
  4. 分析源码,找到License验证位置,如果源码简单能够编译,直接修改源码爆破,一般的dnSPY可以一条龙搞定;否则反编译中间码爆破;
  5. 反编译中间码,通过IL DASM反编译工具,反编译出软件IL中间语言代码,VS自带或独立版,.NET破解辅助工具,IL代码查询助手
  6. 爆破,改修IL中间语言代码;
  7. IL DASM编译中间码, 生成程序。

简单例子

第一步�查壳,exeinfo。

11.png

可以看到加壳了,提示de4dot,那么下面就用它来脱脱试试。
第二步:去壳。

3.png

脱壳成功!

第三步:ILSPY反编译源码。

第四步:分析源码。
结合官方的介绍,如下:

aa.png
qq.png

官方给我们了提示,如何设置license和检测license,根据这些信息,去跟踪代码,可以得出下面的结论:
1、Class233.Boolean_0 为false
2、Class232.smethod_0,返回false
3、LicenseManager中的AddLicense只保留LicenseManager.concurrentBag_0.Add(new Tuple<string, string>(licenseName.Trim(), licenseKey.Trim()));
LicenseManager.concurrentBag_0.Count 必须>0
4、Class233的smethod_8直接返回true
5、class233的smethod_7,该方法为校验授权码的,直接返回true

第五步:直接爆破。
打开 dnspy,开始按照上面的说明,逐个进行修复即可完成!

wwwwwwwwwwww.png