首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#将引用的dll嵌入到exe文件中

用代码打包的实现方式也有很好,本文只是其中一种实现方式,不需要释放文件!...方法如下: 1.项目下新建文件夹dll 2.把要打包的dll文件放在dll文件夹下,并包括在项目中 3.右键文件属性, 生成操作选择嵌入的资源 4.实现如下代码, 在窗口构造中实现也可以(在窗体事件中无效...,如winform_load) 这里需要注意,“引用”下的dll,需要设置“复制本地”为False,这样在bin目录下生成exe的时候就不会顺便复制dll了(这步可要可不要) using System;...嵌入到exe程序的资源中, 并实现程序集加载失败事件(当在程序目录和系统目录下找不到程序集触发), 当找不到程序集时就从资源文件加载, 先转换为字节数组再转换到程序集返回给程序, 这样dll就被加载到程序中了...如果exe所在文件夹下有相应dll, 事件并不会被触发!

3.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在Windows中劫持DLL

    DLL搜索顺序劫持:在不带路径的应用程序指定的DLL中,以特定顺序在固定位置搜索,通过将恶意的DLL放在实际DLL之前的搜索位置,劫持了搜索顺序,有时包括目标应用程序的工作目录 Phantom DLL劫持...目标查找 我们最大的挑战是找到可以在默认用户权限下被利用的易受攻击的可执行文件,在Windows上定位预安装的系统可执行文件时,通常不包括上面的第一个选项,而选项2和3中符合条件的任何文件夹都必须是用户可写的...查找方法 为了集中精力,我们默认存在可执行文件在C:\windows\system32\中,在经过测试的Windows 10 v1909实例上,该实例总共包含616个可执行文件,如果仅考虑已签名的应用程序...劫持列表 下表列出了windows 10 v1909上c:\windows\system32中易受"相对路径DLL劫持"变体DLL劫持攻击的所有可执行文件,在每个可执行文件的旁边是一个或多个可能被劫持的...因此,让我们把重点放在检测上,您可以从意外路径中搜寻前面提到的任何DLL的创建或加载,特别是在临时位置(如:%appdata%)中,毕竟加载DLL的(合法)应用程序的名称可以更改,但DLL的文件名始终是固定的

    2.2K10

    C# 将dll打包到程序中

    本文告诉大家如何把 dll 打包到程序中。很多时候的 软件 在运行的时候需要包括很多 dll 或其他的文件,这样的软件在给其他小伙伴,就需要做一个压缩包,或者用安装软件。...这样感觉不太好,所以本文告诉大家一个方法,把所有的 dll 放在一个文件,于是把自己的软件给小伙伴就只需要给他一个程序。...ILMerge 首先下载 ILMerge 然后安装,感觉安装很简单 假如有 1.exe 和 1.dll 准备把 1.dll 合并到 2.exe 那么可以使用下面代码 ilmerge /target:...exe /out:E:\2.exe /log E:\1.exe /log E:\1.dll /targetplatform:v4 这里的 target 为目标平台 out 就是输出的文件 log 就是准备合并的...dll 执行代码就可以拿到 2.exe 直接把这个文件给小伙伴,他就不需要使用压缩包,直接打开 2.exe 就不会说找不到库。

    1.6K30

    X86逆向13:向程序中插入Dll

    本章我们将学习Dll的注入技巧,我们将把一个动态链接库永久的插入到目标程序中,让程序在运行后直接执行这个Dll文件,这一章的内容也可以看作是第八课的加强篇,第八课中我们向程序中插入了一个弹窗,有木有发现一个问题...单单是一个弹窗我们就需要经历这么多的步骤,那如果你要调用几十个API函数估计早就疯透了,这里我们其实可以直接编写一些能够完成特殊功能的Dll文件,然后让程序通过LoadLibraryA函数动态的加载执行...,LoadLibrary这个函数是在Kernel32.dll这个库中保存的,庆幸的是这个动态链接库99%的程序都必须加载,这就为我们动态加载Dll提供了有效的支持。...代码很简单,我们直接编译生成一个动态链接库,这里我就生成一个名叫【lyshark.dll】的动态链接库文件啦,当然你也可以用C/C++或Win32汇编来写这个Dll,都可。...11.在最下方写上跳转到【push 00460FEB】的无条件跳转指令。 12.最后在下方写上dll的名字,并记下地址【0048013A】 13.替换上方字符串,最后代码如下。

    41020

    C# 通过 probing 指定 dll 寻找文件夹

    在很大的项目开发,会发现项目引用的 dll 会很多,我想要按照不同的功能,将不同的 dll 放在不同的文件夹 简单的方法是通过修改 App.config 文件指定文件夹,如将文件移动到 abc\12 的文件夹里面...,可以在 App.config 添加代码 dll 这个项目运行的时候输出的文件有 lindexi.exe 和 doubi.dll 文件 这时需要将 doubi.dll 移动到文件夹 abc\12 里面 lindexi.exe...abc\12\doubi.dll 打开 App.config 添加上面的代码就可以 如果有两个不同的dll需要放在两个不同的文件夹,如 walter.dll 需要放在 walter 文件夹 在 文件在编译之后修改 dll 的寻找文件夹 如果是对于 C++ 的 dll 需要做特殊引用,如需要区分 x86 和 x64 请看 C# 如何在项目引用x86

    2K20

    C# 通过 probing 指定 dll 寻找文件夹

    在很大的项目开发,会发现项目引用的 dll 会很多,我想要按照不同的功能,将不同的 dll 放在不同的文件夹 简单的方法是通过修改 App.config 文件指定文件夹,如将文件移动到 abc\12 的文件夹里面...,可以在 App.config 添加代码 dll 这个项目运行的时候输出的文件有 lindexi.exe 和 doubi.dll 文件 这时需要将 doubi.dll 移动到文件夹 abc\12 里面 lindexi.exe...abc\12\doubi.dll 打开 App.config 添加上面的代码就可以 如果有两个不同的dll需要放在两个不同的文件夹,如 walter.dll 需要放在 walter 文件夹 在 文件在编译之后修改 dll 的寻找文件夹 如果是对于 C++ 的 dll 需要做特殊引用,如需要区分 x86 和 x64 请看 C# 如何在项目引用x86

    78310

    C# 将dll打包到程序中 ILMerge

    本文告诉大家如何把 dll 打包到程序中。很多时候的 软件 在运行的时候需要包括很多 dll 或其他的文件,这样的软件在给其他小伙伴,就需要做一个压缩包,或者用安装软件。...这样感觉不太好,所以本文告诉大家一个方法,把所有的 dll 放在一个文件,于是把自己的软件给小伙伴就只需要给他一个程序。...ILMerge 首先下载 ILMerge 然后安装,感觉安装很简单 假如有 1.exe 和 1.dll 准备把 1.dll 合并到 2.exe 那么可以使用下面代码 ilmerge /target:...exe /out:E:\2.exe /log E:\1.exe /log E:\1.dll /targetplatform:v4 这里的 target 为目标平台 out 就是输出的文件 log 就是准备合并的...dll 执行代码就可以拿到 2.exe 直接把这个文件给小伙伴,他就不需要使用压缩包,直接打开 2.exe 就不会说找不到库。

    1.5K10

    C#(.Net) 将非托管dll嵌入exe中

    托管dll与非托管dll 托管dll实际上是指C#编写的dll,可以直接右键“引用”导入 而大部分情况下,我们需要引用C++写的dll,如果你的dll是使用 DllImport来导入的,那么它就属于非托管...dll,这种dll无法直接嵌入exe中,需要借助工具:Costura.Fody,该工具可以使用VS直接下载 下载与安装 右键引用,选择“管理NuGet程序包”,搜索 “fody” 点击Costure.Fody...此时这个XML文件会被添加到项目根目录,以我的dll为例 dll名称为: PicSizer_CUDA.dll dll位数为: 64位 修改XML文件 <?...PicSizer_CUDA 注意:不要有后缀名,如果是32位只需要把“64”改成“32” 在项目中创建文件夹...: Costura64 如果是32位同理改为32 把dll复制到该文件夹中,在生成时,会自动寻找 Costura64和Costura32文件夹中的dll 将dll设置为“嵌入的资源” 调用 直接使用

    2.2K10

    在HLS中插入HDL代码

    今天就来介绍一种在HLS中插入HDL代码的方式,结合两者的优势为FPGA开发打造一把“利剑”。 说明 接下来,将介绍如何创建 Vitis-HLS 项目并将其与自定义 Verilog 模块集成一起。...将插入两个黑盒函数 - 第一个在流水线区域(线路接口,ap_none),第二个在数据流区域(FIFO 接口,ap_ctrl_chain)。 步骤 1....选择包含 C 模块描述的文件。 选择端口方向并填写RTL组配置(verilog模块中的端口名称)。 选择verilog文件,如有必要再填写其他框,单击下一步。...此后,hls_component 文件夹中应该会生成两个 json 文件。...能够在 HLS 模块中看到打包的 add.v 文件。 单击 hls_config.cfg 文件,在 Vitis GUI 的帮助下将 cosim.trace_level 更改为全部并运行联合仿真。

    20210
    领券