Messages récents

Pages: 1 ... 3 4 5 6 7 [8] 9 10
71
Orange fibre Actus Orange / Offre Sosh Boost Fibre 8 Gb/s à 26,99 €/mois sans téléphonie
« Dernier message par Pinkpurple le 24 juillet 2026 à 23:23:30 »
Bonsoir

Après il faut dire aussi que le wifi de la Livebox 7 V2 Wifi 7 n'est pas terrible, faut pas trop s'attendre à des miracles avec cette box.
72
La traduction est celle intégrée au navigateur Chrome de Google.

Il y a quelques années, j'avais comparé la traduction Chrome à celle de Edge et Chrome traduisait nettement mieux que Edge (bing).

Depuis, il parait que l'IA traduit bien, mais je n'ai pas testé.
73
Morbihan (56) / Muzillac
« Dernier message par Rinchama le 24 juillet 2026 à 22:29:09 »
Bonjour,

J’ai récemment emménagé dans une maison qui n’est pas encore raccordée à la fibre optique.
Quatre interventions de raccordement ont été programmées, les 13 juin, 26 juin, 2 juillet et 24 juillet 2026, mais aucune n’a pu aboutir.
Lors des interventions, les techniciens ont constaté une impossibilité de rejoindre l’armoire de raccordement en raison d’un conduit bouché, ce qui nécessite des travaux sur le réseau.

À ce jour, malgré plusieurs semaines d’attente, aucun travaux n’ont été réalisés et mon raccordement reste bloqué.
Les opérateurs ne commercialisant désormais plus d’offres ADSL à cette adresse, je me retrouve sans aucune connexion Internet dans mon logement depuis mon emménagement.

Mon opérateur : Free

Que faire ?

Je vous remercie par avance pour votre retour.
74
Orange 5G Home Orange / [2,34Km} Retour d’expérience Flybox 5G
« Dernier message par shennia le 24 juillet 2026 à 21:04:13 »
Oui c'est bien une économie de quelques centimes.

Pour la ref de ma box:
Model: 3TG03997
P/N: 3TG03849ABAA

Les recherches de mon coté m'ont amené aux mêmes conclusions, merci
75
Extrait:

J'ai une deuxième petite règle, quand on crée un projet, quand on a une idée, quand on a envie de faire quelque chose, moi j'pense qu'il y a un défaut assez classique, c'est d'être trop. Un jour, j'ai cherché la taille idéale d'une équipe, donc, je suis allé sur Google, et j'ai cherché quelle est la taille idéale d'une équipe. La taille idéale d'une équipe c'est 8 personnes ! Chez Amazon, on estime que s'il vous  faut plus de deux pizzas pour nourrir une équipe, ça va pas marcher. Vous aller pas réussir à être efficace. Ca s'appelle la règle des deux pizzas. Et après quand vous regardez les grandes innovations et les grandes créations, bah vous apercevez que ça été systématiquement ça. Si vous prenez Apple, il y a plus de 20 ans, 25 ans, ça va pas du tout, ça innove plus, la boîte est en train de disparaître. Steve Jobs revient, il faut créer des nouveau produits, mais la boîte, elle est trop grosse, elle peut plus créer des choses, elle peut plus inventer des choses, elle est devenue trop lourde. Qu'est-ce qu'ils ont fait pour s'en sortir ? Steve jobs sur le côte de la société, il va créer une toute petite équipe et ces toutes petites équipes va réussir avec 10 personnes à créer ce que la grande entreprise avec des dizaines de milliers de personnes n'arrivaient pas à créer. Le truc que vous avez dans votre poche, l'iPhone, le smartphone.  24mn03


A ce moment là, il y avait un opposant politique qui s'appelait Arnaud Montebourg qui a dit:  "Niel a fait plus pour la France que Nicolas Sarkozy". Ok, merci! Bon, après il est devenu ministre et nos rapports sont un peu corsés mais tant qu'il était dans l'opposition , ça se passait bien. Mais il avait raison sur un truc, c'est pas les politiques  qui changent votre vie, les politiques ils sont là pour mettre des règles, fixer des règles, mais ils sont pas là pour changer la vie des Français. Les gens qui changent la vie des Français en fait, c'est vous, c'est nous, vous créez une société, vous pouvez plus changer la France avec une boîte qu'avec n'importe quel regroupement politique. C'est à vous de changer ce pays, c'est à vous de faire évoluer. Quel ministre, quelle politique peut vous dire "J'ai rendu des dizaines de milliards d'euros de pourvoir d'achat au Français ? " Ca n'existe pas!

Je me suis retrouvé interrogé au Sénat il y a quelques mois et j'me suis fait engueuler. le sénateur, c'est à dire quelqu'un qui est censé vous représenter, m'a dit "Vos prix, monsieur Niel, ils sont trop bas!" Euh, Ok! Mais désolé, mais désolé! Vous savez quoi ? On ne va pas changer, c'est dans notre ADN, on ne va pas changer. On me dit toujours " Mais tout augmente, on vient de le voir, tous les prix augmentent et vous ne touchez pas votre forfait à 2€". "Vous avez lancé un forfait à 2€ il y a 12 ans, il est toujours à 2€". Et bien ce soir en exclusivité, je vous l'annonce, nous ne changerons jamais le prix de ce forfait à 2€. Il passera pas 3€, mais il y a une seule explication, si ça devrait changer, c'est que mes concurrents auraient vraiment réussi à m' empoisonner et que je serai mort. ...41mn53



76
C'est incompréhensible (traduction par IA j'imagine) et cela ne semble concerner qu'un seul service de bornes.

Enfin, c'est juste donner du grain à moudre aux anti-VE primaires en jouant sur les peurs.
77
Les chargeurs XCharge C6 disposent d'une procédure de mise à jour de firmware non documentée, exploitable par des attaquants pour exécuter du code arbitraire sur les chargeurs XCharge à l'aide d'un simple fichier d'archive avec une validation MD5 uniquement, se faisant passer pour une mise à jour de firmware.



Lionel Richard a aussi constaté l'absence fréquente de contrôle d'accès adéquat sur les serveurs FTP gérés par les fournisseurs et les prestataires de services de recharge. Nombre d'entre eux utilisent un seul et même identifiant pour l'ensemble des bornes d'un parc. De plus, ces mêmes identifiants servent aux bornes elles-mêmes à télécharger les journaux de diagnostic, leur conférant des droits de lecture et d'écriture excessifs sur les répertoires du micrologiciel (et pouvant également altérer les données de journalisation d'autres bornes).

La chaîne d'attaque devient :



1. Compromis sur un chargeur (en se connectant sur le port de recharge physique avec root/root par exemple)
2. Extraire les identifiants FTP des fichiers de configuration ou des journaux du chargeur
3. Se connecter au serveur FTP avec des identifiants volés
4. Téléversez le firmware malveillant dans le répertoire des firmwares
5. Attendez que les autres chargeurs se mettent à jour, ou déclenchez des mises à jour via un CSMS compromis.
6. L'ensemble de la flotte compromise suite à une seule brèche initiale

Certains fournisseurs de recharge se rendent compte que les possibilités sont multiples, même avec une borne qui n'a pas root comme mot de passe SSH.

Lionel Richard recomande en conclusion : Les gestionnaires de flottes de véhicules électriques ne peuvent pas présumer que la sécurité du système dorsal protège leur parc. Le chargeur lui-même doit également valider le micrologiciel par cryptographie.


Ca a été testé le téléversement sur le serveur qui permettrait de corrompre les autres chargeurs qui téléchargeraient une version vérolée ou c'est une supposition ?

Car si des équipements que je connais mais qui ne sont pas des bornes de recharge, on peut changer le firmware du matériel via usb avec les bons accès sans pour autant téléverser le firmware sur le parc entier.
78
SFR Incidents SFR / Box8x problème de délégation DHCPv6-PD
« Dernier message par Tangocharly le 24 juillet 2026 à 19:06:03 »
Bonjour,

Il y a des personnes ici qui utilisent la délégation de prefixe DHCPv6-PD depuis un équipement branché à la box8 ou box8x SFR ? Est-ce que cela fonctionne bien pour vous ?

Je n'arrive pas à obtenir mon /56 sur mon firewall fortinet au cul de la box.
Mon forti prend bien une IPv6 dans le /64, je ping bien googleV6 depuis cette IP depuis le port WAN. La configuration pour obtenir le /56 est ok sur le forti.
Le serveur dhcpv6 et slaac sont bien activés sur la box8x, le /56 apparait bien sur l'UI.

Un debug sur le forti me remonte comme quoi le serveur DHCPv6 de la box ne lui fournit aucun préfixe délégué :

2026-07-24 18:35:34 [debug]get_ia() make an IA: PD-23
2026-07-24 18:35:34 [info]dhcp6c_update_ia() status code for PD-23: no prefixes
2026-07-24 18:35:34 [debug]dhcp6c_update_ia() IA PD-23 is invalidated
2026-07-24 18:35:34 [debug]remove_ia() remove an IA: PD-23

Les équipements ont déjà été reboot ..

Cordialement,
79
C'est une citation, je l'ai mis en bleu.

J'ai relu l'article et je ne comprends pas trop. L'article ne mentionne que les multiples risque de compromission d'une borne de recharge.

Je n'ai pas lu que cela permettrait ensuite d'infecter le véhicule. Le risque est par contre une charge incorrecte avec des tensions / intensités non appropriées qui pourraient endommager le véhicule, si ce dernier n'a pas de protections.
Tu as probablement utilisé un service de traduction automatique, tu nous diras lequel. Il a brodé, donc je pense que c'est de l'IA (toute pourrie, à fuir).
Mais ton traducteur est mauvais, tout simplement. Il a traduit "fleet" par "flotte de véhicule", ce qui n'était pas approprié.
Je te laisse corriger par "flotte de chargeurs", si tu es d'accord.

CPOs cannot assume backend security protects their fleet. The EV charger itself must also validate the firmware cryptographically.

Leon.
80
SFR Actus SFR Altice / Installation de Connect TV d'SFR sur box Android TV
« Dernier message par SuperBaobab le 24 juillet 2026 à 18:05:47 »
find_hardware_check.py
#!/usr/bin/env python3
"""
find_hardware_check.py
=======================

Détecte automatiquement, dans un decompile apktool de l'app "Connect TV"
(SFR / Group SFR - Android TV), la vérification "modèle de box supporté"
qui bloque l'application quand elle tourne sur un appareil non officiel
(Chromecast avec Google TV, Nvidia Shield, box Android générique, etc.).

Ce script est générique : il ne contient AUCUN chemin ni nom de fichier
codé en dur pour une version particulière de l'APK. Le nommage des
classes/méthodes change à chaque build (obfuscation R8/minification
différente), mais la STRUCTURE du code reste la même d'une version à
l'autre :

  - Une classe abstraite "sealed-class style" (héritage Kotlin) avec
    plusieurs sous-classes qui sont des singletons `object` Kotlin
    (compilées en `.field public static final <x>:L<Super>;` rempli une
    seule fois dans un <clinit>).
  - Au moins une de ces sous-classes lit `Landroid/os/Build;->MODEL` ou
    `Landroid/os/Build;->PRODUCT` (c'est la liste des box connues:
    Sagemcom, SDMC, etc., plus un cas "Other" pour le matériel inconnu).
  - Une méthode qui retourne un booléen (`)Z`) quelque part dans le code
    et qui compare le modèle détecté à plusieurs de ces singletons
    (plusieurs `sget-object` suivis d'un appel d'égalité `invoke-static`
    à 2 arguments retournant Z, motif classique de compilation d'un
    `when (x) { A -> ...; B -> ... }` ou d'une suite de `x == A || x == B`
    en Kotlin).

Ce script se contente de repérer les CANDIDATS. Il ne modifie aucun
fichier. Une vérification manuelle du résultat reste nécessaire avant de
patcher quoi que ce soit (voir le GUIDE.md fourni à côté de ce script).

Usage :
    python3 find_hardware_check.py /chemin/vers/decompile_apktool

Aucune dépendance externe : Python 3 standard uniquement.
"""

import re
import sys
from pathlib import Path
from collections import defaultdict

SGET_SINGLETON_RE = re.compile(
    r'sget-object\s+v\d+,\s+(L[\w/$]+;)->(\w+):(L[\w/$]+;)'
)
METHOD_RE = re.compile(
    r'\s*\.method\s.*?\s(\S+)\(([^)]*)\)(\S+)'
)

# Super-classes trop génériques pour être une "liste de box matérielles" :
# on les ignore pour éviter les hiérarchies bruyantes (Enum, Exception,
# classes internes de coroutines/serialization qui ont parfois des
# centaines de sous-types).
IGNORED_SUPERS = {
    "Ljava/lang/Object;",
    "Ljava/lang/Enum;",
    "Ljava/lang/Exception;",
    "Ljava/lang/RuntimeException;",
    "Ljava/lang/Throwable;",
}

# Une vraie liste de modèles de box reste courte (quelques box connues +
# un cas générique "Other"). Bornes larges pour tolérer les variations
# entre versions.
MIN_SUBCLASSES = 3
MAX_SUBCLASSES = 20


def iter_smali_files(root: Path):
    yield from root.rglob("*.smali")


def find_singleton_hierarchies(root: Path):
    """
    Repère les classes ABSTRAITES ayant plusieurs sous-classes directes.
    Retourne (hierarchies, file_of_class) où :
      - hierarchies: dict{super_class -> set(sous_classes)}
      - file_of_class: dict{class_name -> Path du fichier .smali}
    """
    super_of = {}
    file_of_class = {}
    abstract_classes = set()

    for f in iter_smali_files(root):
        try:
            text = f.read_text(errors="ignore")
        except Exception:
            continue
        m_class = re.search(r'^\.class\s+(.*?)\s(L[\w/$]+;)', text, re.M)
        m_super = re.search(r'^\.super\s+(L[\w/$]+;)', text, re.M)
        if m_class:
            modifiers, cls_name = m_class.group(1), m_class.group(2)
            file_of_class[cls_name] = f
            if "abstract" in modifiers:
                abstract_classes.add(cls_name)
            if m_super:
                super_of[cls_name] = m_super.group(1)

    hierarchies = defaultdict(set)
    for cls, sup in super_of.items():
        if sup in IGNORED_SUPERS:
            continue
        if sup not in abstract_classes:
            continue
        hierarchies[sup].add(cls)

    return hierarchies, file_of_class


def hierarchy_has_model_check(hierarchy_classes, file_of_class):
    """Vrai si une des sous-classes référence Build.MODEL ou Build.PRODUCT."""
    for cls in hierarchy_classes:
        f = file_of_class.get(cls)
        if not f:
            continue
        try:
            text = f.read_text(errors="ignore")
        except Exception:
            continue
        if "Landroid/os/Build;->MODEL" in text or "Landroid/os/Build;->PRODUCT" in text:
            return True
    return False


def find_boolean_gate_methods(root: Path, known_subclasses):
    """
    Cherche les méthodes ()Z qui font au moins 2 comparaisons contre des
    singletons appartenant à `known_subclasses`.
    """
    candidates = []
    for f in iter_smali_files(root):
        try:
            text = f.read_text(errors="ignore")
        except Exception:
            continue
        lines = text.splitlines()
        method_start = None
        method_name = None
        method_sig = None
        hits = 0
        for i, line in enumerate(lines):
            m = METHOD_RE.match(line)
            if m:
                method_start = i
                method_name = m.group(1)
                method_sig = m.group(3)
                hits = 0
                continue
            if line.strip() == ".end method":
                if method_start is not None and method_sig == "Z" and hits >= 2:
                    candidates.append({
                        "file": f,
                        "method": method_name,
                        "start_line": method_start + 1,
                        "end_line": i + 1,
                        "hits": hits,
                    })
                method_start = None
                continue
            if method_start is not None:
                m2 = SGET_SINGLETON_RE.search(line)
                if m2 and m2.group(1) in known_subclasses:
                    hits += 1
    return candidates


def main():
    if len(sys.argv) != 2:
        print(f"Usage: {sys.argv[0]} /chemin/vers/decompile_apktool")
        sys.exit(1)

    root = Path(sys.argv[1])
    if not root.is_dir():
        print(f"Dossier introuvable: {root}")
        sys.exit(1)

    print("[1/3] Indexation des hiérarchies de classes (sealed-class style)...")
    hierarchies, file_of_class = find_singleton_hierarchies(root)

    print("[2/3] Recherche des hiérarchies liées à Build.MODEL/PRODUCT...")
    model_hierarchies = {}
    for sup, subs in hierarchies.items():
        if not (MIN_SUBCLASSES <= len(subs) <= MAX_SUBCLASSES):
            continue
        if hierarchy_has_model_check(subs, file_of_class):
            model_hierarchies[sup] = subs

    if not model_hierarchies:
        print("Aucune hiérarchie candidate trouvée. La logique a peut-être "
              "changé de forme dans cette version -> inspection manuelle "
              "nécessaire (chercher 'Landroid/os/Build;->MODEL' à la main "
              "avec grep dans tout le dossier décompilé).")
        sys.exit(2)

    print("[3/3] Recherche des méthodes de vérification (gate) associées...")
    found_any_gate = False
    for sup, subs in model_hierarchies.items():
        gates = find_boolean_gate_methods(root, subs)
        if not gates:
            continue

        found_any_gate = True
        print(f"\n=== Hiérarchie candidate : {sup} ===")
        print(f"  Sous-classes ({len(subs)}): {', '.join(sorted(subs))}")
        for g in sorted(gates, key=lambda x: -x["hits"]):
            rel = g["file"].relative_to(root)
            print(f"  -> {rel}  méthode {g['method']}()Z  "
                  f"(lignes {g['start_line']}-{g['end_line']}, "
                  f"{g['hits']} comparaisons)")

    if not found_any_gate:
        print("Aucune méthode de gate trouvée automatiquement. "
              "Inspection manuelle nécessaire (voir GUIDE.md, section "
              "'Si le script ne trouve rien').")
        sys.exit(2)

    print("\nVérifie manuellement le meilleur candidat (celui avec le plus "
          "de comparaisons) avant de patcher : ouvre le fichier, confirme "
          "que la méthode retourne bien 'vrai si le modèle est supporté', "
          "et regarde ses appelants (recherche du nom de la méthode dans "
          "tout le dossier décompilé) pour t'assurer qu'elle est utilisée "
          "à un endroit lié à l'authentification / au démarrage de l'app. "
          "Voir GUIDE.md pour la marche à suivre complète.")


if __name__ == "__main__":
    main()

Pages: 1 ... 3 4 5 6 7 [8] 9 10