Super Soco – Reverse Engineering App et Firmware

Accueil Forums Forum général Questions générales Super Soco – Reverse Engineering App et Firmware

Ce sujet a 11 réponses, 2 participants et a été mis à jour par  zmo, il y a 3 semaines.

12 sujets de 1 à 12 (sur un total de 12)
  • Auteur
    Messages
  • #18036

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    Note de la modération : @guyzmo avait publié ce post dans le topic réservé à l’application Super Soco. Il est parvenu à décompiler partiellement (en java) l’application Android. Cette iniative mérite son propre topic. Les discussions concernant son travail (et le vôtre si vous souhaitez vous joindre à lui) doivent se faire dans ce topic, celles concernant l’application telle que fournie par Super Soco dans le topic original

    Hello 👋

    j’ai pris un peu de temps ce week end pour faire un truc que je voulais faire depuis longtemps: regarder un peu ce qu’il se passe dans l’application supersoco. Comme je n’ai pas accès à un iphone rooté, j’ai utilisé l’application android pour ce faire.

    On trouvera les détails que j’ai trouvé ici, que je mettrai à jour avec mes découvertes :

    Premières découvertes :

    • les communications des informations entre l’app et le serveur de supersoco sont faites en clair (i.e. pas de chiffrement)
    • il y a des typos de tous les côtés (e.g deivceNo) dans le code et les requêtes
    • il y a bien mention du bluetooth, mais les conditions d’activation ne sont pas encore claires

    il y a d’autres mystères sur l’API, comme une histoire d’activation de simcard, et une grosse partie du code source est destinée à la gestion de la caméra wifi pour les Cu-x.

    Info utiles :

    • L’application transmert des informations personnelles en clair sur les réseaux, donc NE JAMAIS UTILISER L’APP SUR UN RÉSEAU WIFI PUBLIC. Une personne mal intentionnée pourrait voler la clef de session, et non-seulement suivre ce que vous faites, mais voler votre compte.
    • Ce sujet a été modifié le il y a 3 semaines et 1 jour par  GrumpyRider.
    • Ce sujet a été modifié le il y a 3 semaines et 1 jour par  GrumpyRider. Raison: Nv topic. On applaudit l'artiste
    • Ce sujet a été modifié le il y a 3 semaines et 1 jour par  zmo.
    • Ce sujet a été modifié le il y a 3 semaines et 1 jour par  zmo.
    • Ce sujet a été modifié le il y a 3 semaines et 1 jour par  zmo.
    • Ce sujet a été modifié le il y a 3 semaines par  zmo.
    • Ce sujet a été modifié le il y a 3 semaines par  zmo.
    #18039

    GrumpyRider
    Admin bbPress
    • Sujets : 77
    • Messages : 2 309
    @grumpyrider

    @guyzmo : un très, très grand bravo à toi pour cette initiative.

    #18044

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    En ce qui concerne la simcard, il y a des points d’API d’activation. J’ai fait quelques tests sur l’API et il faut donner l’ICCID pour valider la requête.

    J’ai aussi trouvé où est implémenté les requêtes simcard dans le code, qui n’ont pas été converties par le décompileur java: cf ici

    • Cette réponse a été modifiée le il y a 3 semaines par  zmo.
    #18045

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    ok, alors, la blague, c’est que je viens de faire une recherche et je viens de tomber sur :

    https://github.com/mahuatang/iot/tree/d8e737ab627184c4fefe1456b5d77be822e2e399/svnsoco/web/soco_app/src/main/java/com/soco/car

    il semble que ce soit une version du code source de la partie serveur qui ai leaké. Créé le 28/7/2018, et dont la version consultable date d’il y a 4 mois.

    #18047

    GrumpyRider
    Admin bbPress
    • Sujets : 77
    • Messages : 2 309
    @grumpyrider

    ok, alors, la blague…

    Je compatis, ça m’arrive régulièrement ce genre de mésaventure.
    J’imagine que tu peux croiser ce travail et le tiens pour avancer, non ?

    #18048

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    @grumpyrider, c’est comme ça que j’ai découvert comment fonctionne l’authentification ☺

    J’espère que bientôt je vais pouvoir écrire un script qui se fait passer pour l’app. (c’est surtout une question de temps à y consacrer ☺)

    #18050

    GrumpyRider
    Admin bbPress
    • Sujets : 77
    • Messages : 2 309
    @grumpyrider

    J’espère que bientôt je vais pouvoir écrire un script qui se fait passer pour l’app. (c’est surtout une question de temps à y consacrer )

    Ce serait tout simplement énorme, mais, qui se fait passer ou, comme tu l’écris dans ton GitHub, qui fonctionne comme ? C’est à dire, qui pourrait remplacer l’officielle ? (ça me parait beaucoup (trop) de boulot)

    #18052

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    Qui fonctionne comme, et par extension, se fait passer pour (auprès du serveur supersoco).

    Par contre, je vais bien évidemment prendre le chemin le plus simple pour moi, donc ce sera probablement une application en ligne de commande. Une fois que les fonctionnalités seront implémentées, on pourra envisager d’écrire une interface graphique.

    Donc clairement, c’est pas demain qu’on va avoir une app pour les téléphones qui va remplacer l’app officielle 😁

    #18054

    GrumpyRider
    Admin bbPress
    • Sujets : 77
    • Messages : 2 309
    @grumpyrider

    @guyzmo : cela ouvre un champ de possibilité incroyable si on y réfléchit bien. Une fois l’appli en ligne de commande effectuée, ce que j’imagine être le plus gros du travail, l’interface graphique (là je peux aider pour le design si on a besoin de moi), rien n’interdira d’inclure des fonctions qui n’existent pas dans la version officielle.
    Tu as besoin de quoi ?

    #18055

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    @grumpyrider : principalement de temps 😁 et aussi de l’IPA (le package applicatif pour iOS, qu’on ne peut récupérer qu’avec un iphone qui a été jailbreak), car je pourrais avoir d’autres infos utiles en le décompilant.

    Pour le reste, une fois que l’app en ligne de commande est écrite, en mode vite fait, on pourra voir à faire une version graphique. Je vais faire le premier proto en python (plus rapide à coder), puis si j’ai de bons résultats, on passera en JS pour faire facilement une interface portable sur toutes les plateformes.

    #18056

    GrumpyRider
    Admin bbPress
    • Sujets : 77
    • Messages : 2 309
    @grumpyrider
    #18059

    zmo
    Participant
    • Sujets : 3
    • Messages : 102
    @guyzmo

    J’ai ajouté une première analyse du firmware (TC/TS/CUX), mais pas de chance, j’ai juste un gros blob d’assembleur imbitable… sans aucune béquille pour s’y retrouver (une chaîne de caractère, des symboles intégrés, des fonctions compréhensibles…), des lignes invalides et des plages entières chargées en mémoire comme chaîne de caractères, mais dont le contenu n’a pas de sens… Alors que pourtant le fichier fait exactement 65535 octets.

    J’ai essayé de voir s’il n’y avait pas une forme de chiffrement (vigénère/xor ou rotation simple), mais j’ai pas trouvé de clef, et le niveau d’entropie est trop élevé pour confirmer cette hypothèse.

    Bref, ça me fait pas mal bugger… 🥴

    (N.B.: @grumpyrider, j’ai étendu le titre de cette section au firmware, étant donné que je mets toutes mes trouvailles de RE firmware et app mobile sur le même site, et que donc ça a du sens de discuter des deux par ici)

    • Cette réponse a été modifiée le il y a 3 semaines par  zmo.
    • Cette réponse a été modifiée le il y a 3 semaines par  zmo.
12 sujets de 1 à 12 (sur un total de 12)

Vous devez être connecté pour répondre à ce sujet.