简单说:dll是动态链接库(是被exe调用的)dll不是可独立运行的文件,
打比方:dll是一个仓库,exe是仓库的门。exe可以打开仓库的门。但是dll即使把自己变成仓库门也是没有任何意义的。被编译好的链接库与程序随便改变后戳是不可以的。
最简单的例子:你把TXT改为EXE,他会显示TXT里面的文字吗?很确定,不会的。
复杂一些讲:
dll 俗称:动态链接库 :是一个包含可由多个程序同时使用的代码和数据的库。可以被事先设定好得exe文件调用。
所谓动态链接库(Dynamic-Link Libraries,简称DLLs),简单地说就是一个可执行模块,其扩展名为DLL,模块中包含了可以被其他应用程序或其他DLLs使用的例程和资源。跟 一般的的可执行程序扩展名为EXE不同的是,DLLs没有通常的主程序,但它有多个执行入口。
DLLs的特点在于它的代码是在运行期动态地链接到调用它的程序中的,DLLs一旦加载,就能被多个应用程序或其它DLLs共享。
exe(可执行程序),一种可在 *** 作系统存储空间中浮动定位的可执行程序。MS-DOS和MS-WINDOWS下,此类文件扩展名为exe 2WINDOWS *** 作系统中的二进制可执行文件,可执行文件分两种一种是后辍名为COM另一种就是EXE 。
希望对你的问题有所帮助 谢谢。
添加一个自定义资源类型,指向该文件即可。运行时可以利用资源管理函数把资源存到Windows的临时目录,文件名称越怪越好,不需要和原来的文件名一样。利用loadLibrary和GetProcAddress,调用函数,最后删除临时文件,毁尸灭迹。如果你熟悉DLL动态延迟加载,那将是再好不过。相关文章可以参考Windows Deveoper Magazine中 20027 这篇文章讲述了如何把DLL打包到一个EXE文件中,如何把它存到一个临时的不为人所知目录,如何动态延迟加载这个动态连接库(注意动态延迟加载用的是是静态连接,不需要调用loadLibrary和GetProcAddress函数,但在编译时需要指定编译选项你可以参考《Windows核心编程》参考关于DLL延迟加载的描述)。程序函数调用完毕程序退出前可以神不知鬼不觉地把文件删除。做到踏雪无痕。
系统进程发现的rundl132exe是病毒文件,rundll32exe才是系统文件
解决方法:必须的一步,下载Firefox安装并运行一次,记住以后用这个上网,避免感染病毒
此病毒为logo1exe病毒的一部分,先要解决logo1exe ,
解决完后如果还有问题继续往下看
rundl132exe找不到了方法1:你的电脑已经删除病毒rundl132exe,但在注册表残留了无用的DLL文件。
解决方法。“单击“开始--运行” 在里面输入“regedit”打开注册表。
再依次找到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
在右侧的键值项窗口中找到“rundl132exe”的项,将它删除就可以了!方法2:运行msconfig - 启动-弗耿崔皇诏郝措酮胆捆 把 rundl32exe 前面的钩去掉方法3:病毒是在windows目录下生成dlldll,logo1_exe,rundl132exe这三个文件。
而dlldll注入explorerexe是由logo1_exe来完成。病毒会在开机自动执行中加入rundl132exe 首先打开我的电脑!选工具——文件夹选项——查看(快捷键按ALT+T再按O)中的"隐藏受保护的 *** 作系统文件(推荐)"的勾取消,把"显示所有文件和文件夹"选中!
1按CTRL+ALT+DEL在任务管理器中把rundl132exe,logo1_exe结束掉(没有的话,不用 *** 作),删除C盘内的logo1_exel和rundl132exe(不知道在哪里的,可以打开我的电脑按CTRL+F然后搜索rundl132exe,logo1_exe)
2因为DLLdll模块被写入到explorer中,所以删除不掉不过能有办法删除,打开任务管理把进程中的explorerexe结束掉,接着桌面变消失了,不怕!选中任务管理器的“文件(F)”——“新任务(运行。)(N)”然后运行explorerexe桌面就又出来了!
using System;
using SystemDiagnostics;
internal static class Program
{
private static void Main()
{
foreach (Process p in ProcessGetProcessesByName("explorer"))
foreach (ProcessModule m in pModules)
ConsoleWriteLine(mFileName);
}
}
css
PE(dll、exe)文件内存加载(手动映射)小记
魔法狮子
原创
关注
3点赞·1189人阅读
前言
PE文件即Windos *** 作系统下的可执行文件的文件结构名称,其中包含但不限于dll exe sys ocx等等。内存加载PE顾名思义就是通过内存,而非文件。这里的内存指代的是直接加载源。
这个技术其实很早之前就有了,网上也有很多开源可参考的代码,但是仅做一个伸手党那是绝对不行的,首先这些历史悠久的代码存在或多或少的bug,或莫名的崩溃咯,或32和64不兼容咯,各种问题皆是。当然,这些前辈先贤的代码一定是具有非常大的参考和开拓意义的。
技术用途
所谓的内存加载其实就是在加载过程中不适用系统提供的方法,而自行实现这些方法。宏观一点来讲,加载这个 *** 作也包括调度和资源分配。这里调度自然是加载代码。但是资源其实这里仅仅涉及线程和内存的分配。这两项只能使用系统的,但是整个调度过程由我们自己实现。
因此由于加载过程除掉内存和线程资源,其他在映射过程产生的记录信息等通通都不会存在。就是说除了线程和内存,模块的地址、名称、文件等正常加载记录的所有信息几乎都不存在。这样的一个包含可执行代码和资源的模块在非内存的层面几乎是隐身的。
看到上面的用途很多人又开始想为所欲为了,但其实除开灰色的用途意外,该技术完全可以使用在正常的编程中,这可以很大限度上提升破解的难度。将编译型的语言一下子提升到解释语言类似的层次,我们对于内存资源的管控也可以随时让我们更新代码,实现热更新等功能。并且在很多需要授权验证等程序上也可以加大程序的保密性,将软件的破解难度大大提升。
实现要点
PE映射主要分为3部分
1、区段文件复制,将区段文件进行内存对齐复制到预定偏移位置
2、重定位修复,将代码中涉及到重新定位的地方按照将要加载到的位置进行设置
3、函数导入设置,被加载模块所用到的其他模块的函数进行导入 *** 作,保证函数可用
小技巧
关于兼容性我们完全可以在源码中进行一些简单的判断,对其分别进行设置,毕竟在64位PE文件加载中只有少数字段扩展到了64位。
并且可以进行一定的封装,将固定不动的部分进行隐匿封装,而将会不同的部分以接口的方式让其可以进行之后的覆盖实现。在这样简单的实现就可以在应用层和驱动层都愉快地玩耍了。
当然在驱动层玩耍的话,代码要稍微严谨一些。
我的实现
应用层实现(内存加载kernelbase获取导出调用测试):
内核实现(正常加载驱动A使用内存加载代码加载驱动B,b线程循环输出):
子类化覆盖接口实现:
后记
总共就1800行代码,其中将内存分配,获取地址的方法导出,可以让我们自行覆盖,这样的好处是可以在本进程也可以进行跨进程加载。
整个代码写完后对PE文件的加载过程有了更清晰的认识,大概比以前清晰100倍把。
并且其中对空的运用也是十分的巧啊,直呼学到了学到了。
找另一台的电脑上去复制下这个缺失的文件。
可以尝试使用腾讯电脑管家来修复缺失DLL文件
1、打开腾讯电脑管家
2、电脑诊所
3、软件问题
4、丢失Dll 文件
5、一键修复
6、完成
如果还是解决不了,去下一个文件直接复制进去就能搞定了
以上就是关于如何将dll文件转换为exe文件全部的内容,包括:如何将dll文件转换为exe文件、怎样可以将DLL编译到EXE文件里、EXE读写注册表,从注册表中获取dll的位置,然后EXE调用dll等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)