Windows可执行文件[.exe]是如何从浏览器中启动的?

时间:2010-12-08 03:31:25

标签: javascript html web-applications executable

我不是在谈论浏览器漏洞利用。我在谈论真实公司中使用的真实应用程序,例如IjjiNexon

基本上,您可以从他们的网站点击“开始游戏”按钮,该按钮将分别启动位于c:\ ijji \ english或c \ nexon [gamename]的可执行文件。这些应用程序是真正的桌面应用程序,这意味着它们可以利用文件系统,direct3d和OS [以执行其他应用程序的形式]。应用程序也可以通过命令行启动[而不是转到游戏主机的网站]。

我认为如果应用程序创建了一个ActiveX对象来调用创建新进程,那么这是可能的。但是,这些网站能够从Internet Explorer以外的多个浏览器启动应用程序,包括chrome,据我所知,这些浏览器不实现ActiveX。

显然,开发这些应用程序的人使用自己的方法来做到这一点。

从查看服务列表以及当前正在运行的应用程序列表,我没有迹象表明它们正在运行类似“gameLaunchingServer.exe”的内容,它会侦听一些模糊的端口以获取传入连接[使用iframe访问 - HTTP协议]并通过启动应用程序来响应...

我很难过,这有点卡在我的脑海里。显然,他们没有使用一些随机的浏览器漏洞,否则http:// www。[insertMaliciousWebsiteHere] .com的人们已经抓住了机会来安装随机垃圾。无论如何,它似乎很酷,我想知道它是如何工作的。

好奇,嘿嘿。

4 个答案:

答案 0 :(得分:3)

我找不到你正在谈论的按钮,但我认为只有在你安装了一次应用程序之后它才有效,不是吗?

在这种情况下,应用程序可能创建了自己的协议,就像skype,msn和一堆客户端一样。

答案 1 :(得分:3)

我相信他们正在做的是在安装时设置自己的协议处理程序 - 当要求浏览器访问具有不知道如何处理的协议的地址时(例如,steam://地址),它查看所有已安装的协议处理程序以查找匹配项。

因此,您可以将您的应用程序注册为myApplication://协议处理程序,然后您的网页可以链接到myApplication://地址并启动您的应用程序。

答案 2 :(得分:0)

拥有协议是最简单的方法(实现起来非常简单 - 一个简单的注册表项)。

使用的另一种方法是扩展或插件。

答案 3 :(得分:0)

我认为它们是通过插件或小程序运行的。

例如,MS SilverLight

alt text