本文章只是技术探讨,学习,技术上的研究而已。请支持正版.

如:KS.Gantt.DLL 为例

  1. 使用ILSpy反编译 工具
  2. 利用ildasm反编译 KS.Gantt.dll  生成IL中间代码 一般会生成 *.il 和*.res 一些其它资源文件 *.resources
  3. 然后用记事本修改IL文件
  4. 然后用ilasm编译中间代码,生成新的KS.Gantt.dll
  5. 在项目中使用 查看效果

破解过程

修改验证的代码

利用ildasm反编译 KS.Gantt.dll

打开IL文件找到对应的代码然后删除掉

哈哈 就这个。。

  .try
{
IL_0260: ldarg.
IL_0261: ldtoken KS.Gantt.Gantt
IL_0266: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_026b: ldarg.
IL_026c: call class [System]System.ComponentModel.License [System]System.ComponentModel.LicenseManager::Validate(class [mscorlib]System.Type,
object)
IL_0271: stfld class [System]System.ComponentModel.License KS.Gantt.Gantt::license
IL_0276: leave.s IL_0297 } // end .try
catch [mscorlib]System.Exception
{
IL_0278: pop
IL_0279: call bool [mscorlib]System.Diagnostics.Debugger::get_IsAttached()
IL_027e: brtrue.s IL_0295 IL_0280: newobj instance void KS.Gantt.frmAbout::.ctor()
IL_0285: stloc.
IL_0286: ldloc.
IL_0287: callvirt instance valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.Form::ShowDialog()
IL_028c: pop
IL_028d: ldloc.
IL_028e: callvirt instance void [System]System.ComponentModel.Component::Dispose()
IL_0293: ldnull
IL_0294: stloc.
IL_0295: leave.s IL_0297 }

然后用ilasm编译中间代码

ilasm /dll /output=D:\MyDll\KS.Gantt.dll /Resource=D:\MyDll\Gantt.res D:\MyDll\Gantt.il

我一看到这几个单词。我就知道成功了。。

然后在去验证

那个授权验证代码不在了哈。。

不过呢。后来我测试 。我发现在这个DLL不能用的。运行会报这个错的

Unhandled Exception: System.IO.FileLoadException: Strong name validation failed 

所以又得删除那个签名,删除以下所有内容

.publickey = (                  // .$..............
// .$..RSA1........
3B B2 D0 F9 DA 7E B2 6B CF EB F6 // ;....~U.P@k.. .g
E7 D6 AF 4F 6D 5D 0B C7 E2 // ...e2Om!].S.....
F0 6A EE F8 DB F9 A1 B5 C1 // .j.8.t."4......f
B7 0B A8 9E 8A E1 D1 AB A2 4E 3A // ...6I..q..&..xN:
8B 8C 7F 4D 5F 1F 8D DE 6C EC // .q..MT"(_...l.."
8A 3F 0A F4 F4 7F B7 8C F5 5D F4 CB // 4.5?........]..T
DD 5E D5 0D 7F B1 9B 7F 0E FB 2A // ...^.. ........*
5F 3D 2C E2 6D FE FE ) // v_E= ,.m.Ur0Iv(.

最后在从新编译DLL。成功了

编辑IL文件 修改DLL文件的更多相关文章

  1. lib文件和dll文件

    一. 简介 1.1 C++两种库文件 lib包含了函数所在的dll文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的dll提供,称为动态链接库dynamic link library. ...

  2. LIB文件和DLL文件的作用

    (1)lib是编译时需要的,dll是运行时需要的.如果要完成源代码的编译,有lib就够了.如果也使动态连接的程序运行起来,有dll就够了.在开发和调试阶段,当然最好都有.(2)一般的动态库程序有lib ...

  3. 关于vs的lib文件和dll文件

    一.LIB文件概念 一个lib文件是obj文件的集合.当然,其中还夹杂着其他一些辅助信息,目的是为了让编译器能够准确找到对应的obj文件 二.与DLL的区别 (1)lib是编译时需要的,dll是运行时 ...

  4. C#中修改Dll文件 (反编译后重新编译)

    Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il  ...

  5. Unity-反编译由IL生成的DLL文件

        本文由博主SunboyL原创,转载请注明出处:http://www.cnblogs.com/xsln/p/DLL_DeCompilation.html     在Unity实际开发过程中,我们 ...

  6. 如何利用.snk文件生成DLL文件中的Publickeytoken

    1.在该路径下C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin查找是否有sn.exe. 没有的话,从网上下载,注意需要的版本. 2.打开c ...

  7. winmd文件和dll文件的区别

    今天在研究一个二维码项目,用到一个第三方组件 ZXing,因为做的是Windows应用商店程序,应用商店程序是可以引用winmd文件也可以引用dll文件,但是这两种文件ZXing都提供了,最后和同事讨 ...

  8. VC2010 利用 def 文件生成 dll 文件的方法

    近期有个需求,要生成一个dll 文件.文件里的函数都是採用 stdcall 函数调用约定,可是不希望函数名被修饰(add 被修饰成 add@8). 这时就要用def 文件了. 比方我有以下两个函数: ...

  9. 使用Def文件导出Dll文件

    模块定义 (.def) 文件是包含一个或多个描述 DLL 各种属性的 Module 语句的文本文件.如果不使用 __declspec(dllexport) 关键字导出 DLL 的函数,则 DLL 需要 ...

随机推荐

  1. AnguarJS 第一天----Hello World

    AngularJS是什么? AngularJS是目前很火的前端JS框架之一, AngularJS的开发团队将其描述为一种构建动态Web应用的结构化框架.它是完全使用JavaScript编写的客户端技术 ...

  2. [LeetCode] Interleaving String - 交织的字符串

    题目如下:https://oj.leetcode.com/problems/interleaving-string/ Given s1, s2, s3, find whether s3 is form ...

  3. spring事务管理器设计思想(一)

    在最近做的一个项目里面,涉及到多数据源的操作,比较特殊的是,这多个数据库的表结构完全相同,由于我们使用的ibatis框架作为持久化层,为了防止每一个数据源都配置一套规则,所以重新实现了数据源,根据线程 ...

  4. TSQL Merge On子句和When not matched 语义理解

    Merge 的On子句指定Match condition,When子句指定过滤条件,如果Source Table和Targe Table匹配的上,很好理解:如果匹配不上,必须深入理解不匹配的条件,否则 ...

  5. Entity Framework Code First添加修改及删除单独实体

    对于一个单独实体的通常操作有3种:添加新的实体.修改实体以及删除实体. 1.添加新的实体 Entity Framework Code First添加新的实体通过调用DbSet.Add()方法来实现. ...

  6. python3 字符串与列表常用功能

    一.字符串常用功能 1. capitalize(),将字符串的首字母变成大写,其余全部置为小写:如果字符串中有多个单词,也只是将第一个单词的首字母置为大写:例: >>> name = ...

  7. WPF 后台读取样式文件

    ResourceDictionary dic = new ResourceDictionary { Source = new Uri("Styles.xaml",UriKind.R ...

  8. 平衡二叉树AVL删除

    平衡二叉树的插入过程:http://www.cnblogs.com/hujunzheng/p/4665451.html 对于二叉平衡树的删除采用的是二叉排序树删除的思路: 假设被删结点是*p,其双亲是 ...

  9. .Net 转战 Android 4.4 日常笔记(3)--目录结构分析

    看了创建项目后,出现的文件夹很多确实有点晕,不过经过简单的了解还是跟我们asp.net的目录有点相识滴. 下面这张图,概括了主要的文件用途.其实也只需要了解这几个就差不多了,知道在那里设计界面,那里写 ...

  10. 为什么要学习Linux

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 本篇修改自我在知乎上回答的问题,为什么要学习 Linux? 我最开始用Linux是 ...