Fonction de traitement d'une chaîne de caractère en hexadécimal

Le problème exposé dans ce sujet a été résolu.

Bonsoir,

Je ne comprends pas ce qu’applique comme traitement ce code sur la chaîne de caractère s ?

function tr(s)
{
    var str = '0A12B34C56D78E9F', result = '';

    for (var i = 0; i < s.length; i += 2)
    {
        result += String.fromCharCode(str.indexOf(s.charAt(i)) * 16 + str.indexOf(s.charAt(i + 1)));
    }

    return result;
}

Déjà, on peut voir que s doit avoir un nombre pair de caractères en entrée.
Ensuite, ils essayent d’extraire les caractères, pour les « convertir » en base 16 ?

Des idées ?

+0 -0

Est-ce que la variable que tu appelles base16 est en fait str ? Et est-il normal qu’elle ne vaille pas '0123456789ABCDEF' ?

Sinon, le code semble transformer une représentation d’octets sous forme de chiffres hexadécimaux vers les caractères correspondants selon leurs points de code (par exemple '41' vers 'A').

En effet, base16 a bien été corrigé vers str.
Par contre, ça vaut bel et bien '0A12B34C56D78E9F', ce qui est effectivement plutôt étrange.

Je vais essayer d’optimiser le code en utilisant la méthode toString(16), pour voir si la conversion vers la base 16 est une bonne hypothèse.

Salut,

C’est juste du décodage hexadécimal, mais avec un alphabet un peu mélangé.

De l’hexadécimal avec un alphabet non-standard, dans la nature, je n’en ai vu d’utilisé qu’à des fins d’obfuscation :

  • Pour protéger une adresse e-mail des spammeurs,
  • Pour faire de l’« optimisation » SEO en s’assurant que les moteurs de recherche ne décodent pas (s’il n’exécutent pas dynamiquement le Javascript) un lien, cela autrement qu’en utilisant rel="nofollow",
  • Pour de l’obfuscation de chaîne dans du code voulant rester propriétaire (régie publicitaire, etc.) de manière générale.

Est-ce que l’on entre dans un de ces cas de figure ?

Bonne soirée,

+0 -0

Quelle recherche donne pour source le système de chat de Jeux-vidéo.com. Spécifiquement un système d’identification de jv.com, je crois celui des messages justement.

Mais c’est bien une transposition suivit d’une décodage hexadécimal.

+0 -0

Quelle recherche donne pour source le système de chat de Jeux-vidéo.com. Spécifiquement un système d’identification de jv.com, je crois celui des messages justement.

JV.com utilise cet algorithme pour la deuxième finalité que j’ai cité dans mon précédent message, c’est-à-dire de l’obfuscation de liens pour des fins de SEO (peut-être d’anti-scraping à la limite). La dernière fois que j’avais cherché, le même système était en place sur une quizaine de sites, il vient probablement d’une agence.

Le script de « t’chat » que tu as trouvé, c’est un script GreaseMonkey qui rend les pages des forums dynamiques et pour cela extrait dynamiquement du HTML de certaines pages du site, récupérées via Ajax, il doit donc réexécuter dynamiquement une partie du code qui est normalement exécuté au chargement de la page lorsqu’il modifie celle-ci partiellement (sinon les liens ne sont donc pas cliquables, car les URL obfusquées sont placées dans un class au lieu de l’attribut href).

Bonne journée,

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte