Expérience 10 Gauche et droite Python Polices anti - escalade,Nous sommes entrés dans un nouveau thème,Principe et pratique du cryptage confusionnel commun.
Ce blog vient de eval
Début de la confusion,Démontage couche par couche pour tout le monde JS Confusion des connaissances pertinentes dans l'inversion.
eval La fonction peut JS La chaîne se résout à l'exécution du code source
Sélectionnez au hasard dans le moteur de recherche pour le chiffrement JS Page du Code,Puis Cryptez ce qui suit.
Avant le cryptage
var name = "Gomme";
Après cryptage
eval(
(function (p, a, c, k, e, d) {
e = function (c) {
return (
(c < a ? "" : e(parseInt(c / a))) +
((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
);
};
if (!"".replace(/^/, String)) {
while (c--) d[e(c)] = k[c] || e(c);
k = [
function (e) {
return d[e];
},
];
e = function () {
return "\\w+";
};
c = 1;
}
while (c--)
if (k[c]) p = p.replace(new RegExp("\\b" + e(c) + "\\b", "g"), k[c]);
return p;
})('1 0 = "Gomme"', 62, 2, "name|var".split("|"), 0, {
})
);
Vous pouvez voir que le Code chiffré devient plus complexe , Et la lisibilité devient faible .
In JS Moyenne,eval
La fonction elle - même est une JS Actionneur de code, Il peut passer la chaîne dans JS La syntaxe est analysée et exécutée .
Décrypter eval La méthode de la fonction est simple , Recherche directe d'outils .
Le scénario le plus courant de ce code formel est le Code statistique de Baidu , Vous pouvez trouver des cas spécifiques .
Le site que nous allons capturer cette fois est TV CAT ,L'adresse de destination est:https://www.tvmao.com/program/BTV1
.
Après avoir cliqué plus sur cette page , Les données de la liste des programmes sont chargées , Les interfaces et paramètres obtenus sont les suivants: .
En savoir plus , Nous pouvons saisir l'emplacement de la demande de données .
Avec le point d'arrêt ,Nous entrons dans JS Le lien inverse , Le premier Code qui en résulte est le suivant: .
$(".more-epg").click(function () {
var b = "src";
var a = A.d("a", b);
ajaxVerify(
"/api/pg",
"GET",
{
p: a,
},
function (c, d) {
$("#noon").after(d[1]);
$(".more-epg").remove();
}
);
});
Ce qui est au cœur du Code A.d("a", b)
,Dont fonction d()
Peut - être un chiffrement. .
C'est l'essentiel. , Nous n'avons pas trouvé la fonction de chiffrement JS Documentation,Le JS Le fragment de code est temporaire , Ou anonyme. .
Mais les mots clés _keyStr
Peut être récupéré directement ,Recherche globale,Obtenir ce qui suit.
On y va. base.js
Grimpe. ,Trouver ce qui suit,Découverte eval Fonctions, Le point de confusion est apparu .
Tous les eval
Code du paquet de fonctions ,Peut être utilisé console.log
Pour imprimer.
Vous pouvez voir les différences de code avant et après la confusion , Après analyse, c'est notre fonction objective. .
Vous pouvez également rechercher des outils anti - confusion ,Requête directe, Anti - confusion quand , Attention au transport eval()
Fonctions, Le contenu peut être testé plusieurs fois par lui - même .
Quand nous obtenons la fonction primitive , La logique de chiffrement a été résolue. .
Enfin, un point supplémentaire
Quand vous découvrirez【Anonyme】Fonction, C'est à peu près ce que JS Est une chaîne chiffrée .
Tu lis 【L'Effaceur de rêve】 Blog de
Terminé la lecture, Un petit coup de main.
Erreur trouvée, Dans la section commentaires directs.
Le numéro de l'effaceur 683 Blogs originaux