网上有很多能把VBS脚本文件转换为EXE可执行文件的软件 比如 vbsedit等 我想知道原理,到底是怎么转换的

网上有很多能把VBS脚本文件转换为EXE可执行文件的软件 比如 vbsedit等 我想知道原理,到底是怎么转换的,第1张

呵呵,没你想象的那么复杂。提供一种简易的实现思路吧:

1 创建一个包含字符串资源的exe,exe的主要内容是:

int main()

{

// 1 读取资源里的字符串,并把它写入到某个临时文件里去。

。。。。

// 2 调用系统函数运行上面那步生成的vbs文件,比如:

system("explorerexe tempvbs");

}

2 现在才轮到真正的转换程序。

先把第一步里的exe当成二进制资源保存起来(RCDATA类型)。

一旦开始转换,先把exe的二进制数据从RCDATA资源里读出来。

再把要转换的VBS文件内容读取出来,并替换掉之前那个exe的字符串资源。具体怎么替换参考下PE格式的文档就清楚了。

最后把经过替换之后的exe给用户保存起来,这个exe的功能就跟那个VBS一模一样。

set ws=WScriptCreateObject("WScriptShell")

wsRun """C:\Program Files\Test\PrinterMonitorExexe""",0,false '调用exe

wsRun """D:\工具箱\模拟 *** 作vbs""",0,true '调用vbs

wsRun """D:\ipcmd""" '什么参数都不加,常规窗口运行

wsRun实际参数是"C:\Program Files\Test\AutoUpdateExexe",因为带空格,先将它括起来作为一个整体,而两侧的"按要求应该用转义""表示,故成为""C:\Program Files\Test\AutoUpdateExexe""

而Run本身调用参数就得在外部加一对引号,故共有三对引号。

用msgbox"""C:\Program Files\Test\AutoUpdateExexe"""可验证,

结果为"C:\Program Files\Test\AutoUpdateExexe"。

对于Run方法,可以统一都用三个引号,wsRun"""C:\"""同样可以解析;

本例也可用wsRun"C:\progra~1\Test\AutoUpdateExexe"来实现。

Set objWord = CreateObject("WordApplication")

Set colTasks = objWordTasks

If colTasksExists("我的下载 - 迅雷7") = flash Then

Set objshell=createobject("wscriptshell")

objShellRun "C:\Progra~1\Thunde~1\Thunder\Program\Thunderexe", 0

End If

do until j = 1

If colTasksExists("我的下载 - 迅雷7") Then

colTasks("我的下载 - 迅雷7")visible = flase

j=1

End If

loop

objWordQuit

End If

loop

objWordQuit

直接用run有好多程序不会后台启动的

本程序是先运行再进行后台隐藏。 所以会看到迅雷窗口一闪而过

以上就是关于网上有很多能把VBS脚本文件转换为EXE可执行文件的软件 比如 vbsedit等 我想知道原理,到底是怎么转换的全部的内容,包括:网上有很多能把VBS脚本文件转换为EXE可执行文件的软件 比如 vbsedit等 我想知道原理,到底是怎么转换的、vbs怎么调用exe、bat、cmd、vbs,最好是调用不同目录的、vbs如何后台运行程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10122822.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存