Des nouvelles du N96, avec flash au Xenon ?

Aucun commentaire. - Ajouter un commentaire.


Annoncé lors du salon Mobile World Congress de Barcelone, début février 2008, le Nokia N96 devrait vraisemblablement débarquer en Europe cet été avec un prix de vente au détail estimé à 799 € TTC.


Pour rappel, le N96 est le futur grand remplacant du N95 (et son frère N95 8GB) avec quelques rajouts technologiques, mais toujours pas de flash Xenon comme sur le N82:

  • la nouvelle norme TV mobile en DVB-H ;
  • 16Go de mémoire interne + un lecteur de carte MicroSD ;
  • flash Lite 3.0 et Flash Video supportés par le navigateur web ;
  • interface utilisateur S60 3rd Edition Feature Pack 2 ;
  • support du codec Windows Media Video (WMV9) ;
  • APN double LED 5 Mpx
Toutes les caractéristiques détaillées du N96 sont disponibles sur le site de Nokia France (http://www.nokia.fr/A4940068).

Selon une rumeur lancée sur le forum Esato, il semble que Nokia ait décidé très récemment d'ajouter le flash Xenon à son N96. Si cette rumeur s'avérait vrai, ce serait finalement une bonne chose car la qualité des photos avec flash Xenon sur le N82 est incontestablement meilleure en environnement sombre.



Lire la suite...

 

Signez toutes vos applications sans restriction !

4 commentaires - Ajouter un commentaire.

Si vous faîtes partie des chanceux (comme moi) qui ont réussi à avoir un certificat de développeur avant le changement de la politique de signature de Symbian (à cause en grande partie des abus de personnes malveillantes qui proposent de vous obtenir des certificats moyennant finance sur Ebay... twisted), cet article ne vous concerne pas.

Le site de signature en ligne de Symbian (Open Signed Online) ne permet de signer que des applications possédant un UID non protégé. Il se peut donc que vous ne puissiez pas installer certaines applications comme par exemple l'application EQ Restart. Vous vous disez donc surement à quoi bon d'acheter (chèrement ! lol) un smartphone si on ne peut pas simplement installer des applications. Mais pas de panique, un site chinois propose de signer toutes vos applications sans restriction ! pratique donc ! Une solution temporaire en attendant que toutes les applications freeware migrent leur UID vers un UID non protégé (comme c'est le cas de Rotateme).

Si l'aventure vous tente, vous pouvez essayer ce site pour obtenir une signature en suivant la procédure décrite dans cet article, mais à vos risques et périls (je rejette toute responsabilité) car à vrai dire, je ne fais pas trop confiance au site chinois et je n'aime pas trop non plus laisser trainer mon IMEI un peu partout... Il s'agit juste d'une info qui circule sur le net.

  1. Connectez vous à ce lien http://s60.vgooo.com:801/
  2. Enregistrez vous (comment vous ne comprenez pas le chinois ?! biggrin). Le premier block vert correspond au bouton Login et le deuxième block vert (à droite donc) correspond au bouton Register sur lequel vous devez cliquer.

    Mettez vos pseudo, mot de passe et adresse email dans les champs adéquats et cliquez sur OK (rectangle vert à côté !).

  3. Une fois votre compte créé, cliquez sur Login dans la page d'accueil pour vous authentifier.

  4. Remplissez la zone de texte avec votre IMEI si c'est votre première connexion au site ; vous recevrez alors un message en chinois vous disant que votre compte va être créé sous peu avec votre IMEI, cela peut prendre jusqu'à un jour, mais aucun mail de confirmation ne vous sera envoyé. Revenez plus tard au site pour vérifier.

  5. Votre compte étant activé, vous pouvez maintenant signer votre application en soumettant votre fichier .sis (et bouton bleu pour soumettre votre .sis).

  6. Votre application signée, vous obtiendrez une fenêtre sur laquelle vous pouvez voir un lien avec le nom de votre application. Cliquez donc sur ce lien pour récupérer votre application signée. Voilà, c'est fini !



Lire la suite...

 

Lancement officiel d'Inside Symbian OS !

Aucun commentaire. - Ajouter un commentaire.

Bienvenue sur le site Inside Symbian OS ! Etant un utilisateur du Nokia N95 8GB et un fan de Symbian, j'ai le plaisir de vous présenter mon site consacré au système Symbian S60 pour vous partager mon expérience sur Symbian. Deux grandes rubriques sont à votre disposition :

  • News : cette rubrique concerne les actualités relatives au système Symbian S60 (à partir de la 3ème édition) et aux smartphones fonctionnant sous Symbian S60. Des tests de logiciels et de matériels sont aussi abordés.

  • Symbian S60 : sont regroupés ici des tutoriels qui, j'espère, vois aideront à mieux utiliser votre téléphone. Vous pouvez également obtenir des informations détaillées pour mieux comprendre le système Symbian.

Bien que l'accent soit mis sur Nokia (ce qui me semble un peu logique car l'interface utilisateur S60 a été créée par Nokia), ce site n'est affilié à aucun opérateur, constructeur ou éditeur.


Lire la suite...

 

Mise à jour du firmware de votre téléphone

12 commentaires - Ajouter un commentaire.

Suite aux nombreuses questions (et aussi problèmes) concernant la mise à jour du firmware de votre téléphone, je vais vous expliquer ici la méthode à faire pour mettre à jour proprement le firmware. La méthode marche et a été testée sur un N95 8GB, mais s'applique bien naturellement à d'autres modèles de téléphones Nokia. Au final vous obtiendrez un téléphone tout propre avec le nouveau firmware et tout fonctionne (le caroussel compris). Aucun problème rencontré après la mise à jour.


Avant de commencer la mise à jour, je tiens à signaler que si vous suivez ma méthode, voici les risques encourus :

  • le film Spiderman, livré avec le N95 8GB, sera perdu (ce n'est pas une grosse perte, il y a autres moyens pour revoir ce film...:op) ;

  • les configurations personnelles seront effacées (thèmes, fond d'écran, réglages, etc) ;

  • toutes les logiciels installés seront supprimés (donc à réinstaller après la mise à jour), ce qui permet de repartir de zéro proprement après la mise à jour, évitant ainsi d'avoir des erreurs de fonctionnement ;


Partie 1 : Installation de logiciels sur votre PC

Voici les logiciels nécessaires pour faire la mise à jour ; installez-les :
1 - PC Suite (facultatif), utile si vous voulez faire des sauvegardes de vos sms, mms, mails ou contacts, etc., à télécharger ici http://www.nokia.fr/A4364238 : suivez bien les instructions lors de l'installation.
2 - Nokia software Updater (NSU) : c'est ce logiciel qui va mettre à jour votre téléphone. Il est à télécharger ici http://www.nokia.fr/A4364272 : choisissez votre modèle de téléphone (N95 8GB), puis cliquez sur bouton vert "mise à jour PC" et suivez les instructions sur la page pour récupérer l'exécutable du logiciel afin de l'installer sur votre PC. Suivez bien les instructions lors de l'installation de NSU sur votre PC.
3 - Nemesis Service Suite (NSS) : ce logiciel est facultatif , il permet de changer le code produit de votre téléphone, donc utile si vous voulez flasher votre téléphone pour mettre un firmware nu constructeur afin de supprimer les personnalisations de votre opérateur mobile. Le téléchargement se fait ici :
http://www.b-phreaks.co.uk/index.php?main_page=page_2
Laissez les options par défaut lors de l'installation de Nemesis.

[Edit 21/04/2008 - Attention, les dernières versions de NSU et PC suite (6.86.9.0) incluent des drivers USB incompatibles avec Nemesis NSS, provoquant le message d'erreur scan for product...error. Lisez les commentaires en bas pour la procédure à faire]


Partie 2 : Nettoyage de votre N95

1 - Faites une sauvegarde de vos données importantes (sms, contacts, rdv, mails, photos, documents, etc). Vous pouvez utilisez PC suite ou ce que vous voulez du moment que vos données importantes sont à l'abri en lieu sûr.
2 - Supprimez toutes les applications que vous avez installées sur votre N95 (faites le dans le gestionnaire d'applications)
3 - Formattez votre mémoire de masse (ATTENTION : toutes les données seront effacées) : pour cela, allez dans le menu du N95, Outils >> Utilitaires >> Mémoire, puis Options et formater la mémoire de masse.


Partie 3 : Mise à jour

3.A. Changement du code produit

Chaque téléphone Nokia a un code produit qui correspond soit à une région géographique soit dans quelques cas à un opérateur. SFR a un code produit pour le N95 8GB a cause de son exclusivité sur le N5 8GB. La mise à jour du firmware se fait par code produit.

Dans quels cas faire un changement du code produit ? :
  • Vous avez acheté votre téléphone en pack opérateur, le téléphone aura alors vraisemblablement un firmware avec des personnalisations de votre opérateur, voire même quelques restrictions ou bridage(par exemple suppression de la VoIP). Vous n'aimez pas ces personnalisations peu esthétiques et vous voulez mettre un firmware nu d'origine comme si vous aviez acheté votre téléphone nu dans le commerce.

  • Vous avez acheté, sur Ebay, votre téléphone qui ne comporte pas la langue française, vous devez alors mettre le code produit France et flasher votre téléphone (i.e. installer le firmware correspondant à ce code France)

Procédure pour changer votre code produit :

1 - Reliez le N95 à votre PC avec le câble USB. Sélectionnez le mode PC Suite sur le N95.
2 - Lancez NSS sur votre PC, la fenêtre de NSS s'ouvre alors.
3 - Sur la fenetre de NSS, faites ceci :
* cliquez sur la loupe en haut à droite,
* cliquez sur l'icone "Phone info",
* cliquez sur Scan,
* cliquez sur Read.
4 - Votre code produit apparait alors en face du champ "product code" à droite de la fenetre. Si par exemple vous avez acheté un N95 8GB chez SFR en pack opérateur, et si c'est la première fois que vous faites une mise à jour, il s'agit alors du code produit SFR (0558166). (Notez bien que le code produit de votre téléphone se trouve aussi sous la batterie).
5 - Remplacez maintenant ce code produit par le code France 0550348, puis cochez la case "enabled" à côté. Cliquez enfin sur Write.
6 - Vérification : en principe votre N95 a maintenant le nouveau code produit France. Pour vérifier, recliquez sur Read : votre nouveau code produit devrait être toujours affiché, si c'est votre ancien code qui est affiché, alors c'est que vous avez mal fait le changement du code, recommencez l'étape 5 précédente.
7 - Sur votre PC, fermez NSS.
8 - LAISSEZ votre N95 relier au PC via le cable USB : ne retirez pas le cable USB !

3.B. Mise à jour du firmware avec Nokia Software Updater (NSU)

1 - Ouvrez NSU sur votre PC
2 - Suivez rigoureusement les indications à l'écran (sur la fenêtre de NSU !)
(NSU va détecter votre code produit, ou le nouveau code si vous l'avez changé à l'étape précédente, et cherchera dans sa base le nouveau firmware correspondant à ce code produit.)
3 - Une fois la mise à jour finie, la fentre NSU vous en avertira, et vous pouvez retirer le cable USB (UNIQUEMENT quand NSU dit que c'est fini sinon les dommages seront irréversibles !!!)
4 - Le N95 se reboote automatiquement, et vous pouvez commencer à le configurer (choix du pays, l'heure)
5 - Remettez le code produit intial si besoin avec NSS (voir partie changement code de produit). [Remarque : vous pouvez garder définitivement votre nouveau code produit, les services chez votre opérateur continueront de fonctionner]

Voila c'est fini, vous avez le nouveau firmware. Vous pouvez commencer à réinstaller tous vos applications sur votre téléphone.



Lire la suite...

 

Attaque DoS sur un N95 ?

Aucun commentaire. - Ajouter un commentaire.

Récemment, un groupe de doctorants à l'INRIA a annoncé que le N95-1 avec le firmware V 12.0.013 pourrait être victime d'une attaque DoS (déni de service). L'attaque résulterait de l'exploitation d'une vulnérabilité dans l'implémentation du protocole SIP dans le N95 : l'envoi d'une séquence de messages SIP bien particuliers provoquerait un état instable obligeant l'utilisateur à rebooter le N95. La faille est annoncée ici.


Nous profitons au passage pour parler rapidement des risques de déni de service possible sur un réseau VoIP.

De façon générale, on peut classifier les attaques par déni de service (DoS) sur un réseau VoIP en deux familles :

1.Les dénis de service par exploitation de vulnérabilités :
- messages de signalisation anormalement très longs, malformés ou syntaxiquement incorrects pour exploiter une mauvaise implémentation d’un protocole VoIP (voir les outils de tests de robustesse d’une implémentation VoIP (SIP et H323), développés par l’université d’Oulu de Finlande) ;
- suite de paquets spécifiques exploitant une faiblesse ou faille de sécurité protocolaire ;
- commandes désordonnées.
On peut aussi regrouper dans cette famille d’attaques les attaques exploitant les failles de sécurité des systèmes d’exploitation (Windows par exemple !) présents dans les équipements VoIP :
- vers, virus, trojans, etc. (ces codes malveillants s’appuient sur des failles logicielles et matérielles)
- SQL Slammer, attaque d’injection SQL
- les buffers overflows (ping of Death, l’attaque Teardrop…)

2. Les dénis de service par saturation (ou inondation) :
- Attaques consistant à bombarder un équipement VoIP spécifique avec des paquets bien formés (des messages de signalisation ou des paquets RTP) ; les exemples dans le cas de SIP sont :
o Cible visé : proxy SIP, registrar, serveur de localisation, IP phone
o Messages bombardés : REGISTER, INVITE, RESPONSE, BYE…
o Outils qu’on peut utiliser pour lancer ces inondations : SivUS, VOMIT, SIPhallis, …
- Spam vocal (SPIT, Spam over Internet Telephony) : ces attaques consistent à inonder les boîtes vocales des utilisateurs de systèmes ToIP avec des messages non sollicités ou des publicités.
- Attaques (D)DoS classiques qui visent la couche TCP/IP ou la couche physique (interfaces/liens PE-CE GateKeeper et PE-CE GateWay) :
o ARP spoofing, ARP cache poisoning ;
o attaques SYN, TCP NULL, UDP flooding, Smurf ou Fraggle, Tribal Flood Network, Trinoo, DNS, etc.

Les outils classiques et répandus d'écoute de réseau, d'analyse de flux et d'injection de trafic IP peuvent être directement utilisés pour attaquer un réseau VoIP (attaques par saturation visant la couche TCP/IP). Les outils propres à la voix sur IP sont aussi disponibles, comme VOMIT (Voice Over Misconfigured Internet Telephone), SiVuS (SIP Vulnerability Scanner) et SIPhallis.


Lire la suite...

 

Comment signer toutes vos applications ?

11 commentaires - Ajouter un commentaire.

Symbian a fermé récemment son site Symbian Signed qui délivrait des certificats afin de pouvoir signer nos applications. Depuis quelques semaines, la réouverture du site ne permet plus d'obtenir ces fameux et précieux certificats, et en remplacement un nouveau système a été mis en place. Maintenant la signature des applications se fait directement en ligne via ce portail Open Signed Online. Malheureusement, ce nouveau service de signature n'autorise pas la signature des applications utilisant un protected UID, ce qui pénalise bien les utilisateurs de Symbian S60 3rd. En effet si les applications shareware sont déjà signées, certains (voire beaucoup) applications freewares (nécessitant d'être signées) utilisent un protected UID, ce qui empêche à l'état actuel leur installation.
Le but de ce tutoriel est de montrer qu'il est toutefois possible de remédier à ce problème en modifiant cet UID avec une valeur non protégée. Avec ce tutoriel, vous pouvez passer avec succès la signature de Open Signed Online.
Rien de méchant dans ce tutoriel car tout est plus ou moins documenté par Symbian. Je ne rentrerai pas dans les détails techniques pour l'instant, je vous laisse le soin d'aller consulter les sites de Symbian. Je détaillerai les différents points dans des posts ultérieurs.


Avant de poursuivre la suite de ce tutoriel, je tiens à préciser que le tutoriel est à caractère strictement informatif (comme tout le site) et par conséquent je ne serai en aucun cas responsable des problèmes que vous pouvez rencontrer par la suite ou de que vous pouvez faire avec mon tutoriel. Je décline toute responsabilité.

1. Logiciels requis

Commençons par lister les applications que vous devez installer sur votre PC Windows.

Commençons par lister les applications que vous devez installer sur votre PC Windows :

  • un éditeur hexadécimal : Winhex par exemple ;
  • uNsis et winSiS, deux logiciels qui permettent respectivement de décompresser un fichier .sis pour voir son contenu et de reconstituer ensuite le .sis (avec makesis) ;
  • S60 SDK for Symbian OS : bien utile car il contient une richesse d'information et des outils pour manipuler les fichiers .sis et leurs contenus. Allez sur cette page et à gauche sélectionnez "3rd Edition FP1" dans la menu déroulant "Download version for", puis cliquez sur "Download now".
  • optionnel : SiSXplorer qui est un IHM pratique pour voir les détails d'un fichier .sis.
Toutes ces applications sont faciles à installer sous Windows. Suivez juste les instructions et laissez tous par défaut.

La suite de ce tutoriel sera faite avec un exemple d'une application fictive toto.sis. Remplacez juste toto.sis par l'application que vous souhaitez signer.

2. Décompressez l'archive toto.sis avec uNsIs

Par défaut uNsIs et WinSIS sont installés dans les répertoires C:\uNsIs et C:\WinSIS.
Lancez uNsIs. En bas de la fenêtre uNiS, vous voyez Open SIS, cliquez sur ce bouton puis sélectionnez votre fichier toto.sis. Vous verrez alors apparaitre dans la partie Information de la fenêtre uNsIs le contenu de toto.sis (la liste des fichiers contenus à l'intérieur). Cliquez alors sur Extract pour extraire le contenu. Les fichiers extraits se retrouvent dans le répertoire C:\uNsIs\temp (vous y avez en principe trois répertoires private, resource et sys). Dans le répertoire C:\uNsIs\pkg, vous pouvez trouver le fichier pkg.txt qui liste le contenu de votre fichier toto.sis.


Important, pensez à effacer le contenu de ces deux répertoires C:\uNsIs\temp et C:\uNsIs\pkg avant d'exécuter uNsIs pour extraire un autre fichier .sis. Et surtout ne touchez à rien au répertoire C:\uNsIs\bin qui contient les fichiers d'installation de uNsIs, nécessaires à son bon fonctionnement.

Maintenant que votre fichier toto.sis est décompressé. Vous devez modifier certains fichiers extraits. Les fichiers les plus importants à modifier sont les fichiers avec l'extension .exe (qui se trouve dans C:\uNsIs\temp\sys\bin) et .dll. Les fichiers .dll ne sont pas présents dans tous les fichiers .sis, mais leur structure est identique au fichier .exe.
Allez dans le répertoire C:\uNsIs\temp\sys\bin, vous devez trouver un fichier avec l'extension .exe, toto.exe dans notre example. Ce fichier binaire, contrairement à ce que vous pouvez pensez, a une structure bien particulière, il s'agit d'un exécutable SymbianOS 9 (appelé E32Image) possédant un format bien défini. Voici le format du E32Image :


C'est dans l'entête de l'image E32 (partie E32 Header) que se trouvent les UID et SID utilisés par notre application Symbian toto.sis. Pour rappel, ce sont ces valeurs qu'on doit modifier pour pouvoir passer avec succès la signature online de Symbian Signed. Pour plus de détails sur le format E32, je vous conseille de venir voir ici. Vous pouvez aussi trouver des explications bien intéressantes sur le site de Symbian.

3. Modification de l'UID

Nous entrons, dans cette section, au cœur du sujet même de ce tutoriel. Cette partie concerne la modification du fichier toto.exe (et aussi des fichier .dll si vous en avez).

Avant toute chose, si vous n'êtes pas familier avec la notation hexadécimale, je vous conseille de jeter un coup d'oeil sur wikipédia. En effet, nous allons utiliser l'éditeur hexadécimal Winhex pour modifier l'exécutable toto.exe (il est plus facile de voir en hexa qu'en binaire avec des 0 et 1 !!!).
Le Header du E32Image, entête du fichier toto.exe, est la partie la plus intéressante, déclarée dans le fichier \epoc32\include\f32image.h si vous avez installé le SDK Symbian S60 3rd FP1. Elle est composée de trois sous-parties E32ImageHeader, E32HeaderComp et E32ImageHeaderV. Les classes E32ImageHeader et E32ImageHeaderV nous intéressent ici.
Voici format de E32ImageHeader (j'ai mis en rouge les champs qui nous intéressent) :

TUint32 iUid1;
TUint32 iUid2;
TUint32 iUid3; // l'UID qu'on doit modifier
TUint32 iUidChecksum;
TUint iSignature; // 'EPOC'
TUint32 iHeaderCrc; // CRC-32 of entire header
TUint32 iModuleVersion; // Version number for this executable
TUint32 iCompressionType; // Type of compression used (UID or 0 for none)
TVersion iToolsVersion; // Version of PETRAN/ELFTRAN which generated this file
TUint32 iTimeLo;
TUint32 iTimeHi;
TUint iFlags; // 0 = exe, 1 = dll, 2 = fixed address exe
TInt iCodeSize; // size of code, import address table, constant data and export dir
TInt iDataSize; // size of initialised data
TInt iHeapSizeMin;
TInt iHeapSizeMax;
TInt iStackSize;
TInt iBssSize;
TUint iEntryPoint; // offset into code of entry point
TUint iCodeBase; // where the code is linked for
TUint iDataBase; // where the data is linked for
TInt iDllRefTableCount; // filling this in enables E32ROM to leave space for it
TUint iExportDirOffset; // offset into the file of the export address table
TInt iExportDirCount;
TInt iTextSize; // size of just the text section
TUint iCodeOffset; // file offset to code section, ça donne la taille de l'entête
TUint iDataOffset; // file offset to data section
TUint iImportOffset; // file offset to import section
TUint iCodeRelocOffset; // relocations for code and const
TUint iDataRelocOffset; // relocations for data
TUint16 iProcessPriority; // executables priority
TUint16 iCpuIdentifier; // 0x1000 = X86, 0x2000 = ARM

Précisons maintenant les 4 champs qui nous intéressent :
  • iUid3 (offset 0x08) : c'est l'UID de l'application Symbian (toto.sis dans notre cas), elle est unique sur le téléphone; c'est cet élément qu'on va modifier par la suite ;
  • iUidChecksum (offset 0x0C) : checksum calculé à partir des 3 UIDs (iUid1, iUid2 et iUid3) ; il existe une commande uidcrc dans le SDK qui permettent de calculer ce checksum ;
  • iHeaderCrc (offset 0x14) : le CRC32 de toute l'entete E32Image ; le CRC permet de vérifier, au moment de l'installation de l'application toto.sis, l'intégrité du fichier toto.exe (voir s'il y a des erreurs) ; donc si ce CRC n'est pas correctement calculé, l'installation sera impossible ;
  • iCodeOffset (offset 0x64) : donne la taille (en octets) de l'entête E32Image.
A cela, s'ajoute aussi le champ iSecureId (offset 0x80) dans la classe E32ImageHeaderV qui, habituellement, prend la même valeur que iUid3 ; il faudra donc aussi le modifier.

Comme vous pouvez constater, la modification seule de l'iUid3 nécessite la modification des autres champs (iUidChecksum, iHeaderCrc, iCodeOffset et iSecureId).

Pour mieux comprendre, rien ne vaut que la pratique ! Lancez Winhex, puis ouvrez le fichier toto.exe (qui se trouve dans C:\uNsIs\temp\sys\bin). Vous verrez alors apparaître quelque chose qui ressemble à la figure suivante :


J'ai mis en fond bleu l'entête du E32Image dont la taille est de 0x9C qui correspond bien à la valeur donnée par le champ iCodeOffset (mis en évidence sur le sreenshot par un rectangle vert). Le champ iUid3 (situé à l'offset 0x08 et identifié par le premier rectangle rouge) a la valeur 0xA0231DD2 : attention le fichier étant en binaire est codé en little endian, ce qui veut dire que les octets sont inversés. Vous voyez que le champ iSecureId (se positionnant à l'offset 0x80 et identifié par le deuxième rectangle rouge) a la même valeur que l'iUid3. Les rectangles rose et bleu vous donnent respectivement les champs iUidChecksum et iHeaderCrc.

Nous allons maintenant modifier ces différents champs. Commencez par l'iUid3 : vous devez prendre une valeur qui est dite "unprotected" afin de pouvoir signer votre application. Pour cela, prenez une valeur (sur 4 octets) commencant par 0xE*******, par exemple 0xE400234A.

A freeware developer should release an application with a UID from the *0xE*-range (Development use). Using such a UID allows users to get the according application signed via Open Signed Online. The 0xA-range (V9 unprotected UID allocations) does not work! As the Symbiansigned documentation is not clear on this it will be changed soon.

Dans notre exemple, nous devons donc modifier avec l'aide de Winhex les valeurs des deux rectangles rouges par cette nouvelle valeur 0xE400234A. Pour cela allez dans le menu Search, puis Replace Hex Values : dans la petite fenêtre contextuelle qui apparaît, mettez dans "Search for" la valeur D21D23A0 et dans "Replace with" 4A2300E4 (notez bien l'ordre little endian - en inversant les octets), et choississez "Prompt when found" et pour terminer, cliquez sur OK.


Regardez bien ce que Winhex vous propose alors de modifier : vérifier que les valeurs que vous remplacez correspondent bien aux deux offsets 0x08 et 0x80 (où se trouvent les champs iUid3 et iSecureId).

Comme vous avez modifié les deux champs iUid3 et iSecureId du fichier toto.exe, vous devez recalculer les checksums, autrement dit vous devez mettre à jour les deux champs iUidChecksum et iHeaderCrc.

Le cheksum iUidChecksum est calculé sur les trois champs iUid1 (offset 0x0), iUid2 (offset 0x04) et iUid3 (offset 0x08). Pour cela nous allons utiliser l'outil udicrc du SDK Symbian. Ouvrez une fenetre DOS, puis tapez
C:\>uidcrc 0x1000007A 0x00000000 0xE400234A
(ceci correspond à notre exemple, vous devez mettre par ordre vos iUid1, iUid2 et le nouveau iUid3 que vous venez de modifier)
Modifiez alors le champ iUidChecksum avec cette nouvelle valeur obtenue par uidcrc.

Il ne reste plus qu'à modifier le champ iHeaderCrc. Avant tout, je vous explique comment est calculé ce CRC32. Avant l'installation, l'installer de Symbian vérifie ce CRC32 : il remplace la valeur présente dans le champ iHeaderCrc, notée x, par cette valeur 0xc90fdaa2, puis calcule le CRC32 sur toute l'entête. Si la valeur obtenue n'est pas égale à la valeur x d'origine, Symbian conclut qu'il y a des erreurs, donc l'intégrité du fichier est corrompue, et l'installation ne se fera pas ! De plus il est important de noter que Symbian utilise une valeur nulle pour initialiser l'algorithme de calcul du CRC32.

Pour modifier notre champ iHeaderCrc, remplacez donc la valeur présente par 0xc90fdaa2 (pensez bien à mettre l'ordre little endian), puis sélectionnez toute l'entête E32Image en prenant bien connaissance de sa taille donnée par le champ iCodeOffset (cf figure de la fenetre Winhex, zone en fond bleu). Vous devez alors appliquer l'algorithme CRC32 sur ce bloc de données avec une valeur d'initialisation nulle. Malheureusement, vous ne pouvez pas utiliser Winhex pour faire ce calcul ! En effet Winhex utilise la valeur Oxffffffff pour initialiser l'algorithme CRC32. Le seul moyen qu'il vous reste est d'implémenter vous-même dans un langage de programmation cet algorithme CRC32, largement documenté sur le net ! Une fois obtenu le CRC, vous devez le mettre dans le champ iHeaderCrc (en remplacement de 0xc90fdaa2).

Voilà c'est terminé pour le fichier toto.exe. Faites de même pour les fichiers .dll si vous en avez. N'oubliez pas aussi de modifier les autres fichiers (.rsc par exemple) qui peuvent contenir la valeur de l'UID soit directement en binaire soit en affichage ascii (texte). Pensez également à modifier les noms des fichiers en accord avec le nouveau UID.

4. Reconstruction du fichier .sis

Une fois l'UID modifié dans les fichiers de votre .sis, vous devez repackager ces fichiers pour reconstruire votre .sis. Pour cela, vous pouvez utiliser makesis ou lancez WinSIS Pro et pensez à bien mettre votre nouveau UID dans WinSIS


5. Signez votre application

Signez maintenant votre application sur le site de Symbian Signed ! ;-)


Lire la suite...