2016-11-30 6 views
0

Y at-il un moyen d'empêcher de désobstruer le code JavaScript qui a déjà été obscurci.Comment éviter de désamorcer le code JavaScript

Obfuscated JS:

var _0xb5ae = [ "\ x73 \ x68 \ x6F \ x77", "\ x2e \ x6C \ x6F \ x61 \ x64 \ x65 \ x72", "\ x6D \ x6F \ x75 \ x73 \ x65 \ x6D \ x6F \ x76 \ x65 "," \ x2E \ x62 \ x6C \ x6F \ x63 \ x6B "]; $ (_ 0xb5ae [3]) [_ 0xb5ae [2]] (fonction() {clearTimeout (e); e = setTimeout (function() {$ (_ 0xb5ae [1]) _ 0xb5ae [0]}, 1000)})

+5

Eh oui, ajoutez un commentaire '// S'il vous plaît être gentil de ne pas essayer de de-this' avant votre obfusquer code, et vous devriez être bon. – Kaiido

+2

@Kaiido Cela aussi était obscurci! –

+1

"Obfuscator convertit le code source JavaScript en une forme obfusquée et complètement illisible, l'empêchant ainsi d'analyser et de voler." J'appelle cette fausse publicité ... Certaines personnes paient pour cela !! ?? – xShirase

Répondre

2

Non, il n'y a aucun moyen d'empêcher deobfuscating, mais vous pourriez probablement le réduire agressivement avant de l'obfusciter, juste pour le rendre co mplex que possible.

Dans tous les cas, le client sera en mesure de voir la source, et avec la bonne quantité de motivation, il n'y a rien qui ne peut pas être lu et compris.

Si vous souhaitez protéger votre code, exécutez-le uniquement côté serveur. Cela dit, vous pouvez prévenir (ou au moins limiter) le vol en utilisant la licence appropriée et/ou les droits d'auteur sur votre code. Bien sûr, cela n'empêchera personne de le voler, mais vous donnera un recours légal au cas où il essaierait de gagner de l'argent en travaillant dur.

+0

bien, merci pour votre réponse! –

+1

@HiteshMisro Pas de problème. Certaines entreprises vont très loin en essayant de rendre leur JS illisible, mais c'est une entreprise sans valeur. Si la chose que vous essayez de protéger est si précieuse, quelqu'un prendra le temps de comprendre le code. Poste édité pour offrir des alternatives légales – xShirase

1

Trop facile brah!

var _0xb5ae =["\x73\x68\x6F\x77","\x2E\x6C\x6F\x61\x64\x65\x72","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x2E\x62\x6C\x6F\x63\x6B"]; 
 

 
var code = `$(_0xb5ae[3])[_0xb5ae[2]](function(){clearTimeout(e);e= setTimeout(function(){$(_0xb5ae[1])_0xb5ae[0]},1000)})` 
 

 
function deObfuscate(code, keys) { 
 
    for (let key in keys) { 
 
    code = code.replace(new RegExp(key+'\\[(\\d+)\\]', 'gim'), (_, index) => { 
 
     return `'${keys[key][index]}'` 
 
    }) 
 
    } 
 
    return code 
 
} 
 

 
console.log(
 
    deObfuscate(code, { _0xb5ae }) 
 
) 
 

 
$('.block').mousemove(function(){ 
 
    clearTimeout(e) 
 
    e = setTimeout(function(){ 
 
    $('.loader').show() 
 
    }, 1000) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>