19 Jul 2014

feedPlanet Grep

Bert de Bruijn: GEM WS2 MIDI System Exclusive structure and checksums

MIDI is the standard for communication between electronic music instruments like keyboards and synthesizers. And computers! While tinkering with an old floppy-less GEM WS2 keyboard, I wanted to figure out the structure of their System Exclusive memory dumps. SysEx is the vendor-specific (and non-standard) part of MIDI. Vendors can use it for real-time instructions (changing a sound parameter in real-time) and for non-real-time instructions (sending or loading a configuration, sample set, etc.).

In the GEM WS2, there's two ways of saving the memory (voices, globals, styles and songs): in .ALL files on floppy, and via MIDI SysEx.

The .ALL files are binary files, 60415 bytes long. The only recognizable parts are the ASCII encoded voice and global names. The SysEx dumps are 73691 bytes long. As always in MIDI, only command start (and end) bytes have MSB 1, and all data bytes have MSB 0. The data is spread out over 576 SysEx packets, preceded by one SysEx packet with header information.

Each SysEx data packet starts with these bytes (decimal representation):



Because the original data (the WS2 memory and the .ALL file) has 8 bits per byte, and MIDI SysEx bytes can only have 7 bits (MSB 0), GEM uses an encoding to go from one to the other:
Seven 8-bit bytes have their LSB stripped, and the LSB's form byte number 8, from the first of seven bytes in the LSB of byte number 8, to the last of seven bytes in bit number 7 (128 decimal value).
Using this encoding, a group of 7 bytes from the .ALL format is transformed into a group of 8 SysEx bytes.

The length byte in each data packet indicates how many of those byte groups there are in the current data packet. Data is sent per 15 byte groups., resulting in a 127 byte SysEx packet, with the last data packet containing the remaining 6 byte groups. There's only five bytes in the .ALL format to fill the last byte group of the last data packet, and that byte group is padded with two FF(255) bytes.

The checksum byte is calculated as the XOR of all other bytes in the SysEx data packet, excluding the 240 and 247 start and stop bytes. When receiving a SysEx dump, the total XOR checksum of the bytes between 240 and 247 should therefore always be 0. (NB this is substantially different from the Roland way of doing SysEx checksums).

With this knowledge, I wrote a Perl script to convert .ALL files to SysEx (known as .syx) bytestreams. Owners of GEM WS1/WS2/WS400 keyboards who find themselves without floppies or without a working floppy drive can now load their .ALL files via a computer (with e.g. MIDI-OX or SysEx Librarian). If interested, send me an e-mail!




19 Jul 2014 10:10am GMT

17 Jul 2014

feedPlanet Grep

Lionel Dricot: Escale sur Samantha

samantha

Télécharger « Escale sur Samanta » :

Format .epub - Format .pdf

Jim reprit son passeport biométrique des pattes velues d'un douanier indigène de type arachnéen. D'un pas rapide, il rejoignit son collègue qui faisait le pied de grue, deux sacs aux couleurs de la Spatiale sur les épaules.
- Nom d'une nébuleuse Jim, qu'est-ce que t'as encore foutu ?
- Cette saloperie d'araignée devait me trouver louche je suppose; tu me refiles mon sac ?
- Bon, on a deux mille cycles à tuer avant le rembarquement et le retour.
- Deux mille cycles ? Une pleine semaine terrestre ? Bon sang, ça fait pas deux heures qu'on est là et ces espèces d'araignées me foutent déjà le cafard.
- Ah non, les cafards, c'était sur Sygmalia, en trente-deux.
- La fois où une partie de la cargaison a éclos pendant le déchargement ? Ne m'en parles pas, par pitié…
Les deux humains se faufilèrent vers la sortie parmi la masse grouillante du spatioport, se fiant aux symboles Universels tracés sur les murs. Le voyageur de l'espace inexpérimenté est toujours saisi par la foule cosmopolite d'un spatioport, ne pouvant parfois pas retenir son dégoût face à une Morue Larvaire du système Aural ou son étonnement face aux bulles irisées et fantomatiques que sont les Esprits de Nar.

Mais Jim et Tom parcouraient le cosmos depuis maintenant près de trente années terrestres. La faune de l'espace avait pour eux autant d'intérêt qu'un morceau de tarmac pour un chauffeur de camion. Ils respiraient l'atmosphère disponible sans sourciller pourvu qu'elle soit fournie en oxygène, ils mangeaient ce qu'on leur servait avec une moue blasée pourvu que cela contienne des protéines. Néanmoins, comme tout astronaute qui se respecte, il était un aspect des coutumes locales qu'ils ne se lassaient pas de découvrir dès que le temps entre deux chargements le permettait.

Tom franchit les portes battantes et renifla l'atmosphère extérieure de Samantha.
- Vingt-six mille cycles qu'on est dans cette boîte à conserve de malheur. Et encore le même nombre pour le retour. Je sens que je vais me payer une tranche de bon temps avant d'embarquer !
- Ouaip, je me demande ce qu'ils ont comme coutumes exotiques dans le coin.
- Quoi qu'il en soit, ça ne peut pas être pire que les espèces de cactus rêches de la mission passée. Absolument inadaptés à un mode de reproduction humanoïde.
- Tu crois qu'ils ont les fameuses limaces baveuses de Shling ? demanda Jim avec un petit sourire.
- Ah, les limaces de Shling. Qu'est-ce qu'elles puent celles-là.
- Clair, mais une fois que tu as passé ce stade, nom d'un réacteur, c'est diantrement bon.
- Oh oui ! Un peu dégueulasse mais, waw, les terriens ne savent pas ce qu'ils ratent.
- Tu m'as donné envie. Sors le guide et regarde si, à tout hasard, ils n'auraient pas un établissement avec des limaces de Shling dans ce bled pourri.
Tom sortit un petit ordinateur de sa poche et tapota rapidement.
- Raté. Mais il fallait s'y attendre. Samantha n'est pas exactement ce qu'on pourrait appeler une planète développée.
Une mandibule tira sur la manche de Jim.
- Permettez-moi de vous importuner, honorables visiteurs, je me présente, F'thang, guide touristique.
L'être étrange ressemblait à un scarabée qui aurait appris à se déplacer comme un bipède. Ses deux pattes inférieures se séparaient en plusieurs pieds très fins qui devaient lui assurer une grande stabilité. Sa voix sortait en curieux glapissements depuis un orifice situé sur son abdomen. Il avait prononcé son nom comme une onomatopée caverneuse rappelant le bruit d'un ressort qui se détend.
- J'ai cru comprendre que vous êtes à la recherche de nouveaux frissons d'ordre reproductif. Puis-je savoir de quelle planète vous êtes originaires ? Les modestes connaissances de F'thang vous guideront à travers les plaisirs insoupçonnables que recèlent Samantha.
- Combien ? demanda immédiatement Jim, en voyageur interstellaire aguerri.
- Seulement cinquante crédits votre magnificence.
Tom ne pût retenir une exclamation. Cinquante crédits ? Une paille ! La compagnie leur allouait mille crédits par journée d'étape. Cette planète bien loin des circuits traditionnels n'avait pas encore connu l'inflation consécutive à l'entrée dans la Fédération.
- Dix, dit calmement Jim d'un ton sans appel.
- Votre honneur, nous sommes en dehors des parcours touristiques et les étrangers sont bien rares sur Samantha. Je ne descendrai pas en dessous de quarante crédits. J'ai une couvée sur le point d'éclore et…
- Quinze maintenant et quinze à la sortie, si nous sommes satisfaits.
Jim tendit trois plaques aux couleurs de la Spatiale qui disparurent immédiatement sous la carapace chitineuse.
- Mes chers amis, poursuivit le scarabée, c'est un plaisir de faire affaire avec vous.
- Nous sommes de la planète Terre, étoile Solaire, quatrième quadrant. Qu'as-tu à nous proposer ?
- Ah, la Terre ! Merveille des merveilles. Suivez-moi formidables amis. C'est un honneur pour F'thang de guider des terrestres sur Samantha.
- Minute Machin, où nous emmènes-tu ?
De par leur métier, les astronautes sont une race d'hommes prudents. La ridicule somme de quinze crédits pouvait très bien n'être qu'une façon de gagner leur confiance pour les entraîner dans un recoin isolé afin de les dépouiller ou de les vendre comme esclaves, bien que la constitution de la Fédération l'interdise formellement. Ceci dit, la même constitution interdisait également la prostitution.
- Il n'est point besoin d'être méfiant mes valeureux voyageurs. Nous avons sur Samantha une race particulière, les Religieuses. Les Religieuses possèdent un mode de reproduction étonnant.
- Tom, vérifie dans le guide.
- Il a raison Jim. Le guide indique : « Les Religieuses de la planète Samantha possède un mode de reproduction particulièrement intense qui redéfinit la notion même d'orgasme et de plaisir. L'acte sexuel rappelle celui des Terrestres mais avec une magnitude d'un ordre de grandeur supérieure. Il est dit que plus d'un mâle a perdu la tête dans une bouffée orgasmique grâce au savoir-faire des Religieuses de Samantha. À réserver aux voyageurs expérimentés. »
- Ça me semble très appétissant tout ça.
- J'ai toujours rêvé de me faire une religieuse, murmura Tom, tu crois qu'elles ont des voiles ?
- Tais-toi, tu m'excites tellement que je vais me faire le scarabée avant même d'être arrivé.
Les deux compères éclatèrent d'un rire gras qui résonna dans les ruelles de la ville.
F'thang les introduisit dans un petit bâtiment à l'allure discrète. Le hall d'entrée était chaud et accueillant. Ce qui semblait être un banc était grossièrement sculpté à même le sol, des couloirs rayonnaient dans toutes les directions vers des niches évoquant les chambres d'un internat ou d'un monastère.
- Si mes honorables amis veulent bien se donner la peine, annonça F'thang en montrant un couloir d'une de ses pattes.
- Minute Truc, l'interrompit Jim. Nous n'allons pas ensemble. Pour notre espèce, la copulation se fait de manière individuelle. Nous exigeons une Religieuse pour chacun.
Le scarabée fit mine de réfléchir.
- Je ne sais pas si cela est possible. F'thang est très triste mais…
Jim tendit de nouveau trois plaquettes de cinq crédits. Elles disparurent aussi prestement que la première fois.
- …mais je pense que F'thang a une solution pour ne pas trahir la confiance des honorables étrangers.
Il prit Jim par le bras et lui désigna un couloir.
- Dans ce couloir, vous découvrirez le frisson ultime de l'extase et de la sensualité des Religieuses mon ami. F'thang est de retour dans une fraction de cycle pour indiquer un couloir libre à votre compagnon.
Le gros scarabée s'éclipsa.
- Qu'est-ce qu'on fait Tom ? On attend ?
- Vas-y Jim, je sais que t'en meurs d'envie. J'attendrai mon tour.
- T'es un pote toi tu sais.
Jim donna une claque virile sur l'épaule de son compagnon et s'engouffra dans le couloir avec un sourire concupiscent. Tom le regarda s'éloigner en s'asseyant sur le banc.
- Sacré Jim…
Un hurlement fît bondir Tom. La cigarette aux herbes qu'il était en train de préparer se répandit à ses pieds.
- Tiens bon Jim !
Le hurlement se changea en gargouillis visqueux et infâme. Tom se rua dans le couloir et sortit de sa botte un mince poinçon effilé. La Fédération interdisait et contrôlait strictement le port d'armes dans tous ses territoires, ce qui avait grandement contribué à la paix galactique. Néanmoins, un astronaute avait toujours un « outil » sur lui, au cas où…

La fine tige de métal serrée dans son point, Tom fit irruption dans une cellule aux murs nus et sans mobilier apparent. Devant lui se dressait un gigantesque corps insectoïde verdâtre. De gros yeux globuleux noirs se détachaient sur une petite tête perchée à plus de deux mètres du sol. Quatre pattes reposaient sur la terre battue mais les deux membres supérieurs se repliaient en une pince effilée de plus d'un mètre de long.

Tom resta bouche-bée une seconde.
- Nom d'un Quasar…
Il recula et son pied buta contre une petite masse compacte et sanglante qui le fixait dans un rictus de surprise. La tête de Jim !
- Par tous les cratères, Jim, ce cafard le paiera…
Il aperçut derrière la créature le corps décapité de son compagnon, affaissé dans une posture grotesque. Un éclair se fit dans son esprit.
- Lupanar ! Nous n'avions pas précisé à quelle race de terrestres nous appartenions ! Pour ces espèces de cloportes puants, la terre est avant tout un paradis d'insectes parasité par quelques humains encombrants.
Résolument, il fit face et tendit son outil dérisoire en direction de la Mante Religieuse géante.

F'thang remontait le long du couloir en appelant de sa voix stridulante.
- Honorable étranger, un autre couloir vous attend !
La tête de Tom vint rouler à ses pieds. Il la ramassa et contempla le visage contracté par la haine.
- Êtes-vous satisfait merveilleux ami ? Les religieuses de Samantha sont réputées pour donner les sensations les plus intenses de la planète. C'est un privilège rare que nous n'accordons qu'aux visiteurs les plus exigeants. F'thang lui-même n'a jamais vraiment compris ce mode de reproduction consistant à désolidariser le membre vertical supérieur du corps locomoteur. Votre race est bien particulière pour les pauvres yeux inexpérimentés de F'thang.
Devant le peu de réaction du crâne qu'il tenait entre les mains, il le replaça à l'entrée de la cellule, non loin du cadavre dégoulinant.
- Votre corps est ici tout près, je ne sais si vous en avez encore l'utilité. J'espère que vous n'oublierez pas les modalités de notre accord. Quinze crédits ne seraient pas de trop pour aider le pauvre F'thang et pour le remercier des splendeurs sublimes des Religieuses.
Pendant quelques secondes, il se dandina d'une patte sur l'autre. Dans la cellule, la Mante le regardait sans bouger. Pris d'une inspiration subite, il s'exclama :
- F'thang comprend ! Les étrangers ont mué et abandonné cette carcasse au cours de l'acte. F'thang soliloquait avec un corps vide. Les étrangers ont abusé de la crédulité de F'thang. Pauvre F'thang !
Il battit en retraite et s'éloigna dans le couloir en marmonnant.
- Pauvre F'thang. Pauvre, pauvre F'thang ! Voilà ce qui arrive de faire confiance à des étrangers aux moeurs incompréhensibles. F'thang se démène pour rendre service et F'thang se fait escroquer de quinze crédits. Pauvre, malheureux F'thang qui aurait tant eu besoin de quinze crédits. Misérable F'thang…

Waterloo, 15 janvier 2008. Photo par Iñaki Martinez de Marigorta. Soutenez l'écriture de mes mini-livres sur Patreon.

Merci d'avoir pris le temps de lire ce billet librement payant. Pour écrire, j'ai besoin de votre soutien. Suivez-moi également sur Twitter et Facebook !

Ce texte est publié par Lionel Dricot sous la licence CC-By BE.

flattr this!

17 Jul 2014 8:13am GMT

16 Jul 2014

feedPlanet Grep

Frank Goossens: Uploaded to Our Tube; IDRchitecture remixed by Nathan Fake

I love to listen to DJ-sets which are made for the radio (or the web) instead of the dancefloor. The music tends to be a lot more diverse if the DJ isn't focused on keeping the crowd in the groove. Soundcloud is a treasure trove for such DJ sets and a couple of months ago I bookmarked Nathan Fake's 6 mix as aired on BBC Radio 6 in December 2012.

Great stuff, but there was one track that I specifically enjoyed listening to; an unreleased remix of (Sign of the Fish) by IDRchitecture. I didn't know the band, didn't know the song -which reminds me of The Chills, somehow-, but the clicks and ticks in this remix are just mesmerizing.

So now it is on YouTube as well;
YouTube Video
Watch this video on YouTube or on Easy Youtube.

16 Jul 2014 3:12pm GMT

Lionel Dricot: Les prédictions de Goldman Sachs

yacht

Avant le début de la coupe du monde de football, la célèbre et influente banque Goldman Sachs avait tweeté son pronostic pour le déroulement de la compétition, prédisant une finale Brésil-Argentine. D'où vient cette prédiction ? Et quelles ont été les conséquences ? Une passionnante enquête de Ploum, agent-blogueur-secret !

prediction

Grâce à quelques billets adroitement placés dans les poches de certains portiers, j'ai pu me faufiler jusqu'à la fête célébrant la finale que donne Isidor Side sur son yacht privé. Isidor Side, le gourou « Market & Prediction » de chez Goldman Sachs. Rendu particulièrement volubile par les coupes de champagnes, il m'invite à venir prendre l'air sur le pont. C'est là que je décide de rentrer dans le vif du sujet.
- Alors, ces prédictions pour la coupe du monde ? Comment as-tu fait ?
- J'ai utilisé le même modèle que pour les simulations de l'économie mondiale. Tous les facteurs sont pris en compte, y compris les probabilités de corruption, les sautes d'humeur des joueurs. En fait, c'est même beaucoup plus facile que l'économie car il n'y a que trente-deux équipes !
- Et ça marche ?
- Infaillible ! C'est infaillible !
Il titube un instant sur le pont et adresse un regard lubrique à deux créatures qui sont au féminisme ce que Goldman Sachs est à la lutte des classes. Je tente de réaccaparer son attention.
- Pourtant les résultats…
- Avait-on prédit l'Argentine en finale, oui ou non ?
- Oui, reconnais-je à contre-cœur. Mais après avoir battu l'Équateur, le Portugal et l'Espagne. L'Espagne, elle, aurait battu l'Italie et la Croatie. Toutes des équipes qui n'ont même pas passé le premier tour !
- Avait-on prévu une demi-finale Allemagne-Brésil, oui ou non ?
- Oui mais votre modèle prévoyait la victoire du Brésil.
Je vois qu'il commence à s'énerver. L'alcool le désinhibe et il fait de grands moulinets avec ses bras. Il me tend brusquement son smartphone.
- Regarde ! Ce sont les statistiques du match Allemagne-Brésil !

gerbra

Il commence à déclamer sur un ton véhément :
- 51% de possession de balle pour le Brésil. 18 tirs au but dont 13 cadrés pour respectivement 14 et 12 à l'Allemagne. 7 corners à 5. Et le gardien brésilien n'a du faire que 5 arrêts pour 12 au gardien allemand. Cela prouve bien que le Brésil était la meilleure équipe sur le terrain. Notre modèle est donc parfaitement juste !
Étonné, je jette rapidement un œil sur mon propre smartphone.

Screenshot_2014-07-09-13-45-23

Tout est juste ! Ses statistiques sont exactes. Curieusement, je constate qu'il lui manque le score final. Pour ne pas le vexer, je tente d'enchaîner.
- Et l'Espagne ? Le modèle la voyait en demi-finale et elle a probablement été une des grandes déceptions de ce tournoi.
Il me lance un regard excédé avant de pousser un profond soupir d'exaspération.
- Bon sang, ce n'est quand même pas la mer à boire ! C'est comme l'économie mondiale ! Nous produisons des modèles étudiés, précis, millimétrés. Tout le monde est d'accord : les pays, les banques, les grandes entreprises, les dirigeants. Tout le monde reconnait notre expertise. Mais si les joueurs n'y mettent pas un peu du leur et commencent à faire ce qu'ils veulent, comme ils veulent, on n'arrivera nulle part. Chacun doit faire un effort sinon cela deviendra le chaos, que dis-je, l'anarchie !
Il est complètement exalté, transfiguré.
- On se tue à faire tourner l'économie et quelques anarchistes qui s'auto-proclament « le peuple » veulent détruire toute la société ! Des paresseux, des feignants ! S'il y a des règles et des gouvernements, c'est pour les respecter. Nous sommes en démocratie !
Dans un sinistre gargouillement, il ponctue sa tirade d'un vomissement par dessus le bastingage. Il se relève en essuyant sa bouche et me regarde d'un air étonné. Il semble avoir recouvert une partie de sa lucidité.
- Mais au fait, qui êtes-vous ? Comment êtes-vous monté sur mon bateau ?
Je réponds d'un rire nerveux mais je sens que le moment est venu de tirer ma révérence. Alors qu'il se retourne pour appeler la sécurité, j'arrache ma chemise de smoking, révélant ma combinaison d'apnée. D'un geste, j'enjambe le bastingage et saute dans les flots noirs avant de disparaître dans la nuit.

Photo par Vanessa Hall. Pour mes prochaines enquêtes, n'hésitez pas à contribuer à mes frais de smoking et champagne. Et puis, pour rester dans le sujet, je vous invite à lire ce billet sérieux au sujet des observables.

Merci d'avoir pris le temps de lire ce billet librement payant. Pour écrire, j'ai besoin de votre soutien. Suivez-moi également sur Twitter et Facebook !

Ce texte est publié par Lionel Dricot sous la licence CC-By BE.

flattr this!

16 Jul 2014 2:00pm GMT

Wouter Verhelst: Reprepro for RPM

Dear lazyweb,

reprepro is a great tool. I hand it some configuration and a bunch of packages, and it creates the necessary directory structure, moves the packages to the right location, and generates a (signed) Debian package repository. Obviously it would be possible to all that reprepro does by hand-by calling things like cp and dpkg-scanpackages and gpg and other things by hand-but it's easy to forget a step when doing so, and having a tool that just does things for me is wonderful. The fact that it does so only on request (i.e., when I know something has changed, rather than "once every so often") is also quite useful.

At work, I currently need to maintain a bunch of package repositories. The Debian package archives there are maintained with reprepro, but I currently maintain the RPM archives pretty much by hand: create the correct directories, copy the right files to the right places, run createrepo over the correct directories (and in the case of the OpenSUSE repository, also run gpg), and a bunch of other things specific to our local installation. As if to prove my above point, apparently I forgot to do a few things there, meaning, some of the RPM repositories didn't actually work correctly, and my testing didn't catch on.

Which makes me wonder how RPM package repositories are usually maintained. When one needs to maintain just a bunch of packages for a number of servers, well, running createrepo manually isn't too much of a problem. When it gets beyond own systems, however, and when you need to support multiple builds for multiple versions of multiple distributions, having to maintain all those repositories by hand is probably not the best idea.

So, dear lazyweb: how do large RPM repositories maintain state of the packages, the distributions they belong to, and similar things?

Please don't say "custom scripts" ;-)

16 Jul 2014 10:43am GMT

Thomas Vander Stichele: morituri 0.2.3 ‘moved’ released!

It's two weeks shy of a year since the last morituri release. It's been a pretty crazy year for me, getting married and moving to New York, and I haven't had much time throughout the year to do any morituri hacking at all. I miss it, and it was time to do something about it, especially since there's been quite a bit of activity on github since I migrated the repository to it.

I wanted to get this release out to combine all of the bug fixes since the last release before I tackle one of the number one asked for issues - not ripping the hidden track one audio if it's digital silence. There are patches floating around that hopefully will be good enough so I can quickly do another release with that feature, and there are a lot of minor issues that should be easy to fix still floating around.

But the best way to get back into the spirit of hacking and to remove that feeling of it's-been-so-long-since-a-release-so-now-it's-even-harder-to-do-one is to just Get It Done.

I look forward to my next hacking stretch!

Happy ripping everybody.

flattr this!

16 Jul 2014 4:01am GMT

15 Jul 2014

feedPlanet Grep

Xavier Mertens: Offline Malware Analysis with Host-Only VirtualBox Networks

OfflineFollowing the presentation that I made at the RMLL 2014 last week, I slightly changed my malware analysis setup. The goal is to make it fully operational "offline". Indeed, today we are always "on", Internet is everywhere and it's easy to get a pipe. However, sometimes it's better to not send packets to the wild Internet, even more when playing with malwares. We can be connected to a network with restricted access and some "exotic" ports won't be authorized (ex: IRC). By allowing malicious code to connect to the world, we could trigger some firewalls, IDS or IPS if working in a corporate environment. If the malware is targeting a specific company or country, it can be suspicious to flood the C&C or any other resource with suspicious traffic (in this case, we are suspicious for the attacker). In short, "to live happy, live hidden" ;-)

My setup is running on IOS because I'm always carrying my MB with me but it is easily reproducible in a classic Linux environment. To capture all traffic and redirect to fake services, you just need to run a shinkhole DNS which will answer to all queries with a configured IP address. To run the DNS and the services, the best tool (IMHO) is called INetSim or "Internet Services Simulation Suite". It's a Perl script which can emulate all basic network services (HTTP, SMTP, FTP, etc) and even respond with valid transactions. No need to deploy the Perl script and all its dependencies, just install a special Linux distribution called REMnux. It is a specific Linux image bundled with plenty of tools to perform malware analysis and one of them is… INetSim of course!

As suggested in the Cuckoo documentation, I'm using a host-only network (192.168.38.0/24) for communications between Cuckoo and its guests. My first idea was to deploy REMnux in the same network but… For VirtualBox, a host-only network is very specific and hosts are talking directly to each others. It's not possible to put an interface in promiscuous mode and sniff the traffic! Michael Boman is a blogger very active in the Cuckoo community and he wrote last year an interesting article which describes how to sniff remotely. Interesting but I prefered to test another configuration as seen on the figure below:

Cuckoo Network

(Click to enlarge)

I created in VirtualBox a second host-only network (192.168.39.0/24) and moved the REMnux host to this network. At OSX level, I enabled the IP forwarding to allow packets to be routed across the two subnets. The Cuckoo guest was reconfigured to use the new REMnux IP address as DNS resolver. I have now the following config:

INetSim is configured to always return the REMnux IP address and to respond (+log) to all classic services. Cuckoo is still configured to sniff on the first host-only network (vboxnet0) but, strange behavior, it sees only the incoming traffic (fortunately which is the most important for DNS request - HTTP(S) GET/POST). I'm still looking for tips or ideas to capture packets in both direction. OSX has also a pecific syntax for tcpdump to allow the packet capture to run on multiple interfaces:

  # tcpdump -i pktap,vboxnet0,vboxnet1 ...

But Cuckoo does not work with a sniffing interface format like this (the reporting fails and aborts). If somebody has an idea… Anyway, this setup allows me analyse malicious pieces of code without sending any traffic to the Internet.

Note: when you completed the analysis, saved the guests and exited Cuckoo, don't forget to disable IP forwarding!

15 Jul 2014 9:27pm GMT

Tom De Vylder: Creating a bunch of Gitlab group projects using a Ruby wrapper

Quick and dirty way to create a bunch of group projects using the Gitlab API.

15 Jul 2014 2:54pm GMT

Frank Goossens: WP DoNotTrack whitelist & WordPress/ Jetpack stats

Although the number of pageviews of this blog already decreased from approx. 2100 pageviews per week before mid May to 1300 pv/week after (I never thought I'd ever be hit by a Panda), yesterday was an absolute disaster. Turns out that Automattic changed the domain of the Jetpack stats tracking pixel to pixel.wordpress.com, which WP DoNoTrack (for which I pushed out a small update in May) blocked as that domain was not whitelisted. The downside of white- instead of blacklisting.

15 Jul 2014 1:54pm GMT

12 Jul 2014

feedPlanet Grep

Lionel Dricot: Le copyright vaut désormais plus que la vie humaine

crashtest

L'industrie du copyright a réussi un tel lavage de cerveau avec ses campagnes contre le piratage que nous en perdons tout sens commun. Au point d'être prêt à sacrifier des vies au nom du sacro-saint copyright. Aujourd'hui, dans notre pays. La propriété intellectuelle tue.

Vous avez peut-être déjà vu cette vidéo néo-zélandaise visant à sensibiliser les automobilistes sur les conséquences d'une vitesse inappropriée. La campagne a fait un buzz et la sécurité routière française a donc décider de reprendre l'idée pour une campagne similaire en France.

Au fond, cela semble très logique. Si une idée fonctionne bien dans un pays pour sauver des vies, autant tenter de faire pareil partout dans le monde. N'importe quel humaniste irait même jusqu'à applaudir les Français pour avoir pensé à aller chercher ailleurs des idées qui ont fait leur preuve.

Du moins c'était avant que, vingt années durant, l'industrie du copyright nous assène à longueur de films, à longueur d'introductions de DVD, à longueur d'attaques en justice que « copier, c'est voler ».

La preuve avec cet article, même pas un éditorial mais bien un article journalistique publié sur le site lalibre.be. Sous le titre « La sécurité routière française en manque d'inspiration ? Il reste le plagiat ! », le journaliste attaque vertement la sécurité routière française et conclut par ces mots :

Manifestement pas gêné de repomper à ce point sur leurs confrères néo-zélandais, Jean-Robert Lopez, délégué interministériel à la sécurité routière, explique au Figaro que "c'est une campagne qui a bien marché en Nouvelle-Zélande, qui a eu un gros retentissement". Et de légitimer en une phrase, au nom de l'efficacité d'une campagne, un plagiat éhonté.

Le ton est clair. La vie et la dignité humaine ont complètement disparu de l'esprit des défenseurs du copyright. Nous sommes donc entrés dans la dernière phase du deuil d'une industrie : la plus violente, celle où tous les coups sont permis. Celle où l'humain ne compte plus face à la sauvegarde d'un business model périmé. Ne tentons même pas de souligner qu'il s'agit de la reprise d'une idée assez générique, même pas du film lui-même. Le copyright a détruit les cerveaux et les cœurs, il fonctionne en mode zombie.

J'aurais été heureux, en tant que citoyen néo-zélandais, de savoir qu'une partie de mes impôts avait servi à créer une telle campagne publicitaire. J'aurais été heureux, en tant que citoyen français, de voir mes impôts servir à réaliser une belle adaptation. Je suis honteux, citoyen belge, de voir mes impôts soutenir une presse qui, chaque jour, nous rappelle sa nocivité.

J'ai vu des professeurs refuser de partager leurs notes de cours avec des collègues sous prétexte de « propriété intellectuelle ». Aujourd'hui, la santé de Peter Sunde se dégrade de façon alarmante car il est en prison pour… pour quoi encore ? Il ne le sait pas, son acte d'accusation ne le mentionne pas (une longue histoire que je vous invite à lire). Et aujourd'hui, je viens d'avoir la preuve définitive que les vies humaines, la logique rationnelle ne compte plus dès qu'il s'agit de plagiat.

Le plagiat ou le piratage, moi je l'appelle « partage ». Et, comme vient de le démontrer l'inhumanité de ce journaliste, il peut sauver des vies. Il peut rendre le monde meilleur.

Nous ne sommes pas les mannequins de crash test de l'industrie du copyright. Nous ne pouvons accepter que des intérêts financiers limitent la diffusion des idées qui sauvent des vies. Penser au monde que nous construisons pour nos enfants et pour l'humanité est peut-être plus important que nos mesquins petits intérêts financiers à court terme.

Alors je réagis avec mon seul pouvoir : mon portefeuille. Je ne vais plus au cinéma. Je n'achète plus aucun bien culturel lié à l'industrie du copyright. Je fuis les médias subventionnés. Je fais en sorte de ne pas donner un seul centime, à part mes impôts obligatoires, à tout ceux qui pervertissent l'humanité en tentant d'endiguer le partage naturel et bénéfique. À la place, je donne à ceux qui partagent librement. Bref, je suis un pirate. Par humanisme. Par nécessité. Parce que ne pas l'être est devenu intolérable.

Photo par Aaron Brazell.

Merci d'avoir pris le temps de lire ce billet librement payant. Pour écrire, j'ai besoin de votre soutien. Suivez-moi également sur Twitter et Facebook !

Ce texte est publié par Lionel Dricot sous la licence CC-By BE.

flattr this!

12 Jul 2014 3:47pm GMT

Dieter Adriaenssens: GetBack GPS 0.3 is released

Get the latest version on F-Droid.

Arrow pointing to destination and compass indicating North


GetBack GPS v0.3 is now available. It adds a realtime compass and detects your travel direction. This way the arrow pointing to your destination will still point in the right direction, even when travelling backwards.
And there are some small UI improvements.

The app is now also available in Danish, Brazilian Portuguese, Traditional Chinese and French. A big thanks to the translators and supporting services!

A complete list of features and available languages is available on the website.


12 Jul 2014 11:15am GMT

11 Jul 2014

feedPlanet Grep

Dieter Adriaenssens: Remove bars from Android screenshots

How to remove the Status Bar at the top and return/home/screens button bar on the bottom/side from Android screenshots, using commandline ImageMagick.

Portrait screenshot

Command :

convert -size 1080x1920 -extract 1080x1700+0+75 original_screenshot.png screenshot_after.png


1080x1920 is the original size of the image (portrait)
1080x1700 is the new size, +0+75 the x and y offset where the extraction starts
(sizes may differ if you have a phone with a different screensize and resolution)


Result:

Original portrait screenshot, before cropping
After cropping

Landscape screenshot

Command :

convert -size 1920x1080 -extract 1792x1005+0+75 original_screenshot.png screenshot_after.png


1920x1080 is the original size of the image (landscape)
1792x1005 is the new size, +0+75 the x and y offset where the extraction starts

(sizes may differ if you have a phone with a different screensize and resolution)


Result:

Original screenshot (landscape), before cropping


After cropping


11 Jul 2014 1:40pm GMT

09 Jul 2014

feedPlanet Grep

Xavier Mertens: RMLL 2014 Security Track Wrap-Up

RMLL 2014I'm just back from Montpellier where was organised the 2014's edition of the RMLL ("Rencontres Modiales des Logiciels Libres") or LSM in English ("Libre Software Meeting"). This is a huge event similar to the FOSDEM in Brussels where people who love free software exchange views, researches and make some networking. The event location changes every year and this edition was organised in the south of France… not a bad place! The event is huge and is organized across a whole week, attracting a few hundreds of people. Within the main event, other small events are organised and talks are divided in multiple topics like:

And, of course, security! I attended the security talks presented on Monday and Tuesday. Here is my quick wrap-up.

I started the Monday with an exception: My first choice was not in the security track but looked very interesting to me: Christophe Hamerling performed some drone hacking. The presentation title was "Hackin the (AR-)Drone" and focussed on the well-known Parrot device. In fact, the drone was a good opportunity for Christophe to learn how to use the Node.js platform. After a small introduction, he explained that the protocol used by the drone to communicate with the remote controller was reverse-engineered and a framework was created based on Node.js to take control of it. The rest of the presentation was based on demos how to take control of the drone and get interesting data from his sensors:

AR-Drone

Another interesting project is called ardrone_autonomy. It allows you to script actions which will be performed by the drone. It can be compared to a Logo game from the 80's. The materiel presented by Christophe is available here. It was a entertaining presentation to start the day but nothing related to really "hacking" the drone. It was more programming but the effect is present when you click on "Take off" in a web interface and the drones executes.
Then I moved for the rest of the day to the security track which was mainly dedicated to Netfilter and IDS/IPS during the first afternoon. Pablo Neira presented the successor of Iptables: Netfilter from a user perspective. What will change with Netfilter? Compared to Iptables, it has a nice API, do not have code duplication like Iptables, is expendable outside kernel space and allows more flexible configurations. Today, ~35% of the Iptables features have already been implemented in Netfilter. It is included in the Linux kernel since version 3.13 (October 2013) and remains under active development. It offers also a nice CLI interface and gets rid of the "-" parameters. Multiple chains can contain tables without specific semantic and chains are fully configuration.
nftables Command Line
Netfilter has multiple selectors:
Pablo gave many useful information about Netfiler which might soon replace our good old Iptables with all the fancy new features! The project is still under heavy development and Pablo asked to download the code, test it and report bugs. More information is available here.

To continue with Netfilter, Arduro Borrero presented his project called "nft-sync". The idea is to have a good tool to properly (and safely) distributed Netfilter configuration across multiple firewalls (ex: a cluster of x nodes) or to manage multiple policies for multiple firewalls. The tool has already a public API for remote management. Its main features are:

nft-sync is still a proof-of-concept supported by Google as a GSoC project. More information is available here.

Eric Leblond made two presentations. The first one was an overview of the integration of Netfilter with an IPS. To follow on the same subject, Eric demonstrated how easy it is to configure Netfilter to talk with an IDS like Suricata.

Eric on Stage

The old way (with Iptables) was to use NFQUEUE and configure "nfq" in Suricata (forget Snort which does not implement this feature). On the other side, Netfilter can do this easily by defining a new chain dedicated to filtering. It's easy as creating two chains with different priorities. After a short coffee break, Eric came back with his second presentation about a very important topic when you create and manage firewall policies: logging! Iptables had already some feature to log via Syslog but it's not very sexy and remains difficult to parse. The next generation of solution to log Iptables events was via ulog & ulogd. The daemon has many ways to output events. The most common being into a SQL database and to a PCAP file. With ulogd2, new features were introduced like an improved DB support. ulogd2 can also log volumes of data (interesting if you need to perform some accounting) and can log NAT transformations. Eric also demonstrated how to sent Netfilter events into Kibana to produce nice dashboards.

Next talk was presented by Victor Julien, the lead developer of the Suricata project. Again, Netfilter was addressed and Victor reviewed how to integrate Netfilter with Suricata. This IDS has so many features that it's impossible to list them. The complete list in available here.

Victor on Stage

Balazs Scheidler presented an open source software called Zorp. It's an proxy firewall which is able to filter up to the application layer. Keep in mind that today: "HTTP is new TCP". We have to deploy tools to inspect the HTTP traffic and not only on port 80! An interesting feature, New Zorp features can be added using Python. Balazs gave as example an module to inspect the Facebook chat sessions.

Balazs on Stage

And, to close the first day, Victor Julien came back to present his Iptables based firewall manager called "Vuurmuur". For the story, "Vuur" means "Fire" in Dutch and "Muur" means "Wall". This project was started a long time ago when Victor decided to learn programming. The second goal was to provide to his colleagues who did not have a strong Iptables background, a nice tool (nurses based) to manage the firewalls by themselves. The tools is not upgraded often (the last release is from 2009) but Victor has still some ideas to add features. This closes the first day.

The second day started with Stéphane Bortzmeyer (from the AFNIC) who spoke about DNSSEC. He started with a small review of the DNS. It provides:

Stéphane on Stage

DNS suffers of many threats. Two first cannot be mitigated by DNSSEC:

But the following are addressed by DNSSEC:

First (but old) improvement, TSIG ("Transaction SIGnature") protects you against malicious zone transfers. It's already commonly used. TSIG a shared secret, so it's difficult to deploy massively. It cannot protect the "last mile" (distributing the shared secret to all clients is unmanageable). The DNSSEC basics are:

Tip: DNSviz.net is useful to see the chain of trust. Example: http://dnsviz.net/d/dns.be/dnssec/. Of course, free software support DNSSEC:

Based on Stéphane's experience with DNSSEC, the main problem is not the "technical" deployment of DNSSEC. It can be achieved in a few minutes - there are tutorials everywhere on the Internet - but the procedures that must be implemented around DNSSEC. Example: Don't forget your signature expiration. It is mandatory to have a good planning:

A good overview of DNSSEC by Stéphane!

The next talk was about the Haka language by Mehdi Talbi. Haka is an open source security oriented language. The context where Haka can be interesting: Today we need to develop network parsers to analyse new attacks and interact with network flows (log them, generate alerts or modify them on the fly).The idea behind Haka is also to allow people to write such filters without writing C code. Haka has the following security rules:

The Haka Architecture

Haka works with LUA scripts. Here is an example of rule which replace images by lolcats in an HTTP stream:

  local image_ext = { '.png', '.jpg', '.gif' }
  
  haka.rule{
      hooks = { 'http-request' },
      eval = function (self, http)
          local request = http.request
          local path = request:split_uri()['path'] or ''
          for _,ext in pairs(image_ext) do
              if string.match(path, ext .. '$') then
                  -- Ready to lolcat the web? :)
                  -- Redirect request to server hosting a lolcat image
                  request.uri = "http://myserver/lolcat.jpg"
                  break
              end
          end
      end
  }

Another nice demo was injecting Javascript in HTML code. Nice demo: injectponies.lua http://panzi.github.io/Browser-Ponies/. This is a very interesting tool to play with if you already have a server capturing your network traffic (or on a proxy).

After a short coffee break, Eric Leblond came back on stage with a third topic: How to use IDS/IPS to effectively perform attack detection. Interesting features, file extraction, TLS handshake analysis (to prevent bad stories like Diginotar). Lot of logging: HTTP request, TLS certificate log, DNS logging and Lua scripting allow to write rules in a easier way. Suricata rules can become very complex. Suricata 2.0 has new features:

Eric analysing passwords

The new feature that was reviewed by Eric is how to improve logging and reporting. By combining the new EVE logging feature with ELK (Elasticsearch, Logstash and Kibana), it is possible to build very sexy dashboards (as Eric said: "Defensive security can also be sexy!"). Eric demonstrated how easy it is to get interesting stats. His example was based OS detection. In the RFC's, the start value of a TCP window is not specified. It means that each operating systems is free to use any value. By example, Windows 7 SP1 uses a TCP window of 8192 bytes. This information can be used to authenticate the different OS which are sending traffic to your network. Using Kibana, it's easy to play the TCP windows and he detected some unusual accesses like Chines in his demo. This highlighted connection from China to the port 22 but always from the same port (6000). The scanner used was based on raw sockets and connections were not initiated by the OS itself. The next step was to write a honeypot in SSH to log all probes. Eric called this the "French hospitality". Excellent example to demonstrate how to get most of your IDS and logs!

Christian Perez and Solange Gentil reviewed their practical experience with Snort in a real environment at the CEA Cadarache. I found this presentation very interesting because it described a real implementation of a free solution with real (read: business) constraints. Usually, talks presented during security conferences are based on proof-of-concepts, studies. In this case, it was based on real facts.

Solange on stage

The goal of the Snort deployment was multiple:

Once the architecture in place, they faced some recurrent threats:

To improve the detection of suspicious traffic, Solange explained that Snort is feed with the following rule sets:

They also added IP reputation and geo-localisation. For internal IP addresses reconnaissance, they used the existing CMDB. This proves that your logs must be correlated with external sources to increase the detection accuracy! Solange and Christian's talk demonstrated that, properly deployed, a Snort (read: an IDS) instance can be very useful. However:

A very nice practical return of experience!

After a sunny lunch break outside, Ninon Eyrolles talked about the obfuscation of code or "know your enemy!". Usually obfuscation is used to "hide" some code. This aspect is at the opposite of the message broadcasted by the RMLL - the code must be free and open. But she demonstrated that understanding how obfuscation is used and how to detect it can be very helpful.

Ninon on stage

In fact, obfuscation is found at many levels: In malwares, in DRM implementation (protection of sensitive data) and is also doing cool stuff on encryption. To break something, you need to understand how it is made. Ninon gave more focus will be on two obfuscation techniques:

Ninon reviewed different techniques likes loop unrolling, inlining of functions, junk code insertion. And, for each technique, she explained the weaknesses and some detection techniques. This is not a key topic for me but the presentation was very clear and didactic!

The next slot was assigned to… myself. I made a presentation about malware analysis based on a free toolbox. It was not only the analyse of malicious code but also how to automate the scanning process and how to extract juicy information to correlate them with your other security solutions (IDS, firewalls, SIEM, etc). My slides are available here.

Lunar followed me with a presentation about Tor. But the presentation quickly switched to a Q&A session regarding Tor. The topic was very interesting and the room assigned to the security track crowded with many people sitting on the ground. A good proof that Tor remains a very hot topic. Some numbers about Tor:

There was very interesting questions and the conversations were really good. Some important information if you're a Tor user (or plan to start your own exit node):
  • Don't run a node personally (run it under an association)
  • Don't run a node at your home, run it in a datacenter / on a VPS
  • Don't use a browser other than TorBrowser. Regular browser have weaknesses which will disclosed sensitive information about you.

Lunar speaking about Tor

A classic issue when nodes and exit-nodes are deployed: they are hosted in big autonomous systems (as seen on the Tor Diversity map). This increases the chances to use multiple hops in the same network. If the starting and exit points are controlled by the same network, this is risky. Conclusions: new nodes must be deployed on new networks!

The last talk of the day was the one of Daniel Faucon who spoke about the instant messaging clients and their lack of privacy. Often, instant messaging users say "Why encrypt? Why privacy? I've nothing to hide!". This is of course a complete fail! As said Daniel, for most of us, our primary threat is not the NSA but our ex-boy|girlfiriend, our employer, parents or neighbours! Another example, in some countries, the disclosure of a sexual orientation can be vey dangerous. Why is chat an interesting target? Because it is a main communication media between people and that generates a lot of qualitative information about you. And "qualitative" information means at a certain point "quantitative" information…

Daniel speaking about security IM

Daniel reviewed the history of cryptography to come to the conclusion that current tools are excellent from a security point of view but they suxx for average users. Think about PGP: it's not easy to understand how it works for non-IT people. Daniel explained the basics of OTR ("Off-the Record Messaging") and how it can improve our privacy. OTR advantages are:

Based on this, OTR leads to "Plausible deniability" which can be helpful in case of a court trial but not always! Finally, Daniel reviewed some clients which are OTR compatible (or have an existing plug-in):
  • Instant messaging clients: Pidgin, Jitsi
  • IRC clients: irsii-otr, weechat-otr , chatsecure (IOS or Android)

But the main restriction of OTR is that it protect 1-2-1 conversations only. Multiparty-OTR is one of the solution. Crypto.cat software currently use the Multiparty Protocol for group conversations. If solutions exist, they're not intensively used. Why? Like PGP, it remains complex. Skype & Facebook are so easy and one click away from you. Daniel's conclusions are:

In the evening, a security track dinner was organized with all the speakers. Another good opportunity to meet people and have very interesting converstations.
Security track dinner

Unfortunately, I was not able to attend the third day. I flew back to Belgium this morning. You can watch the live stream and on-demand videos (soon) on video.rmll.info. Except a small glitch with the room reservations, the event was well organized, kudos to the security track team: @cbrocas, @doegox and @moutane.

09 Jul 2014 9:58am GMT

08 Jul 2014

feedPlanet Grep

Wouter Verhelst: HP printers require systemd, apparently

printer-driver-postscript-hp Depends: hplip
hplip Depends: policykit-1
policykit-1 Depends: libpam-systemd
libpam-systemd Depends: systemd (= 204-14)

Since the last in the above is a versioned dependency, that means you can't use systemd-shim to satisfy this dependency.

I do think we should migrate to systemd. However, it's unfortunate that this change is being rushed like this. I want to migrate my personal laptop to systemd-but not before I have the time to deal with any fallout that might result, and to make sure I can properly migrate my configuration.

Workaround (for now): hold policykit-1 at 0.105-3 rather than have it upgrade to 0.105-6. That version doesn't have a dependency on libpam-systemd.

Off-hand questions:

All this feels like another case of overengineering, like most of the *Kit thingies.

Update: so the systemd package doesn't actually cause systemd to be run, there are other packages that do that, and systemd-shim can be installed. I misread things. Of course, the package name is somewhat confusing... but that's no excuse.

08 Jul 2014 6:15pm GMT

07 Jul 2014

feedPlanet Grep

Christophe Vandeplas: Mactime magic with ELK

This is an article of a series to show the power of Elasticsearch, Kibana and Logstash (ELK) in the domain of Incident Handling and forensics.

This article contains what you need to import mactime data in your ELK setup.
If you don't have a running ELK, you can install it in 20 minutes with the help of this article.

All the files are stored on my github repository: https://github.com/cvandeplas/ELK-forensics

Mactime search GUI

As you can see in the screenshot below the aggregations and graphs give you a lot better view on your timeline. In a glimpse of an eye you'll see what are the top file names and extensions for your search, you'll see how the MACB characteristics are distributed over the search results and will be able to locate evilness a lot faster...

Read below to see how this can be done in less than 5 minutes.

Logstash configuration

Create the mactime configuration by placing this file in your /etc/logstash/conf.d directory.

To import data, execute the following command:

cat /home/chri/computername.mactime | nc -vv -n 127.0.0.1 18001

Then reload the configuration by executing restart logstash.

Kibana dashboard

First download the json dashboard file from here.
Now open the Kibana webinterface. On the top right click the load/open icon, then hover over "Advanced". Now select the file you would like to import.
Then click on the save icon to store it in your database and you're ready to go!

Using the dasbhoard / Examples

The following terms can be used for searching:


07 Jul 2014 5:35am GMT

06 Jul 2014

feedPlanet Grep

Frank Goossens: Terug uit Kreta

zwembad, zon en boekenErg van een weekje verlof in Kreta genoten. Het was er wel heel erg warm, er zaten tientallen oorverdovende krekels rond het zwembad en het landschap was betrekkelijk dor.

Maar ik heb een fantastisch boek gelezen ("Het Puttertje" van Donna Tartt), heb me op mijn 45-ste eindelijk over mijn angst om in een zwembad te duiken heen kunnen zetten (al was het nog geen schoonspringen) en genoot er van om elke dag naar de winkel te fietsen; bijna 4km kilometer bergaf, een dubbele espresso aan de zee, wat eten kopen en dan weer 4km zwetend, puffend maar uiteindelijk zegevierend bergop.

En met vrouw en dochter in en aan het zwembad hangen en 's avonds samen lekker gaan eten, hoe ontspannend kan een vakantie zijn?

06 Jul 2014 10:11pm GMT