编辑IL文件 修改DLL文件
本文章只是技术探讨,学习,技术上的研究而已。请支持正版.
如:KS.Gantt.DLL 为例
- 使用ILSpy反编译 工具
- 利用ildasm反编译 KS.Gantt.dll 生成IL中间代码 一般会生成 *.il 和*.res 一些其它资源文件 *.resources
- 然后用记事本修改IL文件
- 然后用ilasm编译中间代码,生成新的KS.Gantt.dll
- 在项目中使用 查看效果
破解过程
修改验证的代码

利用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文件的更多相关文章
- lib文件和dll文件
一. 简介 1.1 C++两种库文件 lib包含了函数所在的dll文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的dll提供,称为动态链接库dynamic link library. ...
- LIB文件和DLL文件的作用
(1)lib是编译时需要的,dll是运行时需要的.如果要完成源代码的编译,有lib就够了.如果也使动态连接的程序运行起来,有dll就够了.在开发和调试阶段,当然最好都有.(2)一般的动态库程序有lib ...
- 关于vs的lib文件和dll文件
一.LIB文件概念 一个lib文件是obj文件的集合.当然,其中还夹杂着其他一些辅助信息,目的是为了让编译器能够准确找到对应的obj文件 二.与DLL的区别 (1)lib是编译时需要的,dll是运行时 ...
- C#中修改Dll文件 (反编译后重新编译)
Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il ...
- Unity-反编译由IL生成的DLL文件
本文由博主SunboyL原创,转载请注明出处:http://www.cnblogs.com/xsln/p/DLL_DeCompilation.html 在Unity实际开发过程中,我们 ...
- 如何利用.snk文件生成DLL文件中的Publickeytoken
1.在该路径下C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin查找是否有sn.exe. 没有的话,从网上下载,注意需要的版本. 2.打开c ...
- winmd文件和dll文件的区别
今天在研究一个二维码项目,用到一个第三方组件 ZXing,因为做的是Windows应用商店程序,应用商店程序是可以引用winmd文件也可以引用dll文件,但是这两种文件ZXing都提供了,最后和同事讨 ...
- VC2010 利用 def 文件生成 dll 文件的方法
近期有个需求,要生成一个dll 文件.文件里的函数都是採用 stdcall 函数调用约定,可是不希望函数名被修饰(add 被修饰成 add@8). 这时就要用def 文件了. 比方我有以下两个函数: ...
- 使用Def文件导出Dll文件
模块定义 (.def) 文件是包含一个或多个描述 DLL 各种属性的 Module 语句的文本文件.如果不使用 __declspec(dllexport) 关键字导出 DLL 的函数,则 DLL 需要 ...
随机推荐
- ABP理论学习之依赖注入
返回总目录 本篇目录 什么是依赖注入 传统方式产生的问题 解决办法 依赖注入框架 ABP中的依赖注入基础设施 注册 解析 其他 ASP.NET MVC和ASP.NET Web API集成 最后提示 什 ...
- New Career
Today I received the official confirmation letter with very good grade for the probation, it means t ...
- Objective-C中的Strong、Copy与MutableCopy
面试过程中经常被问到ARC中Strong.Copy的区别是什么.普通的回答是:一样.文艺(正确)的回答是:分情况(我擦!WQY#$&Y**%OWEUR) 可以先参考这篇文章http://www ...
- 用python实现的百度音乐下载器-python-pyqt-改进版
之前写过一个用python实现的百度新歌榜.热歌榜下载器的博文,实现了百度新歌.热门歌曲的爬取与下载.但那个采用的是单线程,网络状况一般的情况下,扫描前100首歌的时间大概得到40来秒.而且用Pyqt ...
- ASP.NET Web API自身对CORS的支持: CORS授权检验的实施
通过<EnableCorsAttribute特性背后的故事>我们知道:由CorsPolicyProvider提供的CorsPolicy表示目标Action采用的资源授权策略,ASP.NET ...
- avascript中的this与函数讲解
徐某某 一个半路出家的野生程序员 javascript中的this与函数讲解 前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大 ...
- 《Node web开发》笔记
还是因为学习kibana,才开始了解node. Node是一种基于事件驱动的异步系统,基于Chrome的引擎V8. Node中由于大量的使用模块,因此出现了很多开源模块,有点像java社区的样子. 笔 ...
- Java集合类的总结
Java语言的java.until包中提供了一些集合类,这些集合类又被称为容器.说到集合就会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的:数组用来存放基本数据类型,集合从 ...
- 初学者--bootstrap(三)下载与安装----在路上(7)
----------------------------------------对于学习与工作者来说用压缩版,若是研究框架则用源代码---------------------------------- ...
- 路由转发过程的IP及MAC地址变化
A-----(B1-B2)-----(C1-C2)-------E就假设拓扑图是这个样子吧,B1和B2是路由器B上的两个接口,C1和C2是路由器C上的两个接口,A和E是PC,由主机A向主机E发送数据包 ...