Bad regex causes code to fail
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- tooling
Direzione di ricerca
Riproduci il malfunzionamento con le opzioni di offuscamento elencate e il JavaScript di esempio, quindi esamina il decoder base64 generato intorno all’espressione /=+$/. Conferma che l’output generato venga eseguito correttamente dopo aver risolto il problema dell’espressione regolare, usando l’esempio fornito come verifica del completamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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'));
}
- Lingua principale
- JavaScript
- Stelle
- 103
- Fork
- 37
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di javascript-obfuscator/gulp-javascript-obfuscator
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
javascript-obfuscator/gulp-javascript-obfuscator#34 · 1 commento ·
-
License for RepoAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 45/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
javascript-obfuscator/gulp-javascript-obfuscator#28 · 5 commenti · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
javascript-obfuscator/gulp-javascript-obfuscator#26 · 2 commenti ·
Tutte le issue di javascript-obfuscator/gulp-javascript-obfuscator
Issue simili
-
good first issue
Difficoltà 2/5 3-5 giorni Idoneità per principianti 62/100
paipai1999/POS-system#3 ·
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
r-afael/better-yt-recommendations#36 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
microsoft/playwright#43875 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
cli good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Run the dependency drift checkForse già presa @spaceninja l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
cloudfour/stylelint-config-cloudfour#683 ·
I maintainer di solito rispondono entro 1 giorno