29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
import jscrewit from 'jscrewit';
|
|
|
|
const { scripts } = window.document;
|
|
const { encode: obfuscate } = jscrewit;
|
|
|
|
function getTextAfterLastSlash(string) {
|
|
return string.slice(string.lastIndexOf('/') + 1);
|
|
}
|
|
|
|
(async function() {
|
|
for (const script of scripts) {
|
|
const { src, type } = script;
|
|
if (
|
|
!['fuse.js', 'bowser', 'es-module-shims'].includes(getTextAfterLastSlash(src)) &&
|
|
!['importmap', 'module-shim'].includes(type.toLowerCase())
|
|
) {
|
|
try {
|
|
const response = await fetch(src);
|
|
const textContent = await response.text();
|
|
const obfuscated = obfuscate(textContent);
|
|
const base64Obfuscated = btoa(obfuscated);
|
|
script.setAttribute('src', `data:text/javascript;base64,${base64Obfuscated}`);
|
|
console.log('Obfuscated script successfully.');
|
|
} catch (error) {
|
|
console.error('Failed to obfuscate script:', error);
|
|
}
|
|
}
|
|
}
|
|
})(); |