Dans l'article sur l'acquisition de données sur les mobiles publié dans MISC, il est décrit à la fin comment décoder un SMS.

Un SMS récupéré avec Chipit par exemple est sous cette forme:

0007913386094000F0040B913326345678F100007030323022304012C16030180C0
683C16030180C0683C120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Le premier octet ici 00 signifie que le SMS est inutilisé. Le TPDU est en fait encodé en ASCII 7 bits avec un en-tête.

J'ai utilisé l'API pduconv développé par Nerdlabs Consulting pour créer rapidement un petit décodeur de SMS :

$ ./decodesms /tmp/sms
SMS decoder (c) Lexfo 2007

Status: unused (0x00)
Service number: +33689004000
Sender number: +33614365871
Message length: 18
Message: AAAAAAAAAAAAAAAAAA

J'ai simplement extrait les données les plus utiles pour les expertises forensiques.