Web - Client

mardi 9 juin 2020, 16:23  #1
Web - Client obfuscation 3
ReCoN
  • 1 posts

Bonjour à vous ,

actuellement sur obfuscation 3 je me posais une question , certes je n’ai certainement pas besoin de la réponse pour résoudre le probléme mais c’est surtout pour ma culture perso , split() est utilisé pour séparé une chaine de charactère en un tableau en fonction de l’argument qu’on lui donne , hors dans l’exercice est utilisé , var tab = pass_enc.split(’,’) ; qui nous permet de split le paramètre qu’on passe à notre fonction. Dans notre exercice cela donne ’\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30’.split(’,’) et le résultat est : ["55", "56", "54", "79", "115", "69", "114", "116", "107", "49", "50"]

je me demande comment la fonction donne ce résultat sans alors qu’il n’y a pas de virgule dans la string donné en argument.

Est-ce que \x3 et \x2c sont égalent à une virgule dans un systéme d’encodement utilisé par split ?

Si quelqu’un peut m’éclairé je l’en remerci d’avance

jeudi 30 juillet 2020, 14:46  #2
Web - Client obfuscation 3
petosorus
  • 4 posts

Dans \x2c, \x indique que l’on échappe 2c comme étant de l’hexadécimal. Si l’on regarde dans la table unicode https://unicode-table.com/fr/#002C, 2C correspond bien à la virgule.

C’est une autre représentation des caractères. D’ailleurs si tu tapes console.log("\x2C") ; dans la console de ton navigateur, tu pourras voir apparaître une virgule.

Ce n’est donc pas split qui lit différemment les caractères, c’est juste que la chaîne a été écrite avec une autre représentation.