我们有时在使用一些小工具软件时,会提示购买License(注册码之类的东东)后才能正常使用。在这里我们来尝试直接绕过License验证直接使用软件,实现简单的软件破解。

主要实现方式:

  1. 通过反编译工具,反编译出软件源码。
  2. 分析源码,找到License验证位置。
  3. 修改反编译代码。
  4. 重现编译生成修改后软件源码。

编写License验证demo代码:

Demo程序主要逻辑:登陆界面(Lgoin.cs)验证License信息。如果验证成功显示主窗体(MainWIndow.cs)功能界面,正常使用其软件功能。

破解Demo程序

根据demo程序逻辑分析,只需把License验证代码删除或修改即可。

方法1:IL DASM

具体使用方法参考之前编写博客《C# IL DASM 使用》
缺点:
通过ildasm.exe反编译出的代码为IL 中间语言,想读懂和修改需对IL 中间语言有一定基础。

方法2:Reflector

.NET Reflector 工具本身不带修改 dll 和 exe 功能,需下载插件:Reflexil (Reflexil.Reflector.AIO.dll)。

Reflexil 插件安装方法:
Tools-->Add-Ins…--> +
点击“+”,选择下载好的Reflexil 插件路径。点击“Close”关闭窗体。

使用.NET Reflector 工具打开需反编译代码,分析需要修改代码位置。

只需删除“ if (!this.License(kay, text))” 判断代码。

开启 Reflexil 插件:tools -->“Reflexil **”

Reflexil  插件会将你选择的方法(Mothed) 生成IL 中间语言。对分析需要删除的代码找到对应IL 中间语言所在位置,进行删除。

最后保存修改后的EXE进行重新运行。 ^-^ … 简单的破解工作已完成…^-^

从 Reflexil 插件菜单上可以看出,他还有很多功能,比如:注入类,注入接口,注入枚举..等。还是很强大的一款插件。

缺点:
Reflector 工具需收费。

方法3:ILSpy

ILSyp 工具只用四个字形容:简单,粗暴。比较实用。
直接使用ILSyp 工具打开需反编译exe或dll,然后“Save Code“保存为VS能直接打开的项目。
修改代码后重新编译生成exe或dll 进行运行。

通过Save Code 保存的项目,使用VS可直接编译修改代码。

缺点:
如果源代码加壳混淆后Save Code 保存的项目VS不能正常编码通过。

C# 反编译破解软件方法的更多相关文章

  1. Android程序apk反编译破解方法

    简短不割了,我们直接奔主题吧. 把apktool-install-windows-r05-ibot文件里的两个文件剪切到apktool1.5.1目录. 新建一个文件夹把需要破解的apk应用程序放进去. ...

  2. visual SVN 反编译破解

    今天发现visual SVN 过期了.网上搜索了一下,发现了下面的贴子. http://www.heiqu.com/show-71200-1.html 一看是用.Net写的,大喜,破解就太简单了.本来 ...

  3. android 防止反编译的若干方法

    第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的混淆 ...

  4. Android安全攻防战,反编译与混淆技术完全解析(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...

  5. 如何保护java程序不被反编译

    Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此 ...

  6. 如何防止SWF文件被反编译

    这篇文章的标题所提出的问题的答案是“不可能”.至少对我来说是不可能的.借助适当的工具,我们可以反编译任何SWF文件.所以,不要将重要的信息置于SWF文件中.SWF文件中不要包含个人的帐号或者密码. 我 ...

  7. 反编译Android APK及防止APK程序被反编译

    怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式 ...

  8. Android APK反编译技巧全讲解

    导言:在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取. 首先我们 ...

  9. .net反编译原理

    目录 目录 前言 ILdasm ILasm 结语 推荐文献 目录 NLog日志框架使用探究-1 NLog日志框架使用探究-2 科学使用Log4View2 前言 本来没有想写反编译相关的文章,但是写着写 ...

随机推荐

  1. js 获取DOM的style属性

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 第16月底18天 phpstudy设置

    1.phpstudy设置-端口常规设置 E:\phpStudy\Apache\bin>httpd.exeAH00526: Syntax error on line 14 of E:/phpStu ...

  3. [JXOI2018]游戏 (线性筛,数论)

    [JXOI2018]游戏 \(solution:\) 这一道题的原版题面实在太负能量了,所以用了修改版题面. 这道题只要仔细读题,我们就可以将题目的一些基本性质分析出来:首先我们定义:对于某一类都可以 ...

  4. Application生命周期

    onCreate 在创建应用程序时创建 onTerminate 当终止应用程序对象时调用,不保证一定被调用,当程序是被内核终止以便为其他应用程序释放资源,那么将不会提醒,并且不调用应用程序的对象的on ...

  5. js实现获取两个日期之间所有日期最简单的方法

    Date.prototype.format = function() { var s = ''; var mouth = (this.getMonth() + 1)>=10?(this.getM ...

  6. 2018-2019 前期任务(一):资料阅读&Python入门

    2018-2019 前期任务(一):资料阅读&Python入门 资料原文地址:Dumbcoin - An educational python implementation of a bitc ...

  7. pytorch官网上两个例程

    caffe用起来太笨重了,最近转到pytorch,用起来实在不要太方便,上手也非常快,这里贴一下pytorch官网上的两个小例程,掌握一下它的用法: 例程一:利用nn  这个module构建网络,实现 ...

  8. 如何在Linux下写无线网卡的驱动【转】

    转自:http://www.crifan.com/files/doc/docbook/linux_wireless/release/html/linux_wireless.html 版本:v0.3 H ...

  9. Visual Studio 2017中的快捷键

    Ctrl+Tab: 快速切换活动文件

  10. gitlab代码仓库迁移

    有的时候我们需要对gitlab上的代码进行迁移,希望在迁移后能保持原有的branch.tag.commit记录等.可以使用以下方式: 1.clone代码到本地. 2.修改remote仓库的地址,添加新 ...