
动态链接库函数启动器——Rundll32
经常听到有些朋友说:呀!系统的注册表启动项目有rundll32exe,系统进程也有rundll32exe,是不是病毒呀?其实,这是对 rundll32exe接口不了解,它的原理非常简单,了解并掌握其原理对于我们平时的应用非常有用,如果能理解了原理,我们就能活学活用,自己挖掘 DLL参数应用技巧。
Rundll32exe和Rundllexe的区别
所谓Rundllexe,可以把它分成两部分,Run(运行)和DLL(动态链接库),所以,此程序的功能是运行那些不能作为程序单独运行的 DLL文件。而Rundll32exe则用来运行32位DLL文件。Windows 2000/XP都是NT内核系统,其代码都是纯32位的,所以在这两个系统中,就没有rundllexe这个程序。
相反,Windows 98代码夹杂着16位和32位,所以同时具有Rundll32exe和Rundllexe两个程序。这就是为什么Windows 98的System文件夹为主系统文件夹,而到了Windows 2000/XP时就变成System32为主系统文件夹(这时的System文件夹是为兼容16位代码设立的)。
Rundllexe是病毒?
无论是Rundll32exe或Rundllexe,独立运行都是毫无作用的,要在程序后面指定加载DLL文件。在Windows的任务管理器中,我们只能看到rundll32exe进程,而其实质是调用的DLL。我们可以利用进程管理器等软件来查看它具体运行了哪些DLL文件。
有些木马是利用Rundll32exe加载DLL形式运行的,但大多数情况下Rundll32exe都是加载系统的DLL文件,不用太担心。另外要提起的是,有些病毒木马利用名字与系统常见进程相似或相同特点,瞒骗用户。所以,要确定所运行的Rundll32exe是在% systemroot%system32目录下的,注意文件名称也没有变化。
相信大家在论坛上很常看见那些高手给出的一些参数来简化 *** 作,如rundll32exe shell32dll,Control_RunDLL,取代了冗长的“开始→设置→控制面板”,作为菜鸟的我们心里一定痒痒的。他们是怎么知道答案的?我们如何自己找到答案?分析上面命令可以知道,其实就是运行Rundll32exe程序,指定它加载shell32dll文件,而逗号后面的则是这个 DLL的参数。了解了其原理,下面就可以自己挖掘出很多平时罕为人知的参数了。
第一步:运行eXeScope软件,打开一个某个DLL文件,例如shell32dll。
第二步:选择“导出→SHELL32DLL”,在右边窗口就可以看到此DLL文件的参数了。
第三步:这些参数的作用一般可以从字面上得知,所以不用专业知识。要注意的是,参数是区分大小写的,在运行时一定要正确输入,否则会出错。现在随便找一个参数,例如RestartDialog,从字面上理解应该是重启对话框。组合成一个命令,就是Rundll32exe shell32dll,RestartDialog ,运行后可以看见平时熟悉的Windows重启对话框。
现在,我们已经学会了利用反编译软件来获取DLL文件中的参数,所以以后看到别人的一个命令,可以从调用的DLL文件中获取更多的命令。自己摸索,你就能了解更多调用DLL文件的参数了。
小资料
常用的rundll32参数
命令: rundll32exe shell32dll,Control_RunDLL
功能: 显示控制面板
命令: rundll32exe shell32dll,Control_RunDLL accesscpl,,1
功能: 显示“控制面板→辅助选项→键盘”
命令: rundll32exe shell32dll,Control_RunDLL sysdmcpl @1
功能: 执行“控制面板→添加新硬件”
命令: rundll32exe shell32dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 执行“控制面板→添加新打印机”
命令:rundll32exe DISKCOPYDLL,DiskCopyRunDll
功能:启动软盘复制窗口
参考资料:
1、在桌面空白处点击鼠标右键,新建一个txt文本文件;
2、在txt文件中复制以下内容
Windows Registry Editor Version 500
[HKEY_CLASSES_ROOT\exe]
@="exefile"
"Content Type"="application/x-msdownload"
[HKEY_CLASSES_ROOT\exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %"
3、将文件另存为,文件后缀名由txt改为reg,保存类型选择“所有文件”,编码方式选择“UTF-8”;
4、双击另存为的reg文件,将信息注入注册表,Win10系统无法打开exe文件的问题就解决了。
本人博客园原文链接 无法启动程序/exe 系统找不到指定的文件
这几天师兄给了我一个小车蓝牙通信上位机程序,在VS2015环境下,配置完eigen、OpenGL等等的库后,编译生成成功,但是,不能在VS中直接运行(可以打开Release文件目录的exe应用程序运行),提示“系统找不到指定文件”的错误,如图1所示;
解决方法
1 选择工程,右键单击属性,打开工程的属性页,参考图2;
2 选择“配置属性->常规”,选择输出目录,可以浏览自己想要的位置,可以选择图1报错提示的位置,我的是 “F:\蓝牙上位机\UpperPCTest\Release” ,如图3所示;
3 选择“链接器->常规”,选择输出文件,设置为“Release\UpperPCTestexe”,参考图4;
4 生成、运行(F5),程序可以正常在VS中运行。
可以借助系统提供的“assoc“命令来恢复。
恢复方法:
点“开始”菜单,打开“运行”对话框,然后输入“cmd”,这里会打开msdos窗口,在“命令提示符”后输入格式:
assoc 扩展名=扩展名file(记住扩展名前要加“点”的)
比如,要恢复MP3的文件关联,我们可以输入:c:\\>assoc mp3=mp3file就可以了
补充说明:
这种恢复的方法,是恢复到文件的最原始的关联,和我们在文件的打开方式中更改的文件关联是有区别的。比如:EXE文件(Flash文件)与WinAMP建立了关联,这样,以后只要双击EXE文件,不管它是Flash文件也好,不是其它可执行文件都会调用WinAMP的,这样是最麻烦的。可是如果我们在命令提示符下输入:assoc exe=exefile,这样就恢复了EXE文件的默认关联,以后再运行可执行文件就不会再调用WinAMP程序了。
用这种方法还可以恢复com命令文件、zip压缩文件、rar压缩文件、html网页文件以及一些视频和音频文件的默认关联,大家可以试试。
开始->运行->输入"command" (在 Windows 2000/XP/2003 中,输入"cmd"),回车
在命令行中,依次执行以下命令:
cd %windir%
copy regeditexe regeditcom
regedit
注册表编辑器打开后,找到以下分支:
HKEY_CLASSES_ROOT\\exefile\\shell\\open\\command
双击右侧窗口中的 (默认) 值,设置为 "%1" % [包含引号]
再找到:
HKEY_CLASSES_ROOT\\exe
双击右侧窗口中的 (默认) 值,设置为 exefile
然后退出注册表编辑器,重启电脑
方法 2: 适用于 Windows 2000/XP/2003
开始->运行->输入"cmd",回车
在命令行中,依次执行以下命令:
ftype exefile="%1" % [包含引号]
assoc exe=exefile
重启电脑
如果您的Robot工作站exe文件无法运行,可以尝试以下几个方法:
1 检查电脑是否缺少必须的软件或驱动程序。如果没有,请下载并安装必须的软件或驱动程序。
2 检查防病毒软件是否已经将Robot工作站exe文件隔离或删除。如果是,请将其添加到您的白名单中或暂时禁用您的防病毒软件并尝试重新运行该exe文件。
3 确认机器人工作站的版本,并与您的计算机系统兼容。如果版本不一致,请升级或降级以匹配您的计算机系统。
4 如果仍然无法解决问题,请尝试更换机器人工作站exe文件的来源。如果从非官方网站下载,则可能会出现兼容性和稳定性问题。
5 最后,检查并确保计算机能够满足机器人工作站的最低要求,例如 *** 作系统、CPU、内存和硬盘空间等。如果您的计算机配置较低,可能会影响机器人工作站的正常 *** 作。
方法一、1、从窗体菜单栏做如下 *** 作:工具>文件夹选项>工具>隐藏已知文件扩展名,取消该复选项;
2、在C:\WINDOWS\system32目录下找到 regeditexe,将其改名为:regeditcom;
3、运行注册表:开始>运行>输入:regedit
打开目录:HKEY_CLASSES_ROOT\exefile\shell\open\command
双击右边“默认”项,d出对话框将其改为:"%1" % (注意前面没有空格)
这样问题就解决了。
方法二、exe文件不能运行的情况:一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了,三是可能你中毒了
下面先说说硬件:
一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。
假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。如果都没有,那就从软件方面排除故障了。
先简单说说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。举个例子:一个桶子只能将一斤的水,当你放入两斤的水进入时,就会溢出来。而系统则是在屏幕上表现出来。这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法 *** 作,系统为保持稳定,就会出现上述情况。另外也可能是硬件设备之间的兼容性不好造成的。
下面我从几个例子给大家分析:
例一:打开IE浏览器或者没过几分钟就会出现"0x70dcf39f"指令引用的"0x00000000"内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。 解决方法:修复或升级IE浏览器,同时打上补丁。看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。比如你的IE升级到了60,自升级后,会被IE50代替。
例二:在windows xp下双击光盘里面的“AutoRunexe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该内存不能为“written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。 解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRunexe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\\winnt\\apppatch\\slayeruidll。右键,属性,也会出现兼容性的选项。
例三:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read” 的提示。 解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。
例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“Ox060692f6”(每次变化)指令引用的“Oxff000011”内存不能为“read”,终止程序请按确定。 解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。
例五:双击一个游戏的快捷方式,“Ox77f5cdO”指令引用“Oxffffffff”内 存,该内存不能为“read” ,并且提示Clientdat程序错误。 解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX90。
例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0772b548f”指令引用的“000303033”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。 解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。
通过上面的几个例子,可以看到,出现故障的原因有好多种,在这里把已经提到和有可能发生的原因列个表,方便查阅。
解决方法
1、内存条坏了更换内存条
2、双内存不兼容使用同品牌的内存或只用一条内存
3、内存质量问题更换内存条
4、散热问题加强机箱内部的散热
5、内存和主板没插好或和其它硬件不兼容等重插内存或换个插糟
6、硬盘有问题更换硬盘
7、驱动问题重装驱动。如果是新系统,要先安装主板驱动
8、软件损坏重装软件
9、软件有BUG打补丁或用最新的版本。
10、软件和系统不兼容给软件打上补丁或者试试系统的兼容模式
11、软件和软件之间有冲突如果最近安装了什么新软件,卸载了试试
12、软件要使用到其它相关的软件有问题重装相关软件。比如播放某一格式的文件时出错,可能是这个文件的解码器有问题
13、病毒问题杀毒
14、杀毒软件与系统或软件冲突由于杀毒软件是进入底层监控系统的,可能与一些软件冲突,卸载了试试
15、系统本身有问题有时候 *** 作系统本身也会有BUG,要注意安装官方发行的升级程序,像SP的补丁,最好要打上。如果还不行重装系统或更换其它版本的系统了
还有一种情况是被设置了禁止使用EXE文件
(回答不错吧?)
如果你的Lenovo小新pro160无法运行exe文件,可能是以下原因之一:
1 文件损坏:该exe文件可能已经损坏或丢失了一些必要的程序文件,可以重新下载并尝试重新安装。同时建议在下载时使用正版渠道下载以确保文件的完整性。
2 兼容性问题:某些exe文件可能不兼容你的 *** 作系统或硬件设备,可以尝试使用其他版本的软件或者更新你的 *** 作系统和驱动程序。
3 权限问题:可能是由于你的账户权限不足,导致无法运行该文件。可以尝试使用管理员账户登录电脑并重新运行。
4 病毒感染:某些exe文件可能被恶意软件感染,建议先进行杀毒扫描,排除病毒后再重新运行该文件。
总之,如果无法运行exe文件,建议按照以上步骤逐一排除问题,如果仍然无法解决,建议寻求专业技术支持。
以上就是关于电脑的exe程序不能运行怎么办全部的内容,包括:电脑的exe程序不能运行怎么办、win10出现打不开exe文件,怎么办、【解决】无法启动程序/exe 系统找不到指定的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)