Analyse plus poussée de Trio Office

Cet article fait suite au précédent sur le produit Trio Office. Il s’agit maintenant d’analyser le lancement de l’application et de voir les éléments facilement accessibles. Attention si vous faites ce genre de test à bien passer par une machine virtuelle pour éviter tout souci.

Lancement de l’application

Au lancement de l’application on tombe sur un écran permettant de soit ouvrir un document, soit de lancer une application. Il est à noter que l’application utilise les marques Word, Excel et PowerPoint de Microsoft !

Le lancement de l’application de l’application affiche automatiquement la page suivante, c’est au passage cette même page qui sera affiché plus tard lors de chaque tentative d’accès à une fonction bloquée.

L’application est vraiment très similaire à LibreOffice, ce qui parait cohérent par rapport aux captures d’écran présentes sur le Windows Store.

Le dialogue « A propos de » ne nous en apprends pas plus. Je n’ai pas réussi pour le moment à modifier le fichier ui de l’application installée depuis le store, et son lancement à l’extérieur du store se traduit par un échec. Je tenterai probablement de modifier le fichier directement depuis un Linux bootable.

Je note qu’ils semblent vouloir respecter la licence MPL de LibreOffice et je vais donc leur demander accès aux sources de TrioOffice. Par contre je n’ai jamais vu ce dialogue sur LibreOffice, même si la première phrase me rappelle fortement celle du dialogue « À propos de » de LibreOffice. Je note également que le fichier de crédits est présent dans l’installation.

Regardons ce dialogue « About »

Un point intéressant c’est que les dialogues de LibreOffice sont en fait des fichiers ui directement éditables sous Glade, allons donc voir ce fichier.

Contrairement au fichier de base présent dans les sources LibreOffice la majorité des éléments a été masqué. On peut supposer que leur suppression aurait nécessité de faire des changements plus profonds dans le code du produit.

<object class="GtkButton" id="website">
  <property name="label" translatable="yes" context="aboutdialog|website">_Website</property>
  <property name="visible">False</property>
  <property name="can_focus">True</property>
  <property name="receives_default">True</property>
  <property name="use_underline">True</property>
</object>

La partie la plus intéressante qui a été masquée est celle-ci :

<object class="GtkLinkButton" id="testlink2">
  <property name="label" translatable="no">here</property>
  <property name="visible">False</property>
  <property name="can_focus">True</property>
  <property name="receives_default">True</property>
  <property name="relief">none</property>
  <property name="uri">https://trioofficeopensource.s3-us-west-2.amazonaws.com/libreoffice.tar.gz</property>
</object>

Il ne s’agit pas de la version actuelle de Trio Office mais d’une ancienne version, ce qui justifie probablement le masquage de cet élément dans le dialogue mais son étude reste tout de même intéressante. L’ensemble des modifications du code par rapport à la version officielle de LibreOffice est disponible ici. Une étude portant sur les sources actuelles sera effectuée après récupération de celles-ci.

Analyse des modifications de la version 6.1.3.2

Il est intéressant de noter qu’il s’agit au vu des sources d’une version très proche de la version officielle de LibreOffice. Seules deux types de modifications sont présentes dans les sources que j’ai importées depuis le package disponible chez AWS.

Le premier type de modification nous montre la technique utilisée pour verrouiller les fonctionnalités. Plusieurs dialogues ont été court-circuités via ce système, mais je soupçonne que la version actuelle soit verrouillée d’une façon différente. En effet au vu du code j’aurais pensé qu’un simple « Echap » aurait permis d’afficher le dialogue de LibreOffice et de court-circuiter ce système.

typedef void (WINAPI *IAPShowRate)();
HINSTANCE hGetProcIDDLL = LoadLibrary("IAPWrapper.dll");
IAPShowRate showRate = (IAPIsPurchasedUser)GetProcAddress(hGetProcIDDLL, "IAPShowRate");
if (showRate)
{
  showRate();
}

L’autre modification concerne les menus et ne semble pas être présente dans la version que j’ai pu télécharger depuis le AWS concerne la suppression d’entrées dans les différents menus d’aide de l’application.

diff --git a/dbaccess/uiconfig/dbquery/menubar/menubar.xml b/dbaccess/uiconfig/dbquery/menubar/menubar.xml
old mode 100644
new mode 100755
index 7d2a633d29ed..bf224a4b02b3
--- a/dbaccess/uiconfig/dbquery/menubar/menubar.xml
+++ b/dbaccess/uiconfig/dbquery/menubar/menubar.xml
@@ -93,18 +93,6 @@
     </menu:menu>
     <menu:menu menu:id=".uno:HelpMenu">
         <menu:menupopup>
-            <menu:menuitem menu:id=".uno:HelpIndex"/>
-            <menu:menuitem menu:id=".uno:ExtendedHelp"/>
-            <menu:menuitem menu:id=".uno:Documentation"/>
-            <menu:menuseparator/>
-            <menu:menuitem menu:id=".uno:QuestionAnswers"/>
-            <menu:menuitem menu:id=".uno:SendFeedback"/>
-            <menu:menuseparator/>
-            <menu:menuitem menu:id=".uno:SafeMode"/>
-            <menu:menuseparator/>
-            <menu:menuitem menu:id=".uno:Donation"/>
-            <menu:menuseparator/>
-            <menu:menuitem menu:id=".uno:ShowLicense"/>
             <menu:menuitem menu:id=".uno:About"/>
         </menu:menupopup>
     </menu:menu>

Par ailleurs il est intéressant de noter que les sources présentes ce package ne montre aucune modification du dialogue « A propos de » contrairement à ce que j’ai pu constater dans l’application du store. J’y reviendrais dans un troisième article d’analyse des sources actuelles .

Conclusion

Rien de particulier à ajouter, techniquement le travail effectué est minimal et il est probable que ce travail soit utilisé par pas mal d’applications sur le store. Dans tous les cas ce type d’application est à fuir surtout que bon nombre de CVE n’ont pas été fixés dans cette version qui date d’il y a 5 ans !

Le prochain article concernera l’analyse de la version actuelle du store dont j’ai pu récupérer les sources.

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *