Table des matières
Pourquoi explorer les données de Mobike
Où obtenir les données
Je suis trop content trop tôt
Revirement
Autres tentatives
Parlez également de la conception de l'API
Maison développement back-end Tutoriel Python Analyse du robot d'exploration Mobike - trouver l'API

Analyse du robot d'exploration Mobike - trouver l'API

Apr 04, 2017 am 10:37 AM
api Mobike

Avertissement : cet article est uniquement destiné à des fins de référence d'apprentissage et de recherche, veuillez ne pas l'utiliser à des fins illégales.

Dans l'article précédent "Analyse non officielle du Big Data de Mobike", j'ai mentionné mon analyse des données de Mobike pendant la Fête du Printemps. J'y reviendrai plus en détail dans la série d'articles suivante. Comment mon robot explore-t-il. ces données de manière efficace ?

Pourquoi explorer les données de Mobike

Mobike est le premier vélo partagé à entrer à Chengdu Chaque jour, lorsque je descends de la station de métro, je peux voir de nombreux vélos dans l'APP, mais quand j'y marche. Quand je suis arrivé, j'ai réalisé que la voiture n'était pas là. Certaines voitures sont cachées quelque part ; certaines voitures peuvent se trouver derrière des immeubles de grande hauteur et ne peuvent être trouvées en raison d'erreurs GPS ; certaines voitures sont placées dans des zones résidentielles, séparées par un mur afin que les cyclistes ne puissent pas y accéder.

Alors existe-t-il un moyen d'obtenir les données de ces vélos pour analyser si ces vélos sont devenus des vélos zombies ? Quelqu'un l'a-t-il délibérément mis dans la communauté afin que personne ne puisse y accéder ?

Avec ces questions, j'ai commencé à étudier comment obtenir ces données.

Où obtenir les données

Si vous pouvez voir les données, nous avons toujours un moyen d'obtenir automatiquement les données. C'est juste que la méthode d'obtention des données détermine l'efficacité de l'obtention des données. Pour la tâche d'analyse des données de Mobike, le robot doit être capable d'obtenir plus de données en peu de temps (généralement environ 10 minutes pour que l'analyse des données soit utile). Alors d’où viennent les données ?

La source la plus directe est l'application Mobike. La conception logicielle moderne prête attention à la séparation du front-end et du back-end, et le serveur servira simultanément l'application, les pages Web, etc. Dans le cadre de cette tendance, il suffit de comprendre la requête HTTP du logiciel. De manière générale, les outils suivants peuvent aider :

Capture directe de paquets :

Utilisez un proxy pour capturer les paquets de requêtes HTTP et déboguer :

  • Fiddler 4

  • Charles

  • Capture de paquets (Android)

Comme mon téléphone n'est pas rooté, il y a trop d'interférences dans la capture de paquets sur le routeur, et il n'est pas facile d'utiliser https. Vous ne pouvez donc essayer d'utiliser Fiddler ou Charles qu'en premier. Raccrochez le proxy de Fiddler, puis continuez à déplacer l'emplacement sur le téléphone mobile pour voir s'il y a de nouvelles demandes. Mais malheureusement, il semble que les demandes concernent toutes la carte Amap , et il n'y a aucune donnée liée à Mobike.

Que se passe-t-il ? Essayez la version mobile. Après être passé à Packet Capture, il y avait effectivement du trafic, et j'ai trouvé celui qui me préoccupait le plus dans la requête :

Analyse du robot d'exploration Mobike - trouver l'API

4372317-de272f8395d2106f.png

Cette requête API est évidente au premier coup d'œil. Après l'avoir essayée dans Postman, elle peut renvoyer les informations correctes.

Je suis trop content trop tôt

J'ai grimpé les données plusieurs jours de suite et analysé les données, j'ai trouvé que le GPS de Mobike semble battre tout le temps, et. parfois, les coups dépassent une distance de plusieurs kilomètres, ce qui n'est évidemment pas une valeur normale.

Se pourrait-il que leur interface ait été manipulée pour renvoyer de fausses données ? J'ai observé que même dans l'APP, les données renvoyées par le vélo sautaient. Du petit matin au lendemain matin, je rafraîchissais régulièrement les voitures à proximité de chez moi pour voir si c'était vraiment le cas.

Image Je ne la trouve pas, mais après observation, je suis arrivé à la conclusion qu'il y a effectivement un problème avec l'emplacement renvoyé dans l'APP. Il y avait une voiture placée dans un endroit très éloigné. Elle a disparu pendant un moment, puis est revenue plus tard, et elle correspondait aux données que j'ai capturées. De plus, ce rebond n'a rien à voir avec les téléphones portables, les numéros de téléphone portable, ni même les opérateurs mobiles, ce qui montre que ce rebond est un problème avec l'interface de Mobike. Cela peut aussi expliquer sous un autre aspect pourquoi on voit parfois des voitures alors qu'il n'y en a en réalité pas. des voitures là-bas.

Voici une capture d'écran d'une vidéo que j'ai postée quelques instants auparavant. Vous pouvez voir qu'il y a un point pointu près de l'entrée du camp. La voiture est en fait arrêtée là, mais le GPS. la piste le montre pendant une courte période. Le corps intérieur se déplace à proximité, s'éloigne même, puis revient à cette position.

Analyse du robot d'exploration Mobike - trouver l'API


De telles données sont tout simplement inutilisables pour l'analyse des données, et j'ai presque abandonné.

Revirement

Avec la popularité du mini programme WeChat, Mobike a également lancé le mini programme immédiatement. J'ai ri quand je l'ai vu, oui, cela m'a donné une autre source de données à essayer. Après avoir capturé les données une fois avec Packet Capture, il est facile de déterminer l'API. Le processus spécifique ne sera pas expliqué ici. Après avoir exploré, j'ai exploré deux ou trois jours de données et j'ai constaté qu'il y avait un revirement et que les données étaient cohérentes avec les trajectoires normales du vélo.

Il ne reste plus qu'à améliorer l'efficacité du robot.

Autres tentatives

Parfois, il est très pratique d'analyser directement le code source de l'application pour trouver l'entrée de l'API. J'ai décompilé l'application Android de Mobike, mais j'ai constaté qu'à l'exception de certains fichiers de ressources, elle est utilisée. était utile, d'autres fichiers sont compressés à l'aide de l'obfuscateur de Qihoo 360. Il existe des articles sur Internet qui analysent comment effectuer des bombardements, mais je n'ai pas beaucoup de temps pour l'étudier, alors oubliez ça.

Parlez également de la conception de l'API

La raison pour laquelle l'API de Mobike est facile à explorer et à analyser est en grande partie parce que la conception de l'API est trop simple :

  • Utilise uniquement des requêtes http, ce qui facilite l'analyse de capture de paquets

  • Aucune de ces API ne crypte la requête, ce qui facilite l'utilisation de leurs services.

  • De plus, les mini-programmes WeChat sont également une source importante de fuites d'API. Après tout, les requêtes dans les applications peuvent être cryptées via du code natif puis envoyées, mais il semble que ce soit le cas. n'existe pas de telle chose dans les mini-programmes.

Si vous êtes intéressé, vous pouvez essayer de jeter un œil à la demande de Xiaolan Bicycle APP. Ils utilisent la requête https et cryptent la demande de données. Il est difficile de capturer leurs données. Cela augmentera beaucoup.

Bien sûr, si les responsables de Mobike ne se soucient pas des données, une telle conception d'API serait acceptable.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide de développement de recherche PHP et Manticore : créez rapidement une API de recherche Guide de développement de recherche PHP et Manticore : créez rapidement une API de recherche Aug 07, 2023 pm 06:05 PM

Guide de développement PHP et ManticoreSearch : Créer rapidement une API de recherche La recherche est l'une des fonctionnalités indispensables des applications Web modernes. Qu'il s'agisse d'un site Web de commerce électronique, d'une plateforme de médias sociaux ou d'un portail d'actualités, il doit fournir une fonction de recherche efficace et précise pour aider les utilisateurs à trouver le contenu qui les intéresse. En tant que moteur de recherche en texte intégral doté d'excellentes performances, ManticoreSearch nous fournit un outil puissant pour créer d'excellentes API de recherche. Cet article vous montrera comment

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Sep 05, 2023 am 08:41 AM

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? 1. Introduction Dans les projets PHP, nous devons souvent explorer les données d'autres sites Web et traiter ces données. De nombreux sites Web fournissent des interfaces API et nous pouvons obtenir des données en appelant ces interfaces. Cet article explique comment utiliser PHP pour appeler l'interface API afin d'explorer et de traiter les données. 2. Obtenez l'URL et les paramètres de l'interface API Avant de commencer, nous devons obtenir l'URL de l'interface API cible et les paramètres requis.

Comment gérer les problèmes d'erreur de l'API Laravel Comment gérer les problèmes d'erreur de l'API Laravel Mar 06, 2024 pm 05:18 PM

Titre : Comment gérer les problèmes d'erreur de l'API Laravel, des exemples de code spécifiques sont nécessaires lors du développement de Laravel, des erreurs d'API sont souvent rencontrées. Ces erreurs peuvent provenir de diverses raisons telles que des erreurs logiques du code du programme, des problèmes de requête de base de données ou des échecs de requête d'API externe. La façon de gérer ces rapports d'erreurs est un problème clé. Cet article utilisera des exemples de code spécifiques pour démontrer comment gérer efficacement les rapports d'erreurs de l'API Laravel. 1. Gestion des erreurs dans Laravel

Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Sep 26, 2023 am 10:19 AM

Guide d'appel ReactAPI : Comment interagir avec et transférer des données vers l'API backend Présentation : Dans le développement Web moderne, interagir avec et transférer des données vers l'API backend est une exigence courante. React, en tant que framework frontal populaire, fournit des outils et fonctionnalités puissants pour simplifier ce processus. Cet article explique comment utiliser React pour appeler l'API backend, y compris les requêtes de base GET et POST, et fournit des exemples de code spécifiques. Installez les dépendances requises : Tout d'abord, assurez-vous qu'Axi est installé dans le projet

Enregistrez les données de l'API au format CSV à l'aide de Python Enregistrez les données de l'API au format CSV à l'aide de Python Aug 31, 2023 pm 09:09 PM

Dans le monde des applications et de l'analyse basées sur les données, les API (Application Programming Interfaces) jouent un rôle essentiel dans la récupération de données provenant de diverses sources. Lorsque vous travaillez avec des données API, vous devez souvent stocker les données dans un format facile d'accès et de manipulation. L'un de ces formats est le CSV (Comma Separated Values), qui permet d'organiser et de stocker efficacement les données tabulaires. Cet article explorera le processus de sauvegarde des données API au format CSV à l'aide du puissant langage de programmation Python. En suivant les étapes décrites dans ce guide, nous apprendrons comment récupérer des données de l'API, extraire des informations pertinentes et les stocker dans un fichier CSV pour une analyse et un traitement plus approfondis. Plongeons dans le monde du traitement de données API avec Python et libérons le potentiel du format CSV

Comment développer une API CRUD simple à l'aide de MongoDB Comment développer une API CRUD simple à l'aide de MongoDB Sep 19, 2023 pm 12:32 PM

Comment utiliser MongoDB pour développer une API CRUD simple Dans le développement d'applications Web modernes, les opérations CRUD (Créer, Supprimer, Modifier, Vérifier) ​​sont l'une des fonctions les plus courantes et les plus importantes. Dans cet article, nous présenterons comment développer une API CRUD simple à l'aide de la base de données MongoDB et fournirons des exemples de code spécifiques. MongoDB est une base de données NoSQL open source qui stocke les données sous forme de documents. Contrairement aux bases de données relationnelles traditionnelles, MongoDB n'a pas de schéma prédéfini

Guide d'utilisation de l'API Oracle : exploration de la technologie d'interface de données Guide d'utilisation de l'API Oracle : exploration de la technologie d'interface de données Mar 07, 2024 am 11:12 AM

Oracle est un fournisseur de systèmes de gestion de bases de données de renommée mondiale et son API (Application Programming Interface) est un outil puissant qui aide les développeurs à interagir et à s'intégrer facilement aux bases de données Oracle. Dans cet article, nous approfondirons le guide d'utilisation de l'API Oracle, montrerons aux lecteurs comment utiliser la technologie d'interface de données pendant le processus de développement et fournirons des exemples de code spécifiques. 1.Oracle

Analyse de la stratégie d'intégration des API Oracle : parvenir à une communication transparente entre les systèmes Analyse de la stratégie d'intégration des API Oracle : parvenir à une communication transparente entre les systèmes Mar 07, 2024 pm 10:09 PM

Analyse de la stratégie d'intégration de l'API Oracle : pour parvenir à une communication transparente entre les systèmes, des exemples de code spécifiques sont nécessaires. À l'ère numérique d'aujourd'hui, les systèmes internes de l'entreprise doivent communiquer entre eux et partager des données, et l'API Oracle est l'un des outils importants pour contribuer à une communication transparente. communication entre les systèmes. Cet article commencera par les concepts et principes de base d'OracleAPI, explorera les stratégies d'intégration d'API et enfin donnera des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer OracleAPI. 1. API Oracle de base

See all articles