Python crawler haut de gamme: microstore confus anti - décryptage

Cinq paquets de spaghettis! 2021-10-29 03:51:23
python crawler haut gamme microstore

Bonjour tout le monde,Je suis hottie..

C'est le 30ème chapitre de ma série de reptiles,Le chemin des reptiles est sans fin..

Cible d'acquisition

Site Web:

aHR0cHM6Ly93d3cud2VpZGlhbi5jb20vP3NvdXJjZT1ndWFud2FuZw==

image.png

Préparation des outils

Outils de développement:pycharm Environnement de développement:python3.7, Windows10 Utilisation du kit:requests, node.js,buff

Idées d'analyse de projet

Vous devez d'abord trouver l'interface de connexion de la page de connexion de la page web Page de connexion:aHR0cHM6Ly9kLndlaWRpYW4uY29tL3dlaWRpYW4tcGMvbG9naW4vP3NwaWRlcl90b2tlbj04MDRjIy8=

image.png

Après avoir obtenu l'interface de connexion,L'interface nécessite l'utilisation de l'outil de capture de paquets pour obtenir l'interface de demande de connexion,Saisissez d'abord le mauvais mot de passe de compte pour déclencher l'interface de connexion

image.png

postLa plupart des demandes signifient que nous devons passer les paramètres,Voir les informations sur les paramètres à passer,La page actuelle est un peu bizarre,Le mot de passe du compte n'est pas chiffré,Le cryptage estuaChamp,Alors, on va s'en occuper aujourd'hui.uaChamp

image.png

image.png

Aujourd'hui, nous utilisons toujours la méthode de recherche pour trouver des champs,MaisuaMots - clés pensez - y et sachez que la fréquence d'apparition sera élevée,Un petit conseil pour une recherche aujourd'hui,En généraluaSera un mot clé,On pourrait faire des recherches plus précises, comme‘ua:’、‘ua=’,Cette recherche sera plus précise que la recherche directe de mots clés,

image.png

image.png

Les fichiers restants devront être filtrés lentement pour être exclus,Vous pouvez déboguer les points d'arrêt lorsque vous trouvez des champs similaires à nous,Voyez si l'interface de requête dont nous avons besoin a été déclenchée, Finalement, nous avons mis le code dansindex.jsDocumentation

image.png

uaLes champs sont créés parencodeURIComponentChargé,encodeURIComponentC'est une chaîneurlCodé,Cette méthode ne fonctionnera pas ASCII Les lettres et les chiffres sont codés,Et pas à ces ASCII La ponctuation est codée: - _ . ! ~ * ' ( ) Les données codées sonti,TrouveriEmplacement de la génération pour, iC'est parwindow.getUaChargé,Un frisson de joie,Je pense aussi que le cryptage de cette page Web n'est pas très strict,Quand je l'ai ouvert, j'ai découvert que c'était plus petit,Frappez le point d'arrêt et nous entronswindow.getUaCette fonction,Regarde - moi, Chrysanthème serré.

image.png

Le monde direct s'effondre

image.png

Le Code est crypté par confusion,Ici aussi, hottie veut aussiAppel à un outil de lutte contre la confusion(Et j'espère que vous n'êtes pas avares).

Allons - y doucement et essayons _0x7dfc34Peut être vu très directement est d'obtenir l'horodatage,ifIl n'y a pas d'entrée pour le moment,L'appel de fonction ci - dessous peut être ignoré

image.png

Début de l'analyse0x261229,0x261229Oui, c'est vrai.3La première partie de l'épissage doit être résolue en premier0x1722c3(0x2e98dd), 0x2e98ddVous pouvez voir que les données sont un tableau,Je changejsonViens voir.,D'abord, il y a une certaine conception des données, Regarde.0x1722c3Fonction de

image.png

   var _0x1722c3 = function(_0x1da193) {
      var _0x3dca2f = new _0x4d6308();
      if (_0x1da193[_0x4651('0x43a')]) {
          var _0x180af0 = _0x3dca2f[_0x4651('0x43b')](_0x2e98dd);
          var _0x286380 = _0x3b911e(_0x180af0);
          return _0x286380;
      } else {
          var _0x180af0 = _0x3dca2f[_0x4651('0x43c')](_0x1da193);
          var _0x286380 = _0x3b911e(_0x180af0);
          return _0x286380;
      }
  };

La fonction appelée juge un peu trop de données,Hot bar ou choisissez de compléter directement l'environnement Mettez d'abord la logique du Code principal

var _0x1722c3 = function(_0x1da193) {
  var _0x3dca2f = new _0x4d6308();
  if (_0x1da193[_0x4651('0x43a')]) {
      var _0x180af0 = _0x3dca2f[_0x4651('0x43b')](_0x2e98dd);
      var _0x286380 = _0x3b911e(_0x180af0);
      return _0x286380;
  } else {
      var _0x180af0 = _0x3dca2f[_0x4651('0x43c')](_0x1da193);
      var _0x286380 = _0x3b911e(_0x180af0);
      return _0x286380;
  }
};
​
​
window[_0x4651('0x710')] = function() {
  var _0x7dfc34 = new Date().getTime();
  // if (_0x4a9622) {
  //     _0x2644f4();
  // }
  // _0x55b608();
  var _0x261229 = _0x1722c3(_0x2e98dd) + '|' + _0x1722c3(_0x420004) + '|' + _0x7dfc34[_0x4651('0x8c')](0x10);
  _0x261229 = btoa(_0x570bef[_0x4651('0x90')](_0x261229, {
      'to': _0x4651('0x97')
  }));
  return _0x261229;
};

Essayez de courir pour voir ce qui manque,Ce qui manque, c'est ce qui manque,Apportez les données de la console.

image.png

La vitesse de remplissage lente est un peu lente,Prenez tout le dossier directement,Code confus, c'est un peu un mal de tête,Exécuter toutjsDonnez - nous une erreur dans le dossier.

image.png

Ceci utilise unjsCode terminé.,D'autres scripts s'adaptent également,En plus, il n'y a pas de problème.

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;

Je n'ajouterai pas ça,Aller directement au code source pour trouver

image.png

Deux noms de domaine et protocoles de réseautage pour les sites Web locaux sont directement modifiés

image.png

image.png

Pas d'erreur.,Essayez d'appeler notre code logique principal

image.png

Lorsque nous appelons la fonction principale, nous signalons un message d'erreurbtoaLa question de,C'est...base64Méthode de chiffrement pour,Il y a des problèmes avec les appels directs,Nous pouvons choisir d'utiliserbuffMode de chiffrement,Remplacer le code original par,En essayant d'exécuter

image.png

var _0x261229 = new Buffer.from(_0x570bef[_0x4651('0x90')](_0x261229, {
          'to': _0x4651('0x97')
      }));

image.png

Un grand succès,jsDonne à un grand homme le droit d'essayer par lui - même après

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
#Le Code est trop long,A gravement affecté la lecture,J'ai tout effacé,Si nécessaire, suivez mes instructions ci - dessus pour obtenir ou ne pas obtenir en privé
 

Le travail de suivi sera simple,Il suffit de convertir les données,Envoyer la demande à l'adresse Web avec l'en - tête de la demande,Paramètres à passer sur la bande.C'est facile derrière .

image.png

                           

 DépannageRechercher ci - dessous 

版权声明
本文为[Cinq paquets de spaghettis!]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/10/20211028191003202b.html

  1. OpenCV - Python Real play (14) - face detection details (six lignes de code seulement pour apprendre 4 méthodes de détection de visage)
  2. 你好,python开发mes系统,能分享下吗,我最近也想搞这方面的
  3. 你好,python開發mes系統,能分享下嗎,我最近也想搞這方面的
  4. Bonjour, Python a développé mon système, pouvez - vous le partager?
  5. Introduction to tuples in Python
  6. Introduction to strings in python (Part 2)
  7. Introduction to strings in python (Part 1)
  8. python关于 if 的简单操作时,输出结果不是预期所要的结果 的问题
  9. python關於 if 的簡單操作時,輸出結果不是預期所要的結果 的問題
  10. Lorsque Python fonctionne simplement sur if, la sortie n'est pas le résultat attendu
  11. Python中字典问题请求解惑
  12. Python中字典問題請求解惑
  13. Demande de résolution de problèmes de dictionnaire en python
  14. Python中字典问题请求解惑
  15. Python technique 2: advanced usage of function parameters
  16. Demande de résolution de problèmes de dictionnaire en python
  17. Preliminary Knowledge - Python Core use Common Data Analysis Library (ⅱ)
  18. 关于python的代码问题,终端打印为什么会起飞
  19. En ce qui concerne les problèmes de code Python, pourquoi l'impression du terminal décolle - t - elle?
  20. Python中种子seed的运用问题
  21. L'application de Seed en python
  22. Python functional programming series 008: Testability
  23. [must see for getting started with Python] the difference and connection between cookie and session in Python!
  24. Python Xiaobai from scratch pyqt5 project actual combat (4) basic controls
  25. Python Xiaobai starts the pyqt5 project from scratch (3) connection between signal and slot
  26. Echarts ne peut pas afficher le HTML en PDF en utilisant le pdfkit de Python
  27. 一只Python 小white 的日常提问(づ ●─● )づ
  28. 2021 tutoriel complet d'automatisation des tests d'interface python [matériel d'apprentissage joint]
  29. Décrivez ce que les connaissances pertinentes jouent dans votre travail en utilisant arduino ou Python, y compris les bibliothèques pertinentes, en conjonction avec votre travail quotidien.
  30. Une question quotidienne d'un petit morceau de Python (づ● - ●)
  31. Python中字典问题请求解惑
  32. 一只Python 小white 的日常提問(づ ●─● )づ
  33. 在python中的问题,请问如何解决
  34. Only 10 questions are needed to easily master Matplotlib graphics processing | Python skill tree
  35. 在python中的問題,請問如何解决
  36. Comment résoudre le problème en python
  37. Demande de résolution de problèmes de dictionnaire en python
  38. 使用python,在一个命名为.txt文本文档写入n m乘法表。
  39. En utilisant Python, écrivez une table de multiplication n m dans un document texte nommé.txt.
  40. 使用python,在一個命名為.txt文本文檔寫入n m乘法錶。
  41. Python,前缀后缀相同时合并
  42. 关于#python#的问题:python
  43. 關於#python#的問題:python
  44. Python,前綴後綴相同時合並
  45. Questions sur # # Python #: Python
  46. Python, préfixe et suffixe combinés en même temps
  47. python manage.py shell无法运行,
  48. python manage.py shell無法運行,
  49. Le shell Python manage.py ne fonctionne pas,
  50. python中使用vscode Import 'matplotlib.pyplot' could not be resolved from source 问题
  51. [Chapter 11 of the full version] Python advanced crawler practice - system master Po anti climbing skills challenge high salary
  52. L'utilisation de vscode Import 'matplotlib.pyplot' en python ne peut pas être résolue à partir du problème source
  53. Python fusionne les deux listes et supprime les éléments dupliqués lors de la fusion
  54. [JS Reverse AES Reverse Encryption] python crawler combat, les jours sont de plus en plus décisifs
  55. 30 jeux Python. Je peux jouer à la pêche au travail pendant une journée.
  56. J'a i collecté un nouveau hit de liste en python, donc c'est un secret que quelqu'un d'autre peut devenir un magnat des médias!
  57. J'a i utilisé Python pour ramper à travers 5000 belles photos de papier peint, un jour oublié Premier amour!
  58. [Python planting system] the best green plant for your girlfriend. Girls love it when they see it! Attachment: should be able to feed - right??!
  59. [Python love guide] two small programs for sweetness burst table are released! Afraid you can't find someone?
  60. J'ai utilisé Python pour me connecter à la plus grande plate - forme de jeu au monde, et à quel point le cryptage steam est intelligent [code source inclus]