// ==UserScript== // @name Bypass FileCrypt // @name:it Bypassa FileCrypt // @namespace StephenP // @version 1.4.0.5 // @description Bypass FileCrypt and get the original link! // @description:it Bypassa Filecrypt e ottieni il collegamento originale! // @author StephenP // @grant GM.xmlHttpRequest // @match http://filecrypt.cc/* // @match http://www.filecrypt.cc/* // @match http://filecrypt.co/* // @match http://www.filecrypt.co/* // @match https://filecrypt.cc/* // @match https://www.filecrypt.cc/* // @match https://filecrypt.co/* // @match https://www.filecrypt.co/* // @run-at document-end // @connect dcrypt.it // @connect self // @contributionURL https://buymeacoffee.com/stephenp_greasyfork // @downloadURL none // ==/UserScript== (function () { var usenetAd=document.getElementsByTagName('A');//come on, why should anyone pay for access to pirated content? for(var i=0;i0){ const a=document.body.innerHTML.lastIndexOf("http"); top.location.href=document.body.innerHTML.substring(a,document.body.innerHTML.indexOf('id=',a)+43).replace('&', '&'); } else{ GM.xmlHttpRequest({ method: "GET", url: document.location.href, onload: function(response) { const a=response.responseText.lastIndexOf("http"); top.location.href=response.responseText.substring(a,response.responseText.indexOf('id=',a)+43); } }); } } } function getCNL(){ var dlcButton=document.getElementsByClassName("dlcdownload"); if(dlcButton.length>0){ var inputs=document.getElementsByTagName('INPUT'); var dlcId; /*for(var i=0;i0){ try{ for (var link of obj.success.links) { console.log("Decrypted using dcrypt.it: "+link); let b=document.createElement("SPAN"); b.textContent=link; b.addEventListener("click",function(){window.open(link)}); b.addEventListener("contextmenu",copyLink) b.style.color=textColor(); b.style.cursor="pointer"; finalLinksDiv.appendChild(b); finalLinksDiv.appendChild(document.createElement("BR")); } console.log(finalLinksDiv); document.getElementById("dcryptLoadMsg").replaceWith(finalLinksDiv); } catch(e){ console.log(e); xhrLinkExtract(); } /*What was this code doing? I can't remember, but it seems it's not needed anymore const config = { attributes: true, childList: false, subtree: false }; const callback = function(mutationList, observer) { for (const mutation of mutationList) { console.log(mutation); mutation.target.removeAttribute(mutation.attributeName); } }; const observer = new MutationObserver(callback); observer.observe(finalLinksDiv, config); */ } else{ xhrLinkExtract(); } }, onerror: function(response) { xhrLinkExtract(); } }); } function xhrLinkExtract(){ var finalLinksDiv=document.createElement("DIV"); finalLinksDiv.style.backgroundColor=bgColor(); finalLinksDiv.style.borderRadius="10px"; finalLinksDiv.style.padding="1em"; finalLinksDiv.style.marginTop="1em"; finalLinksDiv.style.color=textColor(); finalLinksDiv.style.zIndex="10"; finalLinksDiv.style.position="relative"; finalLinksDiv.style.marginBottom="1em"; let a=document.createElement("SPAN"); a.textContent="Decrypted links:"; finalLinksDiv.appendChild(a); finalLinksDiv.appendChild(document.createElement("BR")); finalLinksDiv.appendChild(document.createElement("BR")); var encLinks=document.querySelectorAll("[onclick^=openLink]");//get all the encrypted links for(let l of encLinks){ let passA=l.getAttribute("onclick"); let passB=passA.split("'"); let passC=l.getAttribute(passB[1]); let link="http://"+document.location.hostname+"/Link/"+passC+".html" GM.xmlHttpRequest({ method: "GET", url: link, headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { let scripts=response.responseXML.getElementsByTagName("SCRIPT") for(let s of scripts){ if(s.innerHTML.includes("top.location.href=")){ getFinalLink(s.innerHTML.split("'")[1],finalLinksDiv); continue } } } }); } document.getElementById("dcryptLoadMsg").replaceWith(finalLinksDiv); } function getFinalLink(encLink,finalLinksDiv){ let req=GM.xmlHttpRequest({ method: "OPTIONS", url: encLink, headers: { "Content-Type": "application/x-www-form-urlencoded" }, onreadystatechange: function(response) { req.abort(); console.log(response) console.log("Decrypted locally: "+response.finalUrl); let b=document.createElement("SPAN"); b.textContent=response.finalUrl; b.addEventListener("click",function(){window.open(response.finalUrl)}); b.addEventListener("contextmenu",copyLink) b.style.color=textColor(); b.style.cursor="pointer"; finalLinksDiv.appendChild(b); finalLinksDiv.appendChild(document.createElement("BR")); } }); } function bgColor(){ var color="white"; const colorTag=document.head.querySelector("meta[name=\"theme-color\"]"); if(colorTag){ color="#0b0d15"; } return color } function textColor(){ var color="black"; const colorTag=document.head.querySelector("meta[name=\"theme-color\"]"); if(colorTag){ color="white"; } return color } function copyLink(e){ e.preventDefault(); e.stopPropagation(); navigator.clipboard.writeText(e.target.innerText); alert("Link copied: "+e.target.innerText); }