如何修改被编译后DLL文件】的更多相关文章

在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码. 操作步骤如下: 1. 运行ildasm ildasm是由微软提供的.NET程序反编译工具,位于“C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\”. 2. 用ildasm打开要修改的程序集,如下图: 3. 通过ildasm保存为IL文件 选择菜单File>Dump,选择UTF-8编码,如下图: 4. 用文本编辑器打开第3步中…
原文 http://www.cnblogs.com/wujy/p/3275855.html 我们平时在工作中经常会遇到一些已经被编译后的DLL,而且更加麻烦是没有源代码可以进行修改,只能针对这个DLL的文件进行修改才能得到我们想要的结果:本文将通过一个实例来演示如果完成一个简单的修改;我们将会用到以下几种工具: 1:反编译工具ILSpy.exe:是个很不错的反编译软件,而且是免费了: 2:微软的工具ildasm.exe:这个是把DLL生成IL文件的一个软件,是微软自带了:可以在C:\Progra…
很多时候,我们需要将.cs文件单独编译成.dll文件,这就需要使用csc命令将.cs文件编译成.dll动态链接库文件.具体的操作步骤如下: 打开命令窗口->输入cmd到控制台->cd C:WINDOWSMicrosoft.NETFrameworkv1.1.4322 转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:WINDOWSMicrosoft.NETFra…
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装了.NET Framework并把csc.exe加入了环境变量(参考我的另一篇文章"C#.NET 如何在系统变量中加入新的环境变量.doc")   除了编译成dll,你还可以用下面的命令编译成别的类型文件: /out:<file> 输出文件名(默认值: 包含主类的文件或第一个文…
golang 编译 dll 过程中需要用到 gcc,所以先安装 MinGW. windows 64 位系统应下载 MinGW 的 64 位版本: https://sourceforge.net/projects/mingw-w64/ 下载后运行 mingw-w64-install.exe,完成 MingGW 的安装. 首先撰写 golang 程序 exportgo.go: package main import "C" import "fmt" //export P…
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装了.NET Framework并把csc.exe加入了环境变量(参考我的另一篇文章"C#.NET 如何在系统变量中加入新的环境变量.doc")   除了编译成dll,你还可以用下面的命令编译成别的类型文件: /out:<file> 输出文件名(默认值: 包含主类的文件或第一个文…
Golang调用windows下的dll动态库中的函数 package main import ( "fmt" "syscall" "time" "unsafe" ) const ( MB_OK = 0x00000000 MB_OKCANCEL = 0x00000001 MB_ABORTRETRYIGNORE = 0x00000002 MB_YESNOCANCEL = 0x00000003 MB_YESNO = 0x00000…
1 新建一个类库项目   2 直接改写这个Class1.cs文件   3 记得要添加Windows.Forms引用   4 我直接把在别的项目中做好的cs文件搞到这里来,连文件名也改了(FilesDirectory.cs),这里using System.Windows.Forms不会报错,因为前面已经添加引用了.   5 右击项目,在属性中可以修改生成dll的名称.   6 按F6进行编译,得到dll文件.   7 切记你自己写的类前面要有public,否则后面使用的时候会报错说访问受保护.  …
1 新建一个类库项目   2 直接改写这个Class1.cs文件   3 记得要添加Windows.Forms引用   4 我直接把在别的项目中做好的cs文件搞到这里来,连文件名也改了(FilesDirectory.cs),这里using System.Windows.Forms不会报错,因为前面已经添加引用了.   5 右击项目,在属性中可以修改生成dll的名称.   6 按F6进行编译,得到dll文件.   7 切记你自己写的类前面要有public,否则后面使用的时候会报错说访问受保护.  …
系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NET混合开发解决方案2 WebView2与Edge浏览器的区别 .NET混合开发解决方案3 WebView2的进程模型 .NET混合开发解决方案4 WebView2的线程模型 .NET混合开发解决方案5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适的WebView2…
我的电脑是64为的操作系统,所以先找到下面的路径 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 找到这个文件:ildasm.exe,如下图: 然后双击,[文件]→[打开]见到如下图: 这里我就用WxPayAPI作为例子,然后[打开],如下图: 这里面都是这个dll中的类,然后选择[文件]→[转储],会的到一个两个文件,我名字修改成了test,所以这里会得到两个文件test.il.test.res如下图: ,我们需要将这test.i…
在以前的博客,我们使用的中年cocos工具C和C++源代码可以编译. 其实cocos工具读取<游戏project文件夹>\proj.android\jni\夹Android.mk文件,.Android.mk是一个编译文件,它是GNU Makefile的一小部分.是用来向Android NDK描写叙述C和C++源码文件的,怎样进行编译,以及打包等操作.默认的Android.mk文件内容例如以下: LOCAL_PATH := $(call my-dir) ① include $(CLEAR_VAR…
开始--程序--Microsoft Visual Studio.NET 2013--Visual Studio.NET工具,点击其中的"VS2013 开发人员命令提示",就会进入Microsoft Visual Studio.NET 2013命令提示窗口, 输入命令: csc /out:d:\test\test.dll /t:library d:\test\test.cs 回车,就会在test目录下生成test.dll文件 但是如果这个cs文件引用了bin目录下的另外一个dll文件如c…
反编译问题: 1.路径问题:如果遇到了Path.Combine,有错误改下即可 2.资源文件问题: 在Reflector下,对左边的资源管理窗口的Resources文件夹下的资源文件,进行右键点击,选中"Save as" 选项保存即可. 例:对于项目文件夹里面的TryAssemb.Form1.resx,首先改为Form1.resx然后移动到TryAssemb目录里面 3.对窗体打开"视图设计器",发现会出现下面的错误: 修改方法就是对所有System.Windows…
如果需要修改像spring和dubbo中的jar包源码,修改后怎么打包呢? 如下: 1.win+r进入命令行: 2.找到需要打包的class文件: 3.jar -cvf [jar包的名字] [需要打包的文件]例如:jar -cvf shafei.jar com将com包中的文件打包成shafei.jar文件:…
问题1:在做spring+mybatis时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有xml文件,将对应的xml文件放到这个文件夹下运行就不会出现下面的错误.说明出现这个错误的原因是maven编译时没有将xml文件放进去. 问题2:resources文件夹中的配置文件都编译不到classes中去了. 问题1解决方法: 在pom.xml中添加如下代码: <build> ... <…
在做spring+mybatiss时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有xml文件,将对应的xml文件放到这个文件夹下运行就不会出现下面的错误.说明出现这个错误的原因是maven编译时没有将xml文件放进去. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com…
在做spring+mybatiss时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有xml文件,将对应的xml文件放到这个文件夹下运行就不会出现下面的错误.说明出现这个错误的原因是maven编译时没有将xml文件放进去. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com…
Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il 会生成Test.res和Test.il两个文件 il文件可以用文本编辑器修改,要注意其中的语法 改完后再用ilasm将il文件重新编译成dll文件 ilasm /dll /res:Test.res Test.il /out:Test.dll 本人测试时因为ildasm和ilasm程序都是从网上下载来…
在工作过程中,我们有可能遇到这样的问题:公司发给客户的软件包突然报错了,但是你知道哪里报错了,而这个代码已经编译成DLL文件了,源代码不在自己这里.怎么办呢?还好现在有Reflexil插件,这个插件只要是编译IL中间程序的.它可以对解析后的DLL文件进行代码修改进行编译生成DLL.下面简单的介绍一下它怎么使用. 第一步: 下载Reflector 8和Reflexil 1.6,装好后将Reflexil的插件DLL文件加载到Reflector中 具体操作:Tools->Add-Ins->+->…
Devexpress 是很好的第三方控件.但是需要汉化,在从网上下载的zh-CN文件夹里都是*.resources.dll文件,由于汉化的工作量很大,难免有些地方汉化 错误或者不合适(如下图).花了些时间修改它们(大部分时间花在‘实现无需加入GAC即可见汉化效果’),将过程记录如下. 2.反编译DevExpress.Xpf.Core.v13.2.resources.dll 3.反编译后生成文件如下 4. 知道Calculator的资源位于文件DevExpress.Xpf.Core.Editors…
1.现在我的解决方案里有存在两个项目,分别是类库项目ClassLibrary1和控制台项目ConsoleApplication1,默认情况下当解决方案重新生成后,这两个项目所对应的编译后文件分别会存在于各自的bin/Debug目录下 2.现在我们先右键类库项目,之后选择属性 3.在属性界面中我们可以像下面这样修改该项目的编译后生成文件的路径,下面我将这个类库项目的生成文件路径设为控制台项目的默认生成文件路径(貌似我设好之后没有看到保存设置的按钮,不过没关系,点击顶部工具栏的生成按钮把解决方案重新…
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    (5):前台Jquery easyUI实现   (6):EF上下文实例管理   (7):DBSession的封装   (8):DBSession线程内唯一    (9)…
1.触发事件 今天正好在学习log4j,为了测试其配置文件log4j.properties中的各种配置,进行了频繁修改和程序启动以确认效果,因为是使用的IDEA建立的Web项目,接着问题就来了,配置文件修改后,重新运行Tomcat发现根本没有生效,刚开始怀疑是文件中配置的写法不对而且google了很久,反反复复发现配置没有问题但是就是不行. 幸好知道IDEA中对于artifacts的定义,相当于部署包,Tomcat运行时实际是去读取的这个东西里的文件,其编译方式之前在另篇博客<理解 Intell…
java编译后的文件名字带有$接数字的就是匿名内部类的编译结果,接名字的就是内部类的编译结果 例如:TestFrame$1.class是匿名内部类的编译结果, TestFrame$MyJob.class则是内部类MyJob编译后得到的.使用内部类可以隐藏一些实现的细节, 等等, 还有其他一些好处. 使用匿名类的时候, 要注意代码的可读性…
Unity插件分为两种:托管插件(Managed Plugins)和本地插件(Native Plugins).本文先来说说Unity中的托管插件,本地插件的文章留到下一篇文章再说. 有时候我们会有这样的需求:给第三方公司提供Unity插件,而又不希望第三方看到具体代码,这时就可以将核心代码编译成dll文件供第三方调用.或者说,同一个公司多个项目都用到某个模块,则可以把该模块封装成dll,方便在不同项目之间共用和维护. 关于dll加密的问题,以后有机会了可以考虑写点东西分享出来. 一.创建DLL…
使用csc命令将.cs文件编译成.dll的过程 很多时候,我们需要将.cs文件单独编译成.dll文件, 操作如下: 打开命令窗口->输入cmd到控制台->cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:\WINDOWS\Microsoft.NET\Framewor…
有两种方法:     但是一般这个使用     打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假设为该项目所取的名字是DllBuild)->类库(注意必须是类库),即新建一个由纯.cs 类库文件组成的程序集,写好代码之后(例如写了一个名为DllTest.cs的类,该类的namespace取名为DllTestNS),再依次点击:菜单->生成->生成DllBuild,这样你的DllBuild/DllBuild/bin/Debug文件…
在Windows编程的时候,有些时候,我们经常会要使用一些非常规的方法,比如说从内存中加载DLL,然后使用DLL中的函数.于是就思索在用Python的时候是否能够将几个编译好的Pyc合并成一个,然后使用动态的读取这个文件,然后根据标记进行划分,获得不同的模块的pyc内容,然后动态作为一个新的模块引用到我们的程序中去,这就涉及到一个问题,如何将一个pyc整到内存,然后从内存中获取变成一个新模块进行引入处理.之后找了一些资料之后,发现一种方法,就是通过PyCodeObject这个代码对象来进行处理,…
背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认选项: 最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟…