2010-04-28 69 views
-3

最近我一直对chatroulette.com背后的代码感兴趣。据我所知,您可能知道这是一个用actionscript编写的点对点webcam-chat-service。我一直在想的是天气有可能提取你正在与之通信的任何人的IP地址。我见过这样做的服务,但他们要求你安装一个与你的计算机一起运行的程序,它可以嗅探UDP包。我想知道是否有更简单的方法。通过javascript访问swf文件中的函数[chatroulette.com]

我知道的是,页面上的javascript通过“ExternalInterface”与应用程序进行通信。在这方面,我几乎是一个新手,但根据我的理解,你不能从Flash应用程序获取信息,除非你已经为来自javascript的调用配置了一个监听器,然后将回调附加到该事件。这是正确的,或者你可以直接通过javascript访问公共函数和变量?

有例如公共职能是这样的:

public function get outgoingAddress():String{ 
    return (this.__info.outgoingAddress); 
} 

可以直接通过JavaScript访问?

如果不能这么轻易完成,是否可以反编译.swf文件,更改它(添加一些函数)并重新编译并运行它?我希望有人能够满足我的好奇心。

+2

你真的觉得这是很酷的发布代码? – grapefrukt 2010-04-28 17:28:52

+0

我刚刚在随机问题(你的)上添加了一个赏金来获得徽章。我知道我很糟糕。 – 2010-10-04 16:21:52

+0

你为什么想知道这个? – 2010-10-07 19:18:52

回答

1

不,不能通过JavaScript调用任意的公共函数。您需要使用ExternalInterface。

ExternalInterface.addCallback("outgoingAddress", outgoingAddress); 
1

不是最道德的问题。但是,出于教育目的,您可能需要查看重新路由文件。有一篇关于它的文章here

所以简言之,是的,当然可以反编译,添加一些函数,然后使用修改后的版本。然而,从道德上来说,这只是错误的。代码不是你的,你可能违反了许可证,条款和条件。但理论是正确的。