Informatique
Wednesday, 01 July 2015
|
Écrit par
Grégory Soutadé

Logo Dynastie

Sortie de la version 0.3 de Dynastie. Pour rappel, il s'agit de mon générateur de blog. En test depuis quelques mois, c'est maintenant officiel. Les différences ?

  • Support des brouillons
  • Ajout du marqueur "dyn:firstpageonly" : le sous-arbre n'apparaît que sur la première page
  • Ajout du marqueur "dyn:ljdc_last" : dernière image "les joies du code"
  • Quelques corrections de bug

Suite à l'introduction de la syntaxe Markdown, je n'utilise plus que cette dernière. Si un jour j'ai du temps, il faudra que je teste avec Django 1.8 et que je passe le code en Python 3.

Tuesday, 23 June 2015
|
Écrit par
Grégory Soutadé

Fenêtre principale de KissCount

Après une année blanche, voici la sortie de la version 0.5 de KissCount. Déjà 6 ans ! Le code est devenu assez mâture. Tellement qu'il faudrait VRAIMENT passer en Qt 5... Mais cette version n'est pas dénuée de nouveauté : Les tags (étiquettes) viennent rejoindre l'ensemble des fonctionnalités présentes. Il y a aussi quelques corrections de bugs.

Petit point faible côté empaquetage : seule la version GNU/Linux 64 bits est disponible. Il y a une version cross-compilée pour Windows qui malheureusement plante au démarrage (impossible de savoir pourquoi).

À priori, la version suivante ne sortira pas avant longtemps vu le peu de temps disponible que j'ai et de la maintenance/développement sur mes autres projets...

Wednesday, 27 May 2015
|
Écrit par
Grégory Soutadé

My configuration is a bit specific. I have an Apache server for PHP and Python stuff with nginx as a frontend (and for serving static files like this blog). This part seems normal for most of people. BUT, in my case, I want that the two servers write the access logs IN THE SAME FILE (/var/log/apache2/access.log)

I run a Debian stable on my server. With the previous version (7.0), all was fine, but, until Jessie (8.0), I found a very strange behaviour with my web statistics analyzer. I usually have from 60 to 80 visits per day. In may (after the upgrade to Jessie), I get only 2 or 3 visits per day, using only one subdomain. Plus, it's a period where I have no internet at home and no time to investigate...

Finally, I found the problem ! It's located in logrotate. The two files are :

/etc/logrotate.d/apache2

/var/log/apache2/*.log {
    daily
    missingok
    rotate 14
...
    postrotate
            if /etc/init.d/apache2 status > /dev/null ; then \
                /etc/init.d/apache2 reload > /dev/null; \
            fi;
    endscript
...
}

And /etc/logrotate.d/nginx

/var/log/nginx/*.log {
    weekly
    missingok
    rotate 52
...
    postrotate
            invoke-rc.d nginx rotate >/dev/null 2>&1
    endscript
}

The first one do a logrotate every day of all files in /var/log/apache2/*.log (that contains our . The second one, do only one logrotate every week. But, the most important line is located in postrotate. Why it's important ? Because it says to nginx and Apache "Now the log file has changed, close the previous and open the new one". Seems correct, but without that, nginx write in /var/log/apache2/access.log.1 and not /var/log/apache2/access.log until it gets rotated (after a week) because it will keep the handle on access.log that is renamed to access.log.1 by logrotate.

The solution is to add

invoke-rc.d nginx rotate >/dev/null 2>&1

In the postrotate section of /etc/logrotate.d/apache2 (after the if). Then, restart nginx :

systemctl restart nginx
Monday, 02 March 2015
|
Écrit par
Grégory Soutadé

EDITED : 10th August 2017 : Add jailbreak for Muse HD 2 6.3.2536 (thanks Lupin)

EDITED : 2nd August 2016 : Add jailbreak for Odyssey Frontlight 2 6.3.2322

EDITED : 27th july 2016 : Add jailbreak for Muse 6.3.2350

EDITED : 15th august 2015 : Add jailbreak_backup (suggested by niceguy)

EDITED : 12th august 2015 : Another problem with Odyssey jailbreak reported by niceguy.

EDITED : 21th july 2015 : Totally rework Odyssey jailbreak : key generation was bad

EDITED : 07th july 2015 : Seems not to work for firmware >= 2340. Add /lib/libutils.so.

EDITED : 28th may 2015 : Remove Orizon/Fallback support (now it's tested). Set Muse jailbreak to version 6.3.2326

EDITED : 2nd april 2015

Those who do not try to hack the Cybook Odyssey e-reader won't understand the title. In facts, Bookeen appends this sentence at the end of update files. Arrogant, isn't it ? Surely, but now it's outdated.

Bookeen primary delivers a full access to its e-readers. Unfortunately, since Odyssey one they became very proprietary while its concurrents (except Amazon) lets user modify the core system. Did the concurrents puts out of business ? No. They're still alive, and they sell more e-readers than Bookeen. Kobo ahead.

OK, stop doing politic and start hacking. It has been a hard work, but I finally did it : a Cybook Jailbreak.

This jailbreak installs dropbear (a SSH client/server) onto the e-reader and launch it at boot. It has been fully tested on Cybook Odyssey and Nolimbook HD+ (Muse) whatever the firmware version running. See notes for other Cybook versions.

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Downloads

Muse firmware should be compatible with Odyssey frontlight 2

Signature verification

gpg --verify SHA256SUMS.sign SHA256SUMS

My gpg key can be found here

Instructions

Rename downloaded files into CybUpdate.bin and copy it to the e-reader via USB. De-connect USB and start upgrade.

Once rebooted, activate Wifi and connect to the e-reader (you can find the IP address in your internet box/router web interface) :

ssh root@EREADER_IP

Password is root.

Those who uses Windows can download putty as SSH client.

Enjoy !

Tip : The e-reader goes to sleep after X minutes of inactivity and switch off Wifi, and thus SSH connexion. To avoid this problem, kill ebrmain and boordr (the first re spawn the second).

Notes for Ocean e-readers

The jailbreak has been fully tested on Cybook Odyssey and Muse/Nolimbook, but not on (Ocean) as I don't own one. Nevertheless, they share the same software and quite the same hardware. So, I'm quite confident it will works and, at least, there will be no difference.

To avoid breaking future upgrades from Bookeen, this jailbreak should only be installed with firmware 6.2.2316

In case of full success, you should be able to have root SSH access and use the update file as many times as you want.

Notes for Muse/Nolimbook/Odyssey essential/Odyssey frontlight 2 e-readers

The update format has changed and for my surprise it's more simple than the previous one. I saw that the whole flash is overwritten during an update. So, keep the jailbreak related to your current version.

If you want to make your own custom ROM, please read my another article How to make custom ROM for Cybook e-readers

Backup for Odyssey

Hacking Odyssey may lead to editing/removing files you should not. A backup jailbreak that contains a full factory image (+SSH server) is available for Odyssey readers. It willl only works if /boot has not been damaged !!

Hacking Muse

Alejandro Antúnez hacks basic display/event functions in combination with DirectFB, helping develop applications. Code and example are available on GitHub. A lot of thanks to him.

Legal notices

Providing a jailbreak is not a benign choice. I had a long reflexion before this and tried to know why Bookeen doesn't wants users access core system. The only response I got was "It's not scheduled".

Laws concerning copyright are complex and different in each country. France has its own who is called DADVSI (Loi relative au droit d'auteur et aux droits voisins dans la société de l'information) which is the transposition of European directives. It defines DRM and penal sentences. We can resume in some paragraphs (sorry, french only) :

Article 13

« Art. L. 331-5. - Les mesures techniques efficaces destinées à empêcher ou à limiter les utilisations non autorisées par les titulaires d'un droit d'auteur ou d'un droit voisin du droit d'auteur d'une oeuvre, autre qu'un logiciel, d'une interprétation, d'un phonogramme, d'un vidéogramme ou d'un programme sont protégées dans les conditions prévues au présent titre.

« On entend par mesure technique au sens du premier alinéa toute technologie, dispositif, composant qui, dans le cadre normal de son fonctionnement, accomplit la fonction prévue par cet alinéa. Ces mesures techniques sont réputées efficaces lorsqu'une utilisation visée au même alinéa est contrôlée par les titulaires de droits grâce à l'application d'un code d'accès, d'un procédé de protection tel que le cryptage, le brouillage ou toute autre transformation de l'objet de la protection ou d'un mécanisme de contrôle de la copie qui atteint cet objectif de protection.

Un protocole, un format, une méthode de cryptage, de brouillage ou de transformation ne constitue pas en tant que tel une mesure technique au sens du présent article.

« Les mesures techniques ne doivent pas avoir pour effet d'empêcher la mise en oeuvre effective de l'interopérabilité, dans le respect du droit d'auteur. Les fournisseurs de mesures techniques donnent l'accès aux informations essentielles à l'interopérabilité dans les conditions définies aux articles L. 331-6 et L. 331-7.

« Les mesures techniques ne peuvent s'opposer au libre usage de l'oeuvre ou de l'objet protégé dans les limites des droits prévus par le présent code, ainsi que de ceux accordés par les détenteurs de droits.

Article 14

« Art. L. 331-7. - Tout éditeur de logiciel, tout fabricant de système technique et tout exploitant de service peut, en cas de refus d'accès aux informations essentielles à l'interopérabilité, demander à l'Autorité de régulation des mesures techniques de garantir l'interopérabilité des systèmes et des services existants, dans le respect des droits des parties, et d'obtenir du titulaire des droits sur la mesure technique les informations essentielles à cette interopérabilité. A compter de sa saisine, l'autorité dispose d'un délai de deux mois pour rendre sa décision.

« On entend par informations essentielles à l'interopérabilité la documentation technique et les interfaces de programmation nécessaires pour permettre à un dispositif technique d'accéder, y compris dans un standard ouvert au sens de l'article 4 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l'économie numérique, à une oeuvre ou à un objet protégé par une mesure technique et aux informations sous forme électronique jointes, dans le respect des conditions d'utilisation de l'oeuvre ou de l'objet protégé qui ont été définies à l'origine.

« L'autorité a le pouvoir d'infliger une sanction pécuniaire applicable soit en cas d'inexécution de ses injonctions, soit en cas de non-respect des engagements qu'elle a acceptés. Chaque sanction pécuniaire est proportionnée à l'importance du dommage causé aux intéressés, à la situation de l'organisme ou de l'entreprise sanctionné et à l'éventuelle réitération des pratiques contraires à l'interopérabilité. Elle est déterminée individuellement et de façon motivée. Son montant maximum s'élève à 5 % du montant du chiffre d'affaires mondial hors taxes le plus élevé réalisé au cours d'un des exercices clos depuis l'exercice précédant celui au cours duquel les pratiques contraires à l'interopérabilité ont été mises en oeuvre dans le cas d'une entreprise et à 1,5 million d'euros dans les autres cas.

Article 21

« Art. L. 335-2-1. - Est puni de trois ans d'emprisonnement et de 300 000 EUR d'amende le fait :

1° D'éditer, de mettre à la disposition du public ou de communiquer au public, sciemment et sous quelque forme que ce soit, un logiciel manifestement destiné à la mise à disposition du public non autorisée d'oeuvres ou d'objets protégés ;

I think it's a good summary. The purpose of this jailbreak is to fully access a computer I OWN without damage it. Particularly, it do not help to get/read illegal content.

Tuesday, 10 February 2015
|
Écrit par
Grégory Soutadé

Logo gPass

Petit rappel : gPass est un gestionnaire de mot de passes en ligne. C'est une alternative libre à lastpass. Il permet d'héberger un serveur de mot de passe, qui stockera un mot de passe fort et unique pour chaque site web. Les mots de passes sont chiffrés par une "clé maître" que seul l'utilisateur connaît et sont remplacés à la volée dans le formulaire d'authentification.

Voici la version 0.6 de gPass. Outre les quelques modifications esthétiques de l'addon (ajout des icônes), l'apport majeur de cette version est la compatibilité avec le navigateur Chrome ! Ça a demandé un peu de travail, mais finalement ce n'était pas si compliqué.

Attention, Chrome est très pointilleux sur la sécurité, et le mélange des contenus normaux (http) et sécurisés (https) est mal vu. Il se peut donc que la démo ne fonctionne pas, car le certificat utilisé est auto signé. Donc, à moins de le rajouter explicitement, il risque d'y avoir des soucis.

Autre fonctionnalité "cachée" : les shadow logins (ou identifiants fantômes en français). C'est un mécanisme qui empêche un utilisateur mal intentionné de télécharger la base de données ou de la supprimer si celle-ci n'est pas protégée par une identification. En effet, au lieu de retourner directement les couples nom d'utilisateur/mot de passe (chiffrés bien sûr), le serveur retourne une "image". Il s'agit d'une suite aléatoire qui devra être chiffrée avec la clé maître pour obtenir un jeton d'accès, qui lui permettra de récupérer le couple sus-cité et de le supprimer si nécessaire.

Mais, comme cela requiert beaucoup de temps de processeur, c'est désactivé par défaut.

Les addons sont disponibles ici (firefox) et (Chrome). La partie serveur est à télécharger sur la page du projet.