我刚刚遇到了一个相当不寻常的问题,我无法弄清楚它是否真的是一个问题(甚至是安全问题)。在 MacOS 上打开 Skype 时,会出现一个弹出窗口(多次,但内容完全相同),要求选择一个应用程序来打开以下内容:
解码 base64 值会显示脚本标签内的 JavaScript 片段,这让我相信 Skype 正试图在浏览器中打开此脚本。这是完整的值,为了便于阅读而美化了:
<script>
(function() {
function g(a) {
var c, b;
c = "";
for (b = 0; b < a.length; b++) c += String.fromCharCode(a.charCodeAt(b) + 2 - b % 14);
return c
}
function h(a) {
d = a - k;
k = a;
if (!(350 < d))
for (a = 0; a < b.length; a++) b[a] && b[a].postMessage && b[a].postMessage({
fps: 1E3 / d,
slot: e,
timeDelta: d || 0
}, "*");
window[g(f)](h)
}
var k = 0,
d, b = [],
e, f;
f = "pdqvgvxFtpuj~tmmFscpi";
window.addEventListener("message", function(a) {
var c = a.data;
c && c.slot && (a = a.source, -1 < b.indexOf(a) || (b.push(a), void 0 === e && (e = c.slot)))
});
window[g(f)](h)
})();
</script>
我对这个片段进行了一点逆向工程。据我了解,它监听对象message
上的事件window
,然后更新一些值。它还反复调用requestAnimationFrame
,从那里发布消息。
这段代码在做什么?为什么 Skype 试图打开它?