From b1d3036aed5d7a2c1f4f2915b82e545511b69481 Mon Sep 17 00:00:00 2001 From: Amm0ni4 Date: Fri, 22 Mar 2024 13:25:47 +0100 Subject: [PATCH] added work.ink bypass taken from https://greasyfork.org/en/scripts/463481-work-ink-bypasser --- Bypass_All_Shortlinks.meta.js | 5 +- Bypass_All_Shortlinks.user.js | 188 ++++++++++++++++++++++++++++++- README.md | 7 +- extra_bypasses/work.ink.user.js | 191 ++++++++++++++++++++++++++++++++ supported_sites.txt | 1 + 5 files changed, 387 insertions(+), 5 deletions(-) create mode 100644 extra_bypasses/work.ink.user.js diff --git a/Bypass_All_Shortlinks.meta.js b/Bypass_All_Shortlinks.meta.js index aa717d4..a474e08 100644 --- a/Bypass_All_Shortlinks.meta.js +++ b/Bypass_All_Shortlinks.meta.js @@ -3,7 +3,7 @@ // @namespace Violentmonkey Scripts // @run-at document-start // @author Amm0ni4 -// @version 91.6.6 +// @version 91.6.7 // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle @@ -637,6 +637,7 @@ // @match *://*.sigmalinks.in/* // @match *://*.r1.foxylinks.site/* // @grant GM_deleteValue +// @grant GM_getResourceText // @include /^(https?:\/\/)((ebaticalfel|megadropsz|stownrusis|iedprivatedqu).com)\/s\?/ // @include /adbypass.eu/ // @include /(bypass.city|adbypass.org)\/bypass\?bypass=/ @@ -752,6 +753,8 @@ // @include /linegee.net|intercelestial.com/ // @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/ // @include /mega-enlace.com/ +// @include /(work.ink|workink.click)\/.*$/ +// @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js // @exclude /^(https?:\/\/)(.+)?((advertisingexcel|talkforfitness|rsadnetworkinfo|rsinsuranceinfo|rsfinanceinfo|rssoftwareinfo|rshostinginfo|rseducationinfo|gametechreviewer|vegan4k|phineypet|batmanfactor|techedifier|urlhives|linkhives|github|freeoseocheck|greenenez|aliyun|reddit|bing|yahoo|wiki-topia|edonmanor|vrtier|whatsapp|gearsadviser|edonmanor|tunebug|menrealitycalc|amazon|ebay|payoneer|paypal|skrill|stripe|tipalti|wise|discord|tokopedia|taobao|taboola|aliexpress|netflix|citigroup|spotify|bankofamerica|hsbc|(cloud|mail|translate|analytics|accounts|myaccount|contacts|clients6|developers|payments|pay|ogs|safety|wallet).google|(login|signup|account|officeapps|api|mail|hotmail).live).com|(thumb8|thumb9|crewbase|crewus|shinchu|shinbhu|ultraten|uniqueten|topcryptoz|allcryptoz|coinsvalue|cookinguide|cryptowidgets|webfreetools|carstopia|makeupguide|carsmania|nflximg|doubleclick).net|(linksfly|shortsfly|urlsfly|wefly|blog24).me|(greasyfork|openuserjs|adarima|telegram|wikipedia).org|mcrypto.club|misterio.ro|insurancegold.in|coinscap.info|chefknives.expert|(shopee|lazada|rakuten|maybank).*|(dana|ovo|bca.co|bri.co|bni.co|bankmandiri.co|desa|(.*).go).id|(.*).edu|(.*).gov)(\/.*)/ // @downloadURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.user.js // @updateURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.meta.js diff --git a/Bypass_All_Shortlinks.user.js b/Bypass_All_Shortlinks.user.js index cb6a62d..2055ff6 100644 --- a/Bypass_All_Shortlinks.user.js +++ b/Bypass_All_Shortlinks.user.js @@ -3,7 +3,7 @@ // @namespace Violentmonkey Scripts // @run-at document-start // @author Amm0ni4 -// @version 91.6.6 +// @version 91.6.7 // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle @@ -637,6 +637,7 @@ // @match *://*.sigmalinks.in/* // @match *://*.r1.foxylinks.site/* // @grant GM_deleteValue +// @grant GM_getResourceText // @include /^(https?:\/\/)((ebaticalfel|megadropsz|stownrusis|iedprivatedqu).com)\/s\?/ // @include /adbypass.eu/ // @include /(bypass.city|adbypass.org)\/bypass\?bypass=/ @@ -752,6 +753,8 @@ // @include /linegee.net|intercelestial.com/ // @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/ // @include /mega-enlace.com/ +// @include /(work.ink|workink.click)\/.*$/ +// @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js // @exclude /^(https?:\/\/)(.+)?((advertisingexcel|talkforfitness|rsadnetworkinfo|rsinsuranceinfo|rsfinanceinfo|rssoftwareinfo|rshostinginfo|rseducationinfo|gametechreviewer|vegan4k|phineypet|batmanfactor|techedifier|urlhives|linkhives|github|freeoseocheck|greenenez|aliyun|reddit|bing|yahoo|wiki-topia|edonmanor|vrtier|whatsapp|gearsadviser|edonmanor|tunebug|menrealitycalc|amazon|ebay|payoneer|paypal|skrill|stripe|tipalti|wise|discord|tokopedia|taobao|taboola|aliexpress|netflix|citigroup|spotify|bankofamerica|hsbc|(cloud|mail|translate|analytics|accounts|myaccount|contacts|clients6|developers|payments|pay|ogs|safety|wallet).google|(login|signup|account|officeapps|api|mail|hotmail).live).com|(thumb8|thumb9|crewbase|crewus|shinchu|shinbhu|ultraten|uniqueten|topcryptoz|allcryptoz|coinsvalue|cookinguide|cryptowidgets|webfreetools|carstopia|makeupguide|carsmania|nflximg|doubleclick).net|(linksfly|shortsfly|urlsfly|wefly|blog24).me|(greasyfork|openuserjs|adarima|telegram|wikipedia).org|mcrypto.club|misterio.ro|insurancegold.in|coinscap.info|chefknives.expert|(shopee|lazada|rakuten|maybank).*|(dana|ovo|bca.co|bri.co|bni.co|bankmandiri.co|desa|(.*).go).id|(.*).edu|(.*).gov)(\/.*)/ // @downloadURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.user.js // @updateURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.meta.js @@ -2410,3 +2413,186 @@ })(); // ----- ----- ----- + +// ----- Bypass work.ink ---- original script by lem6ns: https://greasyfork.org/en/scripts/463481-work-ink-bypasser +(function() { + 'use strict'; + if (/(work.ink|workink.click)\/.*$/.test(window.location.href)) { + // Overlay text "Bypassing..." + setInterval(() => {if (!document.getElementById('bypassOverlay')) { + const overlay = document.createElement('div'); + overlay.id = 'bypassOverlay'; + overlay.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.5);padding:20px;z-index:9999;'; + overlay.innerHTML = '

Bypassing with userscript...(wait 2-3s) (use incognito or delete cookies if stuck)

'; + document.body.appendChild(overlay); + }}, 1000); + + document.addEventListener('DOMContentLoaded', function() { + //--Original script starts here-- + const notyfCss = GM_getResourceText("NOTYF_CSS"); + GM_addStyle(notyfCss); + const notyf = new Notyf({ duration: 5000 }); + + (async () => { + if (window.location.hostname.includes("r.")) window.location.hostname = window.location.hostname.replace("r.", ""); + if (window.location.hostname === "work.ink") { + const [encodedUserId, linkCustom] = decodeURIComponent(window.location.pathname.slice(1)).split("/").slice(-2); + const BASE = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + const loopTimes = encodedUserId.length; + let decodedUserId = BASE.indexOf(encodedUserId[0]); + for (let i = 1; i < loopTimes; i++) decodedUserId = 62 * decodedUserId + BASE.indexOf(encodedUserId[i]); + + const payloads = { + social: (url) => JSON.stringify({ + type: "c_social_started", + payload: { + url + } + }), + readArticles: { + 1: JSON.stringify({ + type: "c_monetization", + payload: { + type: "readArticles", + payload: { + event: "start" + } + } + }), + 2: JSON.stringify({ + type: "c_monetization", + payload: { + type: "readArticles", + payload: { + event: "closeClicked" + } + } + }) + }, + browserExtension: { + 1: JSON.stringify({ + type: "c_monetization", + payload: { + type: "browserExtension", + payload: { + event: "start" + } + } + }), + 2: (token) => JSON.stringify({ + type: "c_monetization", + payload: { + type: "browserExtension", + payload: { + event: "confirm", + token + } + } + }) + } + } + + WebSocket.prototype.oldSendImpl = WebSocket.prototype.send; + WebSocket.prototype.send = + function (data) { + this.oldSendImpl(data); + this.addEventListener( + "message", + async (e) => { + const sleep = ms => new Promise(r => setTimeout(r, ms)); + const data = JSON.parse(e.data); + if (data.error) return; + const payload = data.payload; + + switch (data.type) { + case "s_link_info": + notyf.success("got link info") + if (payload.socials) socials.push(...payload.socials); + const monetizationTypes = ["readArticles", "browserExtension"]; + for (const type of monetizationTypes) { + if (payload.monetizationScript.includes(type)) { + activeMonetizationTypes.push(type) + } + } + break; + case "s_start_recaptcha_check": + this.oldSendImpl(payloads.captcha); + break; + case "s_recaptcha_okay": + if (socials.length) { + for (const [index, social] of socials.entries()) { + notyf.success(`performing social #${index+1}`) + this.oldSendImpl(payloads.social(social.url)); + await sleep(3 * 1000); + } + } + + if (activeMonetizationTypes.length) { + for (const type of activeMonetizationTypes) { + switch (type) { + case "readArticles": + notyf.success("reading articles...") + this.oldSendImpl(payloads.readArticles["1"]); + this.oldSendImpl(payloads.readArticles["2"]); + break; + case "browserExtension": + notyf.success("skipping browser extension step") + if (activeMonetizationTypes.includes("readArticles")) await sleep(11 * 1000); + this.oldSendImpl(payloads.browserExtension["1"]) + break; + } + } + } + break; + case "s_monetization": + if (payload.type !== "browserExtension") break; + this.oldSendImpl(payloads.browserExtension["2"](payload.payload.token)) + break; + case "s_link_destination": + notyf.success("done!") + const url = new URL(payload.url); + localStorage.clear(window.location.href); + if (url.searchParams.has("duf")) { + window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join("")) + }; + window.location.href = payload.url; + break; + } + }, + false + ); + this.send = + function (data) { + this.oldSendImpl(data); + }; + } + notyf.success("patched websocket") + let socials = []; + let activeMonetizationTypes = []; + } else if (window.location.hostname == "workink.click") { + const uuid = new URLSearchParams(window.location.search).get("t") + fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/pageOpened`); + await new Promise(r => setTimeout(r, 11 * 1000)); + const { destination } = await fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/destination`).then(r => r.json()); + const url = new URL(destination); + if (url.searchParams.has("duf")) { + window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join("")) + }; + window.location.href = destination; + notyf.success("wait 11 seconds") + } else { + if (new URL(window.location.href).searchParams.has("duf")) { + var link = document.createElement("a"); + link.referrerPolicy = "no-referrer"; + link.rel = "noreferrer"; + + link.href = window.atob(new URL(window.location.href).searchParams.get("duf").split("").reverse().join("")); + link.click(); + }; + } + })(); + //--Original script ends here-- + }); + } +})(); +// ----- ----- ----- diff --git a/README.md b/README.md index 4f81a11..d1a9914 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,10 @@ You can help by: This script contains code I took, or redirects to free services from other developers for certain bypasses. Thanks to: - [BloggerPemula](https://greasyfork.org/users/810571-bloggerpemula) -- [bypass.city](https://bypass.city/) / [2](https://adbypass.org/) Redirecting to this site to solve most of the L1nkv3rt1s3 cases and for work.ink links. -- [antiworkink](https://greasyfork.org/users/1237543-antiworkink) for the loot-link open source bypass. +- [bypass.city](https://bypass.city/) / [2](https://adbypass.org/) Redirecting to this site to solve most of the L1nkv3rt1s3 cases and for bstlar links. +- [antiworkink](https://greasyfork.org/users/1237543-antiworkink) for the loot-link bypass. +- [lem6ns](https://greasyfork.org/en/users/937794-lem6ns) for the work.ink bypass. - [Ad-Bypass](https://adbypass.eu/) Redirecting to this site for ad-maven links. - [Rust1667](https://greasyfork.org/users/980489-rust1667) for some bypasses. -- [AdGuard filters](https://github.com/AdguardTeam/AdguardFilters/) for some bypasses. +- [AdGuard filters](https://github.com/AdguardTeam/AdguardFilters/) for the mega-enlace bypass. diff --git a/extra_bypasses/work.ink.user.js b/extra_bypasses/work.ink.user.js new file mode 100644 index 0000000..5ec6a40 --- /dev/null +++ b/extra_bypasses/work.ink.user.js @@ -0,0 +1,191 @@ +// ==UserScript== +// @name work.ink bypass +// @include /(work.ink|workink.click)\/.*$/ +// @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js +// @run-at document-start +// @grant GM_getResourceText +// @grant GM_addStyle +// ==/UserScript== + +// ----- Bypass work.ink ---- original script by lem6ns: https://greasyfork.org/en/scripts/463481-work-ink-bypasser +(function() { + 'use strict'; + if (/(work.ink|workink.click)\/.*$/.test(window.location.href)) { + // Overlay text "Bypassing..." + setInterval(() => {if (!document.getElementById('bypassOverlay')) { + const overlay = document.createElement('div'); + overlay.id = 'bypassOverlay'; + overlay.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.5);padding:20px;z-index:9999;'; + overlay.innerHTML = '

Bypassing with userscript...(wait 2-3s) (use incognito or delete cookies if stuck)

'; + document.body.appendChild(overlay); + }}, 1000); + + document.addEventListener('DOMContentLoaded', function() { + //--Original script starts here-- + const notyfCss = GM_getResourceText("NOTYF_CSS"); + GM_addStyle(notyfCss); + const notyf = new Notyf({ duration: 5000 }); + + (async () => { + if (window.location.hostname.includes("r.")) window.location.hostname = window.location.hostname.replace("r.", ""); + if (window.location.hostname === "work.ink") { + const [encodedUserId, linkCustom] = decodeURIComponent(window.location.pathname.slice(1)).split("/").slice(-2); + const BASE = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + const loopTimes = encodedUserId.length; + let decodedUserId = BASE.indexOf(encodedUserId[0]); + for (let i = 1; i < loopTimes; i++) decodedUserId = 62 * decodedUserId + BASE.indexOf(encodedUserId[i]); + + const payloads = { + social: (url) => JSON.stringify({ + type: "c_social_started", + payload: { + url + } + }), + readArticles: { + 1: JSON.stringify({ + type: "c_monetization", + payload: { + type: "readArticles", + payload: { + event: "start" + } + } + }), + 2: JSON.stringify({ + type: "c_monetization", + payload: { + type: "readArticles", + payload: { + event: "closeClicked" + } + } + }) + }, + browserExtension: { + 1: JSON.stringify({ + type: "c_monetization", + payload: { + type: "browserExtension", + payload: { + event: "start" + } + } + }), + 2: (token) => JSON.stringify({ + type: "c_monetization", + payload: { + type: "browserExtension", + payload: { + event: "confirm", + token + } + } + }) + } + } + + WebSocket.prototype.oldSendImpl = WebSocket.prototype.send; + WebSocket.prototype.send = + function (data) { + this.oldSendImpl(data); + this.addEventListener( + "message", + async (e) => { + const sleep = ms => new Promise(r => setTimeout(r, ms)); + const data = JSON.parse(e.data); + if (data.error) return; + const payload = data.payload; + + switch (data.type) { + case "s_link_info": + notyf.success("got link info") + if (payload.socials) socials.push(...payload.socials); + const monetizationTypes = ["readArticles", "browserExtension"]; + for (const type of monetizationTypes) { + if (payload.monetizationScript.includes(type)) { + activeMonetizationTypes.push(type) + } + } + break; + case "s_start_recaptcha_check": + this.oldSendImpl(payloads.captcha); + break; + case "s_recaptcha_okay": + if (socials.length) { + for (const [index, social] of socials.entries()) { + notyf.success(`performing social #${index+1}`) + this.oldSendImpl(payloads.social(social.url)); + await sleep(3 * 1000); + } + } + + if (activeMonetizationTypes.length) { + for (const type of activeMonetizationTypes) { + switch (type) { + case "readArticles": + notyf.success("reading articles...") + this.oldSendImpl(payloads.readArticles["1"]); + this.oldSendImpl(payloads.readArticles["2"]); + break; + case "browserExtension": + notyf.success("skipping browser extension step") + if (activeMonetizationTypes.includes("readArticles")) await sleep(11 * 1000); + this.oldSendImpl(payloads.browserExtension["1"]) + break; + } + } + } + break; + case "s_monetization": + if (payload.type !== "browserExtension") break; + this.oldSendImpl(payloads.browserExtension["2"](payload.payload.token)) + break; + case "s_link_destination": + notyf.success("done!") + const url = new URL(payload.url); + localStorage.clear(window.location.href); + if (url.searchParams.has("duf")) { + window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join("")) + }; + window.location.href = payload.url; + break; + } + }, + false + ); + this.send = + function (data) { + this.oldSendImpl(data); + }; + } + notyf.success("patched websocket") + let socials = []; + let activeMonetizationTypes = []; + } else if (window.location.hostname == "workink.click") { + const uuid = new URLSearchParams(window.location.search).get("t") + fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/pageOpened`); + await new Promise(r => setTimeout(r, 11 * 1000)); + const { destination } = await fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/destination`).then(r => r.json()); + const url = new URL(destination); + if (url.searchParams.has("duf")) { + window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join("")) + }; + window.location.href = destination; + notyf.success("wait 11 seconds") + } else { + if (new URL(window.location.href).searchParams.has("duf")) { + var link = document.createElement("a"); + link.referrerPolicy = "no-referrer"; + link.rel = "noreferrer"; + + link.href = window.atob(new URL(window.location.href).searchParams.get("duf").split("").reverse().join("")); + link.click(); + }; + } + })(); + //--Original script ends here-- + }); + } +})(); +// ----- ----- ----- diff --git a/supported_sites.txt b/supported_sites.txt index 6ec6395..0999b29 100644 --- a/supported_sites.txt +++ b/supported_sites.txt @@ -734,3 +734,4 @@ r1.foxylinks.site /linegee.net|intercelestial.com/ /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/ /mega-enlace.com/ +/(work.ink|workink.click)\/.*$/