VKontakte ááœáẠáááºáá¬ážáá±á¬ ááá·áºááºáá»á¬ážááᯠááŸáááºááŒááºážááŒáá·áºá á¡ááŒá¬ážáá°ááŸá¯áá±ážááœááºáááºáá»á¬ážáá²á·ááá¯á·ááẠááááŠážá áœá¬ "áá±ážáááºážáá±á¬" ááá·áºááºááá¯á· áá°ážááŒá±á¬ááºážááœá¬ážáááºááᯠáááááŒá¯áááááºááŒá áºááŒá®ážá ááá¯á·áá±á¬ááºááœáẠáá°ááŸá¯ááœááºáááºá០áá¯á¶ážá áœá²áá°á¡á¬áž áá±á¬ááºáááºááœáá·áºááŒá¯ááá·áºááẠáááŒá¯ááá·áºááᯠáá¯á¶ážááŒááºáááºááŒá áºáááºá ááá±á¬ááºáá¬áááááºá á¬áá¬ážááœáẠâvk.com/away.phpâ á á áá¹ááá·áºáááºááŒá¬áá¯á¶ááá¹áá¬ááºááᯠá¡á¬áá¯á¶á á°ážá áá¯ááºááŸá¯ááŸááá±á¬áá°á¡áá»á¬ážá á¯á áááááŒá¯áááá±á¬áºáááºážá áááºážááŸáá·áºáááºáááºááŒá®áž áááºááá·áºá¡áá¬á០á¡áá±ážááá°áá²á·áá«á
á á±á¬ááá¯áá»ážáá¬á
áá áºáá±á·ááœáẠáááá¯ááááºáá¬áá áºáŠážááẠá¡ááŒá¬ážááá±á¬áá»ááºáá áºáá¯ááᯠááŒá®ážááŒá±á¬ááºááŒá®ážáá±á¬áẠáá°ááá¯ááºážá¡á¬áž ááŒá±á¬ááŒááá¯áá±á¬ááá¹áááᯠá¡á áœá²á¡áááºážááŒá®ážáá±ááŸááºáž ááááá¯ááºáááºá ááá±á¬áá»ááºááᯠáá®ážááá·áº IP ááŒáá·áº áá¬áá¬áá±á«áºááœáẠáááºáá¶áá¬ážáá±á¬áºáááºáž ááá¯ááááºážá¡áááºááá«áááºáá«á ááá¯á·ááŒá±á¬áá·áºá ááŸááá±á¬ááááá¡ááá·áºááœá²ááá¯ááááºážáá áºáá¯ááᯠ.ddns.net ááá¯ááááºážááœáẠáá»ááºááŒááºá áœá¬áááºáá®ážáá²á·ááŒá®ážá áá±á¬ááºáá¯á¶ážááœáẠááá·áºááºá¡ááŒá áºá¡áá¯á¶ážááŒá¯áá²á·áááºá
ááá¡ááŒá¬ ááá¯á·á áºááá¯ááŒááºáá±á¬ááºáá±á¬á¡áá«á áááá¯ááááºáá¬ááẠáááºááá¯ááºá¡á á¬áž VK áá±á¬ááºážáá«ážááá¯ááᯠááœáá·áºáá±ááŒá®áž áá±ážáááºážáá±á¬ááá¯ááºááá¯á· áá°ážááŒá±á¬ááºážááŒááºážá¡ááŒá±á¬ááºáž á¡áááá±ážáááº-
á
áááºáá»áá±á¬ áá¯á¶ážá
áœá²áá°áá»á¬ážááá¯ááºááá¯áẠáááºážááá¯á·ááẠáááºááá·áºááá¯ááºááᯠááœá¬ážááá·áºáááºááŸáá·áº áááºááá·áºááá¯ááºááᯠáááœá¬ážááá·áºáááºááᯠáá¯á¶ážááŒááºááá¯ááºááœáá·áºááŸááááºáᯠáááºááá±á¬áºáááºáž VKontakte ááẠááŒá¬ážáá¬ážá
áœá¬ áááºááŒááºáá°ááᬠáá»áá¯ááºážáá±á¬ááºááá«áá² ááá·áºááºááᯠááá¯ááºááẠá¡ááœáá·áºá¡áááºážááᯠááá±ážá
áœááºážáá±á
áá¬ááŸá¬ážááá¯á·áá²
á€á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááœáẠáááá¬áááºááŸá¬ážáá±á¬ á¡á¬ážáááºážáá»ááºáá»á¬ážá áœá¬ááŸááááºá
- áá¶ááááŒá áºááœááºááá¯ááºááᯠááœáá·áºááááá«á á¡áááºáá±á¬áºááŒáá«á¡ááá¯ááºážá á¡áá¯á¶ážááŒá¯áá°ááẠáááºáááᯠáá»á±á¬áºááœáŸá¬ážááẠáááºážáááºážáááŸááá«á ááá·áºááºááá¯ááœáá·áºááẠáá áºáá¯áááºážáá±á¬áááºážáááºážááŸá¬ áááºážááᯠááááºá á¬áá¬ážááœáẠáá°ážááá·áºáááºááŒá áºáááºá
- ááá·áºááºáááºážááœáŸááºááŸá¯ááᯠááŸá±ážááœá±ážá á±áááºá ááŒááºááœáŸááºážááŒááºážá¡ááŒááºááŸá¯ááºážááẠping áá±á«áºááœááºáá°áááºáááºá ááá¯á·ááŒá±á¬áá·áºá ááŒáá·áºáá¬ážáá±á¬ ping ááŒáá·áº á¡áááºá á¡ááá¯ážáááºáá±á¬ á áá¹ááá·áºáá»á¬áž áá¯á¶ážááŸá¯á¶ážááœá¬ážááá¯ááºáááºá áá»áœááºá¯ááºááá¯á· ááááá·áºá¡ááá¯ááºáž áááºááá¶ááá¯ááºáá±á
- á¡áá°ážá¡ááŒá±á¬ááºáž á á±á¬áá·áºááŒáá·áºááŒááºážá á€áááºážáááºážááẠá¡áá¯á¶ážááŒá¯áá°áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºá á¯áá±á¬ááºážááẠááá¯ááá¯ááœááºáá°á á±áááºá áá±áá»á¬áááºááŸá¬ VK á¡áá¯á¶ážááŒá¯ááá·áºá¡áá¬ááŒá áºááŒá®ážá áá°ážááŒá±á¬ááºážááŸá¯ááŒá¯áá¯ááºáá²á·ááá·áº ááá¯á·á áºá id ááᯠáá¯á¶ááŒá¯á¶áá±á¬ááá·áºááºááá¯á· áá±á«ááºážááá·áºáááºá
Django ááᯠááœáŸááºáá±ážáá«á
á¡áááºáá«ááŒá¿áá¬áá»á¬ážá¡á¬ážáá¯á¶ážá¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá±ááŸááºážáá»ááºááŸá¬ browser extension áá
áºáá¯ááŒá
áºáááºá áááá¬áááºááŸá¬ážáá±á¬á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá¡ááœááºá ááœá±ážáá»ááºááŸá¯ááẠChrome ááœááºáá»áááºá á¡áá»ááºá¡áá»á¬áá»áá²á· áá±áá¬ááŸá¬ á¡áá±á¬ááºážáá¯á¶ážáá
áºáá¯ááŸááá«áááºá
ááá¯ááá¯á·áá±á¬ ááá¯ážáá»á²á·ááŸá¯áá áºáá¯ááᯠáááºáá®ážáááºá áááºááŸá url ááááºá á¬ááᯠá á±á¬áá·áºááŒáá·áºááẠáá®ážááŒá¬ážááá¯ááºááœá²áá áºáá¯ááœáẠááá¯ááºááŸá áºáá¯áááºáá®ážááẠááá¯á¡ááºáá«áááº- json-Manifest ááŸáá·áº JavaScript ááá¯ááºáá áºáá¯á
Manifest ááá¯ááºáá áºáá¯áááºáá®ážáá«á
áá»áœááºá¯ááºááá¯á·ááá¯á¡ááºáá±á¬ á¡áááá¡áá¬ááŸá¬ áááºááºáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááẠááá¯ážáá»á²á·ááŸá¯ááᯠááœáá·áºááŒá¯áá»ááºáá±ážáᬠexecutable script áá áºáá¯ááᯠáááºááŸááºáá±ážáááºááŒá áºáááºá
{
"manifest_version": 2,
"name": "Run Away From vk.com/away",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"permissions": ["tabs"],
"browser_action": {
"default_title": "Run Away From vk.com/away"
}
}
js ááá¯ááºáá áºáá¯áááºáá®ážáá«á
á¡áá¬á¡á¬ážáá¯á¶ážááẠá€áá±áá¬ááœáẠááá¯ážááŸááºážáá«áááº- áááºááºá¡áá
áºáá
áºáá¯ááᯠáááºáá®ážááá·áºá¡áá«ááœááºá ââá
áááºááŒáá·áº á
áááºáá«á url ááááºá
á¬á¡ááœáẠá
á
áºáá±ážááŸá¯ááᯠáá±á«ááºážááá·áºáá«áááºá
chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) {
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
if (url.substr(0,23) == "https://vk.com/away.php"){
var last = url.indexOf("&", 0)
if(last == -1)last = 1000;
var url = decodeURIComponent(url.substr(27, last-27));
chrome.tabs.update({url: url});
}
});
});
ááá¯ážáá»á²á·áááºáááºááŒááºážá
ááá¯ááºááŸá áºáá¯á áá¯á¶ážááẠáá°áá®áá±á¬ááá¯ááºááœá²ááœáẠááŸááá±ááŒá±á¬ááºážáá±áá»á¬ááŒá®ážáá±á¬ááºá Chrome ááá¯ááœáá·áºáá«á ááá¯ážáá»á²á·áááºááºááá¯ááœá±ážáá»ááºááŒá®áž âLoad unpacked extensionâ ááá¯ááŸáááºáá«á ááœáá·áºáá¬áá±á¬ áááºážááá¯ážááœááºá áá±á«ááºáá¬ážáá±á¬ ááá¯ážáá»á²á·áá¬ážáá±á¬ ááá¯ááºááœá²ááᯠááœá±ážááŒá®áž á á¯áá±á¬ááºážááŒááºážááᯠááŸáááºáá«á á¡áááºááá·áºá ááᯠvk.com/away á¡áá»áá¯ážá¡á á¬ážá ááá·áºááºá¡á¬ážáá¯á¶ážááᯠáá°áááºážááŒáá·áº á¡á á¬ážááá¯ážáá¬ážáááºá
á¡á²áá®á¡á á¬ážáá áºá¥á®ážáááá¯á¶ážááá¯ááºážá
áá¯ááºáá«áááºá áá®áá±á¬ááºážáá«ážááá¯á¡áá»áá¯ážá¡á
á¬ážáᬠáááºážáá²á·áá»á®áá²á· ááááºáááºááŸáá·áºá
á¬ážáá²á·ááá¯ááºááœá±ááá± áá°á¡áá±á¬áºáá»á¬ážáá»á¬ážááᯠáááºáááºááá¯ááºáá²á·áá±ááá·áºá áá°ááœá±ááá¯ááºááá¯ááºá ááá¯á¶ááŒá¯á¶áá²á·ááá·áºááºááᯠááá
áºáááŸáááºááá·áºáá°ážáá¬ážááá¯áá¬ááᯠáá¯á¶ážááŒááºááá¯ááºááœáá·áºááŸááááºááá¯á· áá¯á¶ááŒááºáá«áááºá
á¡áááºááŒá±á
á±áááºá¡ááœáẠááá±á¬áá»ááºááᯠáááºáá±ážááá¯ááºáá«áááºá
source: www.habr.com