编辑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 需要 ...
随机推荐
- 今天Windows Azure Live to Code的分享
今天参加了微软广州的Live to Code,晚上回公司OT写了封报告E-mail,也没让公司今天白出工资给我... 因为没有涉及到公司机密什么的,所以就拿出来跟大家分享一下. 首先要说明的是,在会议 ...
- 使用WCF的Trace与Message Log功能
原创地址:http://www.cnblogs.com/jfzhu/p/4030008.html 转载请注明出处 前面介绍过如何创建一个WCF Service http://www.cnblo ...
- MySQL外键之级联
简介 MySQL外键起到约束作用,在数据库层面保证数据的完整性.例如使用外键的CASCADE类型,当子表(例如user_info)关联父表(例如user)时,父表更新或删除时,子表会更新或删除记录,这 ...
- C++类的静态成员详解
类的静态成员分为静态数据成员和静态成员函数 静态数据成员 假如我们要设计一个战争游戏,游戏中有许多的兵种.游戏的过程中,每隔一段时间每个兵种都会产生,同时由于战争的消耗,每个兵种士兵的数量又会减少.为 ...
- SSIS Design7:数据类型的选择
对于SSIS的数据类型,容易遗漏精度的是DateTime,不正确的使用DateTime,time,decimal 等数据类型,可能导致溢出或数据丢失. 1,Variable 和 Parameter的D ...
- SSISDB3:Environments 和 Environment Variables
Environment 是ETL执行时使用的Parameters的集合,可以为一个Project引用不同的Environment variables,从而改变ETL执行的属性. 查看Environme ...
- Minor【 PHP框架】3.路由、控制器、视图
框架Github地址:github.com/Orlion/Minor (如果觉得还不错给个star哦(^-^)V) 框架作者: Orlion 知乎:https://www.zhihu.com/peop ...
- 【HTTP劫持和DNS劫持】实际JS对抗
1.对于DIV注入的,可以初始化时检查全部html代码. 检测是否被劫持比较简单,但对抗就略麻烦,这个在说完第2点之后再解释. 2.对于js注入,可以在window监听DOMNodeInserted事 ...
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- 修改USB固件库的Customer_HID例程
我用的是神州三号开发板子,板子的USB模块原理图为: 配置端口G的11号引脚为usb的使能引脚,按理来说应该是开漏输出的(看了很多的修改代码都是这个模式),不过就是不能使能usb,只能配置成推挽的才行 ...