Доступ к функциям в SWF-файле через javascript [chatroulette.com] - PullRequest
0 голосов
/ 28 апреля 2010

В последнее время меня интересует код позади chatroulette.com. Как вы, наверное, знаете, это одноранговая веб-камера-чат, написанная на ActionScript, насколько я понимаю. Что меня интересует, так это то, что можно извлечь ip-адрес того, с кем вы сейчас общаетесь. Я видел службы, которые делают это, но они требуют, чтобы вы установили программу, которая работает на вашем компьютере, прослушивая UDP-пакеты. Мне было интересно, если бы был более простой метод.

Что я знаю, так это то, что JavaScript на странице связывается с приложением через ExternalInterface. В этой области я в значительной степени новичок, но, согласно моему ограниченному пониманию, вы не можете получить информацию из flash-приложения, если вы не настроили слушателя для вызова из javascript, а затем прикрепили обратный вызов к этому событию. Это правильно, или вы можете получить доступ к открытым функциям и переменным напрямую через JavaScript?

Например, есть публичная функция:

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

Можно ли получить к нему доступ напрямую через javascript?

Если это не так легко сделать, можно ли декомпилировать .swf-файл, изменить его (добавить некоторые функции), перекомпилировать и запустить вместо него? Я надеюсь, что кто-то может удовлетворить мое любопытство здесь.

Ответы [ 2 ]

1 голос
/ 07 октября 2010

Не самый этичный из вопросов. Но, в образовательных целях, вы можете проверить файлы перенаправления. Есть статья об этом здесь

Короче говоря, да, конечно, можно декомпилировать, добавить некоторые функции и использовать вместо этого измененную версию. Однако этически это просто неправильно. Код не ваш, и вы, вероятно, нарушаете условия лицензии. Но теория обоснована.

1 голос
/ 28 апреля 2010

Нет, произвольные публичные функции нельзя вызывать через JavaScript.Вам необходимо использовать ExternalInterface.

ExternalInterface.addCallback("outgoingAddress", outgoingAddress);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...