mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 22:40:01 -04:00
update rspack
This commit is contained in:
parent
cb395552c8
commit
fc8738b239
3 changed files with 54 additions and 25 deletions
|
@ -52,12 +52,16 @@
|
||||||
"@webreflection/idb-map": "^0.3.1",
|
"@webreflection/idb-map": "^0.3.1",
|
||||||
"astravel": "^0.6.1",
|
"astravel": "^0.6.1",
|
||||||
"astring": "^1.8.6",
|
"astring": "^1.8.6",
|
||||||
|
"devtools-detector": "^2.0.20",
|
||||||
"dom-serializer": "^2.0.0",
|
"dom-serializer": "^2.0.0",
|
||||||
"domhandler": "^5.0.3",
|
"domhandler": "^5.0.3",
|
||||||
"domutils": "^3.1.0",
|
"domutils": "^3.1.0",
|
||||||
"htmlparser2": "^9.1.0",
|
"htmlparser2": "^9.1.0",
|
||||||
|
"javascript-obfuscator": "^4.1.1",
|
||||||
"meriyah": "^4.4.2",
|
"meriyah": "^4.4.2",
|
||||||
"parse-domain": "^8.0.2",
|
"parse-domain": "^8.0.2",
|
||||||
"set-cookie-parser": "^2.6.0"
|
"set-cookie-parser": "^2.6.0",
|
||||||
|
"uglifyjs-webpack-plugin": "^2.2.0",
|
||||||
|
"webpack-obfuscator": "^3.5.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import { defineConfig } from "@rspack/cli";
|
import { defineConfig } from "@rspack/cli";
|
||||||
import { rspack } from "@rspack/core";
|
import { rspack } from "@rspack/core";
|
||||||
// import { RsdoctorRspackPlugin } from "@rsdoctor/rspack-plugin";
|
import { RsdoctorRspackPlugin } from "@rsdoctor/rspack-plugin";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { fileURLToPath } from "url";
|
import { fileURLToPath } from "url";
|
||||||
|
import obfuscator from "javascript-obfuscator";
|
||||||
|
const { obfuscate } = obfuscator;
|
||||||
|
|
||||||
const __dirname = fileURLToPath(new URL(".", import.meta.url));
|
const __dirname = fileURLToPath(new URL(".", import.meta.url));
|
||||||
|
|
||||||
|
@ -14,7 +16,6 @@ export default defineConfig({
|
||||||
worker: join(__dirname, "src/worker/index.ts"),
|
worker: join(__dirname, "src/worker/index.ts"),
|
||||||
thread: join(__dirname, "src/thread/thread.ts"),
|
thread: join(__dirname, "src/thread/thread.ts"),
|
||||||
client: join(__dirname, "src/client/index.ts"),
|
client: join(__dirname, "src/client/index.ts"),
|
||||||
config: join(__dirname, "src/scramjet.config.ts"),
|
|
||||||
codecs: join(__dirname, "src/codecs/index.ts"),
|
codecs: join(__dirname, "src/codecs/index.ts"),
|
||||||
controller: join(__dirname, "src/controller/index.ts"),
|
controller: join(__dirname, "src/controller/index.ts"),
|
||||||
},
|
},
|
||||||
|
@ -51,6 +52,9 @@ export default defineConfig({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
optimization: {
|
||||||
|
minimize: process.env.OBFUSCATE === "true",
|
||||||
|
},
|
||||||
output: {
|
output: {
|
||||||
filename: "scramjet.[name].js",
|
filename: "scramjet.[name].js",
|
||||||
path: join(__dirname, "dist"),
|
path: join(__dirname, "dist"),
|
||||||
|
@ -63,12 +67,50 @@ export default defineConfig({
|
||||||
dbg: [join(__dirname, "src/log.ts"), "default"],
|
dbg: [join(__dirname, "src/log.ts"), "default"],
|
||||||
Function: [join(__dirname, "src/snapshot.ts"), "Function"],
|
Function: [join(__dirname, "src/snapshot.ts"), "Function"],
|
||||||
}),
|
}),
|
||||||
|
process.env.OBFUSCATE === "true" && {
|
||||||
|
apply(compiler) {
|
||||||
|
compiler.hooks.compilation.tap("GyatPlugin", (compilation) => {
|
||||||
|
compilation.hooks.processAssets.tap(
|
||||||
|
{
|
||||||
|
name: "GyatPlugin",
|
||||||
|
stage: compilation.PROCESS_ASSETS_STAGE_OPTIMIZE,
|
||||||
|
},
|
||||||
|
(assets) => {
|
||||||
|
for (const asset in assets) {
|
||||||
|
// inject code
|
||||||
|
compilation.updateAsset(asset, (source) => {
|
||||||
|
return {
|
||||||
|
source: () => {
|
||||||
|
return obfuscate(source.source(), {
|
||||||
|
compact: true,
|
||||||
|
controlFlowFlattening: true,
|
||||||
|
controlFlowFlatteningThreshold: 1,
|
||||||
|
numbersToExpressions: true,
|
||||||
|
simplify: true,
|
||||||
|
deadCodeInjection: true,
|
||||||
|
selfDefending: true,
|
||||||
|
renameGlobals: true,
|
||||||
|
transformObjectKeys: true,
|
||||||
|
stringArrayShuffle: true,
|
||||||
|
splitStrings: true,
|
||||||
|
stringArrayThreshold: 1,
|
||||||
|
domainLock: ["localhost", process.env.DOMAIN],
|
||||||
|
}).getObfuscatedCode();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
// new RsdoctorRspackPlugin({
|
// new RsdoctorRspackPlugin({
|
||||||
// supports: {
|
// supports: {
|
||||||
// parseBundle: true,
|
// parseBundle: true,
|
||||||
// banner: true
|
// banner: true,
|
||||||
// }
|
// },
|
||||||
// })
|
// }),
|
||||||
],
|
],
|
||||||
target: "webworker",
|
target: "webworker",
|
||||||
});
|
});
|
||||||
|
|
17
src/drm.ts
17
src/drm.ts
|
@ -1,17 +0,0 @@
|
||||||
import { addListener, launch } from "devtools-detector";
|
|
||||||
|
|
||||||
function jail() {
|
|
||||||
setInterval(() => {
|
|
||||||
console.error("SCRAMJET ERROR");
|
|
||||||
|
|
||||||
debugger;
|
|
||||||
}, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
addListener((open) => open && jail());
|
|
||||||
|
|
||||||
if (!["http://localhost:1337"].includes(window.location.origin)) {
|
|
||||||
jail();
|
|
||||||
}
|
|
||||||
|
|
||||||
launch();
|
|
Loading…
Add table
Add a link
Reference in a new issue