Bad regex causes code to fail
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript
- Domaine
- tooling
Piste de recherche
Reproduisez l’échec avec les options d’obfuscation indiquées et le JavaScript d’exemple, puis examinez le décodeur base64 généré autour de l’expression /=+$/. Confirmez que la sortie générée s’exécute correctement après la résolution du problème d’expression régulière, en utilisant l’exemple fourni comme vérification d’achèvement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When using these options:
{
compact: false,
identifierNamesGenerator: 'mangled',
stringArray: true,
stringArrayEncoding: 'base64'
}
This code:
main();
function main() {
alert("Hello world!")
}
Obfuscates as the following code, which fails due to the regex /=+$/:
var a = ['SGVsbG8gd29ybGQh'];
(function (c, d) {
var e = function (f) {
while (--f) {
c['push'](c['shift']());
}
};
e(++d);
}(a, 0x6f));
var b = function (c, d) {
c = c - 0x0;
var e = a[c];
if (b['yZthrT'] === undefined) {
(function () {
var f = function () {
var g;
try {
g = Function('return\x20(function()\x20' + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');')();
} catch (h) {
g = window;
}
return g;
};
var i = f();
var j = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
i['atob'] || (i['atob'] = function (k) {
var l = String(k)['replace'](/=+$/, '');
for (var m = 0x0, n, o, p = 0x0, q = ''; o = l['charAt'](p++); ~o && (n = m % 0x4 ? n * 0x40 + o : o, m++ % 0x4) ? q += String['fromCharCode'](0xff & n >> (-0x2 * m & 0x6)) : 0x0) {
o = j['indexOf'](o);
}
return q;
});
}());
b['aypUXW'] = function (r) {
var s = atob(r);
var t = [];
for (var u = 0x0, v = s['length']; u < v; u++) {
t += '%' + ('00' + s['charCodeAt'](u)['toString'](0x10))['slice'](-0x2);
}
return decodeURIComponent(t);
};
b['EhRyAC'] = {};
b['yZthrT'] = !![];
}
var w = b['EhRyAC'][c];
if (w === undefined) {
e = b['aypUXW'](e);
b['EhRyAC'][c] = e;
} else {
e = w;
}
return e;
};
main();
function main() {
alert(b('0x0'));
}
- Langage dominant
- JavaScript
- Étoiles
- 103
- Forks
- 37
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de javascript-obfuscator/gulp-javascript-obfuscator
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
javascript-obfuscator/gulp-javascript-obfuscator#34 · 1 commentaire ·
-
License for RepoOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 45/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
-
Throws error with Node.js 13.6Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
javascript-obfuscator/gulp-javascript-obfuscator#28 · 5 commentaires · 1 réaction ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
javascript-obfuscator/gulp-javascript-obfuscator#26 · 2 commentaires ·
Toutes les issues de javascript-obfuscator/gulp-javascript-obfuscator
Issues similaires
-
good first issue help wanted
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
modrollstudio/Modroll-Studio-Website#80 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue help wanted
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
-
area: panel enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
GabrielGirardi/ledge#7 ·
-
0. Needs triage 35-feedback bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
A-linter
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
oxc-project/oxc#28783 ·
Les mainteneurs répondent en général sous 1 jour