Discussion:
Recherche de caractères unicode en perl avec obfuscation stunnix.
(trop ancien pour répondre)
O_TEXT
2009-07-24 12:58:33 UTC
Permalink
Bonjour,

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.

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.
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
[\303\240a]\s+(?:v[\303\251e]r


D'où ma question: est-il possible de rechercher des caractères unicode
depuis un script perl obscurci par l'outil stunnix?
Olivier Miakinen
2009-07-24 21:55:46 UTC
Permalink
Bonjour,
Post by O_TEXT
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.
Post by O_TEXT
-à vér
-à ver
-a ver
-a vér
-à vér
[\x{00e0}a]\s+(?:v[\x{00e9}e]r
[\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 » ?
Post by O_TEXT
Toutefois, lorsque le script perl est obscurcis avec l'obfuscateur de
code perl de stunnix, le code de l'expression rationnelle prend l'une
[\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 ?
Post by O_TEXT
[\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 ?
Post by O_TEXT
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
Olivier Miakinen
2009-07-24 21:57:14 UTC
Permalink
[Repost car j'avais oublié de faire suivre vers fclp]

Bonjour,
Post by O_TEXT
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.
Post by O_TEXT
-à vér
-à ver
-a ver
-a vér
-à vér
[\x{00e0}a]\s+(?:v[\x{00e9}e]r
[\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 » ?
Post by O_TEXT
Toutefois, lorsque le script perl est obscurcis avec l'obfuscateur de
code perl de stunnix, le code de l'expression rationnelle prend l'une
[\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 ?
Post by O_TEXT
[\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 ?
Post by O_TEXT
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
Loading...