added work.ink bypass

taken from https://greasyfork.org/en/scripts/463481-work-ink-bypasser
This commit is contained in:
Amm0ni4 2024-03-22 13:25:47 +01:00
parent 1b4342bc80
commit b1d3036aed
5 changed files with 387 additions and 5 deletions

View file

@ -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

View file

@ -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 = '<h1 style="font-size:2em;color:white;margin:0;">Bypassing with userscript...(wait 2-3s) (use incognito or delete cookies if stuck)</h1>';
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--
});
}
})();
// ----- ----- -----

View file

@ -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.

View file

@ -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 = '<h1 style="font-size:2em;color:white;margin:0;">Bypassing with userscript...(wait 2-3s) (use incognito or delete cookies if stuck)</h1>';
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--
});
}
})();
// ----- ----- -----

View file

@ -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)\/.*$/