fr.comp.normes.unicode
[Top] [All Lists]

Re: Recherche de caracteres unicode en perl avec obfuscation stunnix.

Subject: Re: Recherche de caracteres unicode en perl avec obfuscation stunnix.
From: Olivier Miakinen
Date: Fri, 24 Jul 2009 23:57:14 +0200
Newsgroups: fr.comp.normes.unicode, fr.comp.lang.perl
[Repost car j'avais oublié de faire suivre vers fclp]

Bonjour,

Le 24/07/2009 14:58, O_TEXT a écrit :
> 
> je souhaite rechercher une séquence de caractères unicode, depuis un
> script écrit en langage perl. Les séquences recherchées sont de la forme
> «à vér» avec ou sans accents, et avec un nombre variable d'espaces.

Tout d'abord, je ne vois pas ce que pourrait être dans Perl un « carac-
tère non unicode », et ta question me semblerait plus en charte dans le
groupe fr.comp.lang.perl (où je place le suivi), ou à la rigueur dans
le groupe fr.comp.lang.regexp.

> En particulier, les séquences suivantes doivent être reconnues:
> -à vér
> -à ver
> -a ver
> -a vér
> -à     vér
> 
> Pour cela, j'utilise l'expression suivante dans le langage Perl:
> [\x{00e0}a]\s+(?:v[\x{00e9}e]r
> ou encore:
> [\N{LATIN SMALL LETTER A WITH GRAVE}a]\s+(?:v[\N{LATIN SMALL LETTER E
> WITH ACUTE}e]r
> 
> Cela semble fonctionner.

Tant mieux. Une question malgré tout : pourquoi utiliser cette écriture
compliquée au lieu de faire tout simplement « [àa]\s+v[ée]r » ?

> Toutefois, lorsque le script perl est obscurcis avec l'obfuscateur de
> code perl de stunnix, le code de l'expression rationnelle prend l'une
> des deux formes suivantes et semble ne pas fonctionner:
> [\x00e0a]\s+(?:v[\x00e9e]r

La suppression des accolades fait que le caractère "\x{00e0}" est rem-
placé par les trois caractères "\x00", "e" et "0", ce qui n'est pas le
but recherché. Il y a moyen de faire des rapports de bug à Stunnix ?

> [\303\240a]\s+(?:v[\303\251e]r

Ah oui, ce n'est pas mieux. Le caractère « à », C3 A0 en UTF-8, est
remplacé par les caractères « \xC3 » (\303) et « \xA0 » (\240). C'est
comme s'il y avait une confusion entre UTF-8 et un jeu de caractères
8 bits, tel que Latin1 par exemple.

1) En quel jeu de caractères est stocké ton fichier ?
2) En quel(s) jeu(x) de caractères fonctionne Stunnix ?

> D'où ma question: est-il possible de rechercher des caractères unicode
> depuis un script perl obscurci par l'outil stunnix?

En écrivant ces caractères tels quels au lieu de passer par un encodage
\x{....} ou \N{....} ?

-- 
Olivier Miakinen

<Prev in Thread] Current Thread [Next in Thread>