本文为原创作品,转载请注明出处,作者:Chris.xisaer E-mail:69920579@qq.com

QQ群3244694

补丁下载地址:https://download.csdn.net/download/xsdn123/71921978

https://github.com/hansiyuan1983/Reflector-path/releases

程序下载地址:

官方下载:

.NET Decompiler: Decompile Any .NET Code | .NET Reflector (red-gate.com)
https://www.red-gate.com/products/dotnet-development/reflector/

1.关于C#的反编译软件xx,其实非常简单。我会在下面的教程加以说明。希望有需要的同学参考技术要点,不要用于商业目的。

2.本次xx只是技术展示,不用于任何商业目的,如有需求请购买正版软件。也希望官方尽快修复漏洞。

3.如果需要交流技术的可以加本人的QQ群3244694(确实很LOW但是没办法咱们国家的特色),我看现在网上很多的教程只是教你123,但是不教你为什么写123,希望能懂我意思。

转入正题!!

估计能看到这篇文章的人 因该知道什么是Refector.以及它的用处。这里我就不在赘述了。

本次xx的版本是目前此程序的最新版本 11.1 trial.版。xx方式是暴力xx。如果喜欢写注册机的朋友,我下面会告诉你他的注册算法在那个文件中。你可以自己研究一下搞定他的注册机制。

先来张图没xx的时候是什么样子!

程序弹出一个模态对话框提示到期,并给出两个按钮。一个是激活一个是关闭程序。

当我们点击激活的时候会弹出输入激活KEY 和电子邮件地址的对话框。点击另一个便是直接退出程序。

下面 开搞!

既然是C#的程序 自然是通过IL 中间语言翻译器运行的程序。我们打开能反编译此类程序的软件,有很多。推荐两个,一个是微软自带的ildasm(ilasm),另外还有一个就是ILSPY。这两个你用哪个查看都可以。当然最好用的还是咱们下面要xx的这个Reflector。

我们用ILSPY打开目标软件:

我们会发现Reflector有很多的类。可能有些朋友没有学过C#(本人就是)。你就当C++看就行。我们当然要找到我们关心的类。什么是我们关心的?

这里我先说下破软件的xx法很多,比如1.找到负责激活的函数研究其算法写出相应的注册机。2.直接跳过验证程序或者更改验证结果。3.直接屏蔽此模态对话框让程序跳过检测。等等吧。因为方法太多了我这里就不一一列举的,喜欢xx的朋友们可以自己开阔思维。

那么对于这种基本直接源代码给你到眼前的代码。我们就没什么可说的了。先看看源代码里的哪些命名空间是我们需要的。

对就是这个名字空间 Licensing.从他的英文名字我们就能猜到 这是关于许可证相关的类的集合。

我们点进去看发现了几个 类。第一个BouncerParms 是保镖类的参数类。也就是负责监视我们对程序许可证做什么的类的一些参数的类。

第二个是版本信息类Edition. 这个公司在给版本信息的时候一共给了这么几个:

internal enum Edition
{
None = 0,
Standard = 1,
VS = 2,
VSPro = 3,
Evaluation = 10
}

我们现在的TRIAL 就是None=0;

但是这个是无法修改的,因为修改也没用。。。

继续往下看 EndTrialScreen类 从名字就能看出来这是构建我们试用结束对话框那类,当我们试用结束后程序会初始化这个类,并加载对话框。这个对话框是模态的 也就是说他的存在我们不能使用程序的任何功能。

好现在回到刚才的问题:我们关心什么?

我们就是关心这个对话框。我们让程序跳过调用这个类直接到下面正常程序的初始化就可以继续使用这个Reflector。

下面我们点击EndTrialScreen:

我们会看到这个类的完整定义是不是很赞?这可比反编译C的程序简单多了。

可以看到这个几个方法 Reflector.Application.Licensing.EndTrialScreen.ActivateClick

private void ActivateClick(object sender, RoutedEventArgs e)
{
TheBouncer.EnterSerialNumber(new Win32Helper
{
Handle = new WindowInteropHelper(this).Handle
});
if (TheBouncer.Licence.Activated)
{
base.DialogResult = true;
}
if (TheBouncer.IsEvaluation)
{
base.DialogResult = true;
}
}

Reflector.Application.Licensing.EndTrialScreen.CloseClick

private void CloseClick(object sender, RoutedEventArgs e)
{
Environment.Exit(-1);
}

这两个就是相关的两个按钮的 对应方法(函数);

第二个方法不用说就是退出程序。我们来看第一个方法。其中有一项条件判断:

if (TheBouncer.Licence.Activated)
{
base.DialogResult = true;
}
if (TheBouncer.IsEvaluation)
{
base.DialogResult = true;
}
当程序的需可能是激活状态的时候 对话框的值为真,当程序有评估版本值的时候对话框的值为真。注意这里的值为真并不是显示不显示对话框!

我们这里关心的就是这个Licence.Activated.方法。我们找到Licence类的对应方法中去看看!

在哪里呢?找不到啊。没在Reflector的名字空间中。这个类是一个DLL 导入类 导入的DLL 是RedGate.Licensing.Client中。

我们进入到这个命名空间中的Lisence类:

我们可以研究一下这个类 :从这些方法的名字我们可以看出相应的功能。

第一个便是刚才提到的ACTived 是一个BOOL 类型的变量 记录程序是否已经注册。

另外比较有价值的是下面这些方法!

其中CreateNewXXX函数是关于如何生成注册许可证算法的函数。有兴趣的童鞋可以看一下,我列出一个:

public static Licence CreateTamperedLicence(string machineHash, int productCode, string productName, string displayName, int majorVersion, int minorVersion, DateTime utcNow, string location)
{
Licence licence = CreateNewTrialLicence(machineHash, productCode, productName, displayName, majorVersion, minorVersion, utcNow, 0, location);
licence.Status = TrialStatus.Tampered;
if (0 == 0)
{
licence.TrialLength = 14;
}
return licence;
}

通过机器硬件的哈希数值,产品代码。产品名字 等等等弄出来的一个算法。。。是不是很复杂。。不关心了因为我们没有打算做注册机。。我们爆破。。

回到我们关心的话题,我们不希望产生那个提示对话框。我们还希望程序继续运行。。。

在调头来看一下在EndTrialScreen类下面。有个LicenceChecker类 我们进去看:

里面只有两个函数。我们只关心一个 就是 CheckLicense:

public void CheckLicense(IServiceProvider serviceProvider)
{
try
{
TheBouncer.Parms = new BouncerParms(m_MainWindow?.Icon, "Thank you for trying .NET Reflector", ".NET Reflector is a class browser, analyzer, and decompiler for .NET code.", ".NET Reflector");
if (!TheBouncer.CheckLicence(m_MainWindow, Edition.Standard, serviceProvider))
{
m_InternalApplicationManager.Exit();
}
if (TheBouncer.Licence.Activated)
{
m_ProBanner?.Close();
}
m_InternalApplicationManager.UpdateTitleBar();
}
catch (Exception exception)
{
ILog logger = LogService.GetLogger(GetType().FullName);
logger.Fatal("Error checking Licensing", exception);
Environment.Exit(71);
}
}

我们看一下 这个就很清楚了 是验证程序。当验证没有通过后 退出程序管理器。也就是退出程序。如果验证是ACTIVATED的许可证,那么关闭广告条执行程序管理器类的标题更新 并继续初始化程序。这里就是我们要更改的第一个地方 我们看一下翻译器翻译过来的语言

这里你只需要懂一点IL 语法就可以。

这里我们要修改的就是程序的25行我们把

brfalse.s ->(32)call RedGate.licensing.Client XXXXXXXXXXXXXXX_LICENCE()

修改为

brtrue.s ->(32)call RedGate.licensing.Client XXXXXXXXXXXXXXX_LICENCE()

也就是说当我们没有许可证的时候验证通过!

当然这里只改这个虽然可以用但是还是会弹出对话框,必须手动关闭对话框才能继续使用程序。

我们继续寻找需要的就是连对话框你也不要出是话直接初始正常的程序 跳过验证对话框。

我们来看这里

这就是我们开头说的要关注的哪个保镖类,他里面也有一个CHECKLICENCE 方法这个方法就是用来初始化提示我们试用已过期哪个模态对话框的,我们这里还是看他的翻译程序:

这里我就不继续说明我们怎么改了,留给童鞋们自己思考把。这里修改后我们就可以爽快的用Reflextor 。

破解后的程序:

本文为原创作品,转载请注明出处,作者:Chris.xisaer E-mail:69920579@qq.com

QQ群3244694
————————————————
版权声明:本文为CSDN博主「xsdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xsdn123/article/details/122171076

破解C#反编译软件Reflector 11.1.0.2167(最新版)(附补丁下载)的更多相关文章

  1. 专注于C#.Net WPF软件开发-软件反编译-软件破解-逆向-靖芯科技-包括安卓APK反编译

    靖芯科技提供.Net软件开发,软件修改定制二次开发,软件破解,反编译,逆向等各项优质服务: 包括安卓APK软件反编译. 包括但不限于C#,WPF,Surface,Winform,Asp.net.JAV ...

  2. 如何保护.net中的dll文件(防破解、反编译)

    如何保护.net中的dll文件(防破解.反编译) 2010-07-19 15:08 [小 大] 来源: 赛迪网 评论: 0 分享至:      百度权重查询 词库网 网站监控 服务器监控 SEO监控  ...

  3. .NET反编译之Reflector

    .NET反编译之Reflector 这几日由于公司需要, 看了些.NET反编译技巧,特地和大家分享下 .NET反编译工具很多,Reflector是其中一个很优秀的工具,所以就用它来进行反编译工作了.今 ...

  4. net破解一(反编译,反混淆-剥壳,工具推荐)

    net破解一(反编译,反混淆-剥壳,工具推荐) 大家好,前段时间做数据分析,需要解析对方数据,而数据文件是对方公司内部的生成方式,完全不知道它是怎么生成的. 不过还好能拿到客户端(正好是C#开发)所以 ...

  5. dnSpy 强大的.Net反编译软件

    作者:D.泡沫 一说起.net的反编译软件,大家首先想到的就是Reflector,ILSpy,dotPeek等等.而dnSpy同样是一款优秀的反编译软件,同时它是开源免费的.官方的描述是: dnSpy ...

  6. .Net反编译软件

    .Net反编译软件 https://www.cnblogs.com/xiandnc/p/10132491.html 一说起.net的反编译软件,大家首先想到的就是Reflector,ILSpy,dot ...

  7. ILSpy反编译软件的使用

    早期.Net平台下的反编译软件一般用reflector,但自从其商业化后就没有使用了,现在主要用ILSpy查看dll的源码,其开源.免费的特点很快就流行开来,功能和性能丝毫不逊于reflector   ...

  8. (转)dnSpy 强大的.Net反编译软件

    目录 1. Debug外部引用的Dll文件2. 调试应用程序3. 修改exe文件的内容 作者:D.泡沫 一说起.net的反编译软件,大家首先想到的就是Reflector,ILSpy,dotPeek等等 ...

  9. .NET反编译工具 .net Reflector_8.3.0.95 下载激活

    在网上找了很久,很多地方都没有注册机,终于机缘巧合下找到了这个有注册机的反编译工具,放于百度网盘,供大家下载 里面有包含如何破解,不过此处也多做一次解释: 注:1.记得断开网络 2.至于杀毒软件,我没 ...

随机推荐

  1. adjust, administer

    adjust to just, exact. In measurement technology and metrology [度量衡学], calibration [校准] is the compa ...

  2. day10设置文件权限

    day10设置文件权限 yum复习 1.修改IP [root@localhost ~]# sed -i 's#.200#.50#g' /etc/sysconfig/network-scripts/if ...

  3. MySQL索引背后的数据结构及算法原理 【转】

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  4. windows Notepad++ 上配置 vs 编译器 , 编译并运行

    windows 中 配置 vs编译器 在Linux下,Kris是倾向于在终端中使用gcc和g++来编译C/C++的,在Windows下相信很多人都是选择臃肿的Visual Studio,我亦不免如此. ...

  5. linux 常用清空文件方法

    1.vim 编辑器 vim /tmp/file :1,$d  或 :%d 2.cat 命令 cat /dev/null > /tmp/file

  6. UILabel总结

    UILabel 能显示文字,不能直接通过addTarget...方法监听点击 1. 常见属性 @property(nonatomic,copy) NSString *text; 显示文字 @prope ...

  7. SpringCloud微服务服务间调用之OpenFeign介绍

    开发微服务,免不了需要服务间调用.Spring Cloud框架提供了RestTemplate和FeignClient两个方式完成服务间调用,本文简要介绍如何使用OpenFeign完成服务间调用. Op ...

  8. 加密解密、食谱、新冠序列,各种有趣的开源项目Github上都有

    Github上是我们程序员学习开源代码.提升编程技巧的好地方.好学校,但是除了学习,小伙伴们有没有发现过Github上一些特别有意思的项目呢? 今天TJ君就来和大家分享几个自认为特别有趣的开源项目: ...

  9. java基础---局部变量和全局变量

    1.成员变量的概念: 成员变量就是属于类的变量,在类中,方法体外定义的变量 1)成员变量又分为两种: 类变量(又称静态变量) 实例变量(又称非静态变量) 类变量(静态变量)   :是被static所修 ...

  10. Pythonweb采集

    一.访问页面 import webbrowser webbrowser.open('http://www.baidu.com/')    pip3 install requests import re ...