程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python crawler eval confusion, crawler Advanced Real Game Series

編輯:Python

Catalogue des articles

    • ️ Connaissance préalable
    • ️ Chat TV Scénario opérationnel
    • ️ Code de combat réel

️ Connaissance préalable

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: .

  • Adresse Web demandée: https://www.tvmao.com/api/pg?p=Chaîne de chiffrement
  • Formulaire de demande:GET

En savoir plus , Nous pouvons saisir l'emplacement de la demande de données .

️ Chat TV Scénario opérationnel

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 .

️ Code de combat réel

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


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved