Archives 2021

Adieu les cons

Monday, 24 May 2021
|
Écrit par
Grégory Soutadé

Affiche Adieu les cons

J'étais assez dubitatif lorsqu'Albert Dupontel (ici scénariste, acteur et réalisateur) a sorti Adieu les cons l'année dernière. À priori, un film dans lequel Virginie Effira (alias Suze), atteint d'une maladie auto immune à l'âge de 43 ans décide d'utiliser le peu de temps qui lui reste à vivre pour rechercher l'enfant qu'elle a accouché sous X 15 ans plus tôt, n'est pas forcément ma tasse de thé. D'autant plus que la bande annonce montre des passages assez simplistes.

Pourtant ce film est un véritable petit bijou, tant sur le fond que sur la forme. Les mauvaises langues diront qu'il n'y a pas eu de concurrence réelle, mais les 7 Césars reçus (sur 13 nominations) sont largement mérités ! Albert Dupontel déclarait dans Passage des arts qu'il ne "faisait qu'enfoncer des portes ouvertes". C'est exact si on s'en tient au squelette de l'action. Néanmoins, le développement qui est fait autour de ce squelette est tout simplement extraordinaire avec énormément de poésie, de justesse et d'harmonie dans le jeu des acteurs principaux comme secondaires, avec un déroulement authentique, qui ne tente pas de prendre de raccourcis, qui laisse l'histoire se décanter, se construire pour amener à une charge émotionnelle forte sans jamais tomber dans la niaiserie. Pour supporter son propos, l'auteur ajoute régulièrement des éléments comiques qui viennent sublimer l'action sans prendre le pas sur celle-ci (contrairement à ce que suggère la bande annonce). Tous ces éléments permettent de faire oublier les quelques parties extraordinaires du personnage principal incarné par Dupontel, qui relèvent plus du conte moderne. Et que dire de la réalisation ? Sublime. Que ce soit dans le cadrage, toujours juste, l'utilisation judicieuse des effets spéciaux, l'esthétique qui est juste extraordinaire, avec un immense travail sur la photo (Surtout que beaucoup de plans se déroulent de nuit où on retrouve tout un panel de couleurs chaudes).

Mon dernier coup de cœur cinéma date de 2009 avec Parasite. Dans un autre registre Adieu les cons est à sa hauteur et j'encourage fortement les spectateurs à profiter de la réouverture des salles pour foncer voir ce (pas si) long métrage (1h27) pendant qu'il est encore à l'affiche !

Configuration Mai 2021

Wednesday, 19 May 2021
|
Écrit par
Grégory Soutadé
Boitier COOLER MASTER N200						  	  59.99 €
COOLER MASTER Cooler Master ATX 550W - MWE Gold 550				  79.99 €
AMD Ryzen 5 3600								 229.99 €
Ventilateur Radiateur Be Quiet DARK ROCK Slim 				  	  44.99 €
ASUS PRIME B450M-K   							 	  79.99 €
CORSAIR VENGEANCE LPX 16 Go (2 x 8 Go) (DDR4 DRAM 3200MHz C16)			 104.99 €
SAPPHIRE Sapphire Radeon PULSE RX 5500 XT 4G 			 		 199.99 €
Crucial SSD MX500 500Go  						  	  74.99 €
SEAGATE Barracuda 1TO 7200 Tr/min 						  39.99 €
LOGITECH M705									  39.99 €
LOGITECH Wired Keyboard K120 							  12.99 €
LOGITECH Z313- Ensemble 2.1							  34.99 €

Total :										1002.88 €


En sus :

SAMSUNG LC27JG50QQUXEN						
Ecran Incurvé 2560 x 1440 pixels - 4 ms - Format large 16/9 - Dalle VA incurvée - 144 Hz
										 289.99 €

ACSM to EPUB without WINE/ADE (Linux ARMv7 only)

Thursday, 13 May 2021
|
Écrit par
Grégory Soutadé

WARNING : You can also use libgourou and its utils to do the same thing from your platform (standard Linux PC), see this article

I finally did it ! After a long time looking for software that can download EPUB from ACSM file on Linux without need to install WINE software (and an old ADE version), I found the right breach to exploit.

As every Linux user knows, Adobe doesn't provide any support for ADE software on Linux, so we can't download EPUB files protected with Adobe ADEPT DRM because when you buy an ebook you get some ACSM file which is a request file for an ACS server (Adobe Content Server) that encrypts your ebook before returning it. My goal is not to have them decrypted, but just get the EPUB and put it on my eReader (an old Cybook Odyssey) to read it without rebooting on Windows. I can do it easily if I use the integrated bookshop, but :

  • I got a notification it will not work anymore (no support from Bookeen) even if it's still works...
  • I can't easily buy books from other shops

Time to time I look for resources on ADEPT DRM, Linux support, try to reverse protocol, exploit some binaries... I found my way thanks to Kobo firmware updates which include a precompiled version of librmsdk.so (Adobe Reader Mobile SDK) for Linux/ARMv7. I worked a lot with ARMv7 platforms, so it's not a problem for me to reverse it, plus my own server is ARMv7 compatible (iMX6) !

The shared library doesn't contains debug symbols (it's stripped). But it's a shared library, so it needs to expose all entry points in clear. Using readelf util we can find all of them and start to call it without Adobe headers. I first tried to exploit libnickel.so which is implemented by Kobo. It's an upper layer and I hoped it'll be easier to access high level functions. It was not and I decided to directly call librmsdk.so (which is lighter and has few dependencies).

RMSDK is written in C++ which is nice for application developers but a bit more tricky for reverse engineers, especially with virtual functions. Thanks for me the library is compiled without optimization options which make it more human readable.

It was a nice start but I lost a lot of time trying to find API by hand using readelf. So I developed SOAD (SO Advanced Dissector) a Python script which helps me to find automatically the full SO exported C++ API and generate (almost) ready to build C++ headers. It took me some time, but in the end helps me a lot. I was first doubtful this script can produce something interesting and I shouldn't ! I was impressed with the first simple version that produced very nice results ! So I decided to continue to work on it to handle more and more complex cases. One interesting thing was vtable discovery. The script statically parses vtables entries, but code compiled with fPIC option (which is the case here) has these entries filled with 0 which doesn't helps us. Fortunately, Andrey Ponomarenko created vtable-dumper which is a runtime vtable dumper (need to be executed on target platform). I used its output to find all zeroed vtable entries, but I also improved it to display class hierarchy !

I had to go in depth with C++ ABI and some C++ mechanism that are most of the time transparent for user (copy constructor, = operator, implicit cast, virtual tables and so on). Now the hard (and interesting) part is done, I'll make a little web app that will manage ACSM download and EPUB storage for an easy access from my eReader (avoid SSH, command line call and USB copy).

Sources are available in my forge here. I cannot embbed librmsdk.so as I don't have any Adobe license, but there is a script to retrieve it. The only license I got is GPLv3 !

Retrouvailles avec mon dealer

Sunday, 25 April 2021
|
Écrit par
Grégory Soutadé

Foulée

Il y a 6 mois, je me faisais une grave entorse de la cheville lors d'un entraînement : rupture du ligament talo-fibulaire et rupture partielle du ligament calcanéo-fibulaire. Cela signifiait arrêt total suivi d'une ré éducation, donc j'allais perdre en cardio et en masse musculaire. Malgré certaines séquelles qui resteront à vie, j'ai pris cet événement avec philosophie. Je trouvais que perdre un petit peu d'intensité et devoir travailler de nouveau pour revenir au même niveau était un challenge intéressant.

Vendredi dernier, sortie prévue de 10km à allure intense. C'est la première fois depuis 6 mois que je passe la barre des 12km/h de moyenne sur cette distance, ce qui fait que je me rapproche de mon niveau pré accident. Pour arriver à ce résultat, j'ai dû cravacher pendant toute la sortie, être entre 90% et 100% de mes capacités durant 9km et à plus de 100% dans le dernier kilomètre, j'ai dû forcer ma respiration au maximum pendant 50 minutes afin d'oxygéner les muscles. J'ai dû m'encourager mentalement pour ne rien lâcher jusqu'à la fin en essayant de tenir à chaque fois au moins 1km de plus. Le tout en restant concentré sur le parcours afin d'éviter les diverses racines et cailloux. Le parcours étant plat, je savais que je n'aurai pas de variations de rythme (qui mettent une pression importante sur le cœur) et donc que je pouvais me permettre d'être à fond jusqu'au bout et non dans la gestion.

À l'arrivée, j'ai mis plus de 10 minutes pour récupérer. Sur le chemin du retour j'avais des fourmis dans les jambes car le cœur avait encore du mal à tout alimenter. Bref, je suis allé au-delà de mes limites et c'est pour ce genre de sortie que j'aime courir, ou plutôt que je suis drogué à la course. Car une fois l'effort terminé, le corps sécrète plus ou moins rapidement des endorphines (hormones de la récompense), ce qui provoque un état de bien être. Mais pour arriver dans cet état, il faut être capable maintenir un effort physique intense pendant une durée suffisamment longue. Parfois ces décharges endorphiniques interviennent pendant l'effort, ce qui est assez magique puisqu'il n'y a plus aucune sensation de douleur ou d'essoufflement pendant 10/20 secondes.

Ce genre de sensation est quelque chose que les gens qui ne font pas ou peu de sport ne peuvent pas comprendre car quand on est débutant, lors d'un effort, on va rapidement passer d'un état de souffrance à un état de douleur et donc stopper rapidement (on arrive trop vite à ses limites). Mais avec de l'entraînement, cette sensation de douleur va être repoussée dans le temps et l'intensité. Il ne reste donc qu'une sorte de "souffrance" qui peut être surpassée par la volonté.

Il faut toutefois avouer que le sport est une activité chronophage et énergivore. Plus de 50% du temps il s'agira de faire du maintien et/ou du renforcement sans forcément entrer dans ces états de "transe". Ce sont également des moments où on aimerait faire autre chose, être ailleurs, mais il faut quand même "bosser".

Un point contre intuitif est le fait que plus on en demande à son corps, plus il nous en donne. Certes, il faut mesurer ces paroles, mais on se met souvent des limites psychologiques en terme de volume de travail. En poussant un peu plus la machine, on remarque que celle-ci répond plutôt bien et même de mieux en mieux avec le temps. Le sport est aussi un révélateur de notre structure corporelle. Si pour une raison ou une autre on a une mauvaise position (lié au travail notamment) ou quelque chose qui n'est pas bien aligné/conçu (alignement du dos, souffle au cœur...), le fait de le faire travailler va faire ressortir des douleurs. Ce n'est pas grave en soit, mais il est important de les soigner, la douleur est un bon indicateur. La douleur est d'ailleurs un facteur qu'il faut savoir maîtriser : savoir l'ignorer à bon escient (le temps que les muscles se chauffent par exemple) et savoir l'écouter quand cela est nécessaire pour éviter de tout casser. Il est donc important de pratiquer dans de bonnes conditions. Malheureusement il n'est pas toujours évident de déceler certains signaux d'alertes quand on est la tête dans le guidon avec un objectif en tête...

D'une manière plus générale, la balance avantages/inconvénients et quand même largement bénéficiaire. Personnellement, ce sont des moments "loin" du monde pendant lesquels je peut évoluer en pleine nature : respirer à pleins poumons, sentir les différentes fleurs, prendre le soleil, être au calme, ne penser à rien d'autre qu'au chemin à parcourir. Moments pendant lesquels je dialogue avec mon corps (savoir en permanence l'état des muscles, le niveau d'effort du cœur, être concentré sur la respiration). Cela permet également de booster le système immunitaire, de générer de la bonne fatigue. Mais aussi avoir la satisfaction de faire toujours mieux (merci les montres GPS qui permettent de suivre sa progression et de se motiver à poursuivre). Et même si la course à pied peut paraître rébarbative en soit (ce qui n'est pas complètement faux), elle permet d'accéder à une meilleure condition physique afin d'être plus à l'aise dans des sports plus ludiques et donc d'y prendre plus de plaisir !

Wings for Life 2021

Sunday, 11 April 2021
|
Écrit par
Grégory Soutadé

Logo Wings for Life

Wings for Life est une course au format intéressant. Depuis 2014, elle propose de courir contre une ... voiture ! C'est le principe du chasseur et de la proie. Le coureur incarnant la proie, il possède 30 minutes d'avance avant que la voiture ne démarre. La course s'arrête quand le voiture arrive à son niveau (sans l'écraser !). Il n'y a donc ni ligne de départ, ni ligne d'arrivée. De plus la course se déroule en simultanée au niveau mondial.

Cette année le départ sera donné le dimanche 9 mai 2021 à 11h UTC (13h heure française).

Au delà du format, la totalité des frais d'inscription (20€) sont reversés à l'association éponyme Wings for Life, créée par le double champion du monde de motocross Heinz Kinigadner et le fondateur de Red Bull Dietrich Mateschitz, dont le but est de financer la recherche concernant les lésions de la moelle épinière et la paraplégie.

Certains points de rencontre organisés localement ont prévus un parcours de 100km et une vraie voiture qui fait la course, mais pour la plupart des personnes il faudra télécharger une application sur son téléphone. Les organisateurs mettent également à disposition un calculateur d'objectif en temps, distance ou allure. Quant à la "catch car", elle démarre à une vitesse de 14km/h et augmente de 1km/h toutes les 30 minutes jusqu'à 18km/h, puis passe à 22km/h et 26km/h. Le record absolu étant détenu depuis l'année dernière par le britannique Michael Taylor avec une distance de 69.92km ! Ce qui nous fait la jolie moyenne de 3'36 (16,6km/h) pendant 4h12 !

Personnellement, l'utilisation du téléphone pendant la course me rebute un peu, à voir !