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.