🏠 Home 

FileCR Assistant Bypass

A simple script to bypass FileCR Assistant.

< 脚本FileCR Assistant Bypass的反馈

评价:好评 - 脚本运行良好

§
发表于:2023-11-03

It's been working until recently, it needs to bypass this:

            async function b() {
if (!u) {
x(!0),
console.log("Extension not installed.");
return
}
let e = await eo.A.checkInfo();
if (!e) {
v(!0),
console.log("Extension not updated"),
console.log("installed ver:", "Old versions can't check version"),
console.log("latest ver:", c.ext_version);
return
}
if (!(0,
eb.q)(e.version, c.ext_version, ">=")) {
v(!0),
console.log("Extension not updated"),
console.log("installed ver:", e.version),
console.log("latest ver:", c.ext_version);
return
}

Basically needs to set the version equal to the newest version (which is currently 1.1.3 = ext_version)

here is their js calling the code above:

                send(e, t, n) {
var r;
let o = `MSG-${e}-${Date.now()}-${Math.round(1e4 * Math.random())}`
, i = {
direction: "from-page-script",
type: "message",
id: o,
action: e,
data: t
}
, a = null !== (r = null == n ? void 0 : n.timeoutSec) && void 0 !== r ? r : 3;
return new Promise((e,t)=>{
window.postMessage(i, "*"),
this.responseQueue.set(o, e),
setTimeout(()=>{
this.responseQueue.has(o) && (this.responseQueue.delete(o),
t(Error(`No response received within ${a} seconds.`)))
}
, 1e3 * a)
}

Here is my very old attempt to mimic the CRX installation, it doesn't work, but maybe it will give someone else inspiration to try:

// ==UserScript==
// @name         Plugin Bypass Script
// @namespace    http://your-namespace.com
// @version      1.0
// @description  Bypass plugin detection on https://filecr.com/
// @match        https://filecr.com/*
// @grant        none
// ==/UserScript==
(function() {
'use strict';
// Create a fake getStatus function that always returns an installed plugin
function fakeGetStatus() {
return Promise.resolve({
isInstalled: true,
installedAppId: w.appId // Plugin ID you want to emulate as installed
});
}
// Create a fake getInstallUrl function that returns a custom installation URL
function fakeGetInstallUrl(appId, downloadUrl, updateUrl, name, iconUrl) {
return `https://chrome.google.com/webstore/detail/webcrx/${appId}`;
}
// Replace the original functions with the fake ones
(window.m.useEffect) = () => {
if (c && "chrome" === g) {
let e = {
getStatus: fakeGetStatus,
getInstallUrl: fakeGetInstallUrl
};
let w = {
name: "FileCR Assistant",
appId: "cgdlgjfaminolmljfokbbienpoibhknp",
iconUrl: "https://filecr.com/logo.png",
downloadUrl: "https://static.filecr.com/filecr-assistant_1.0.4.crx",
updateUrl: "https://filecr.com/wp-json/filecr/v1/extension/updates",
iframeUrl: "https://webcrx.io/extension/comm",
extensionUrl: "",
installButtonUrl: "https://filecr.com/wp-json/filecr/v1/extension/install",
chromeInstallUrl: "https://webcrx.io/extension/add",
firefoxInstallUrl: "http://static.filecr.com/FileCR-Assistant.xpi",
operaInstallUrl: "https://static.filecr.com/webcrx_1.0.2_direct.crx",
extensionCookie: "extensionIsInstalled"
};
let t = setInterval(() => {
e.getStatus().then(t => {
if (console.log("Check status"),
console.log(t.installedAppId),
t.isInstalled && !t.installedAppId) {
let t = e.getInstallUrl(w.appId, w.downloadUrl, w.updateUrl, w.name, w.iconUrl);
console.log("Only Crx installed!"),
h(t)
} else
t.isInstalled && t.installedAppId === w.appId && (console.log("Extension installed!"),
l(!0),
p(!1),
k())
});
}, 2000);
return () => clearInterval(t);
}
};
})();

I got these variables before they started obfuscating their code so, yea.

§
发表于:2023-11-03

I tried again:

// ==UserScript==
// @name         Override checkInfo Function with Logging
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Override checkInfo to return true with console logging.
// @author       You
// @match        *://*/*
// @grant        none
// ==/UserScript==
(function() {
'use strict';
console.log('Tampermonkey script loaded.');
// Function to log and return the desired object
const mockCheckInfo = async () => {
console.log('checkInfo called');
const mockResponse = {
version: "1.1.3",
ext_version: "1.1.3",
extensionIsInstalled: true
// Add other properties as needed
};
console.log('checkInfo returning:', mockResponse);
return mockResponse;
};
// Wait for the eo object and its A property to be available
const waitForEO = setInterval(() => {
if (window.eo && eo.A && typeof eo.A.checkInfo === 'function') {
clearInterval(waitForEO);
console.log('eo.A.checkInfo is available.');
// Override the checkInfo function
eo.A.checkInfo = mockCheckInfo;
console.log('checkInfo function has been overridden.');
}
}, 100); // Check every 100 milliseconds
})();

Still no work :/

lem6ns作者
§
发表于:2023-12-17

Updated

发表回复

登录以发表回复。