Catégorie : Non classé

Pulpe – No Attitude (PC Intro 1997)

Janvier 1997, après la The Party’96 au Danemark, aXs nous propose de fusionner Ketchup Killers, TFL-TDV et Kloon pour former le groupe Pulpe. Nous acceptons même si nous sommes attaché à notre ancien groupe.

Lorsque il s’agir de produire quelque chose pour la Wired’97, c’est donc sous cette banière que nous sortons notre intro 64k. Deuxième démo mais déjà la dernière pour moi jusqu’à ce jour).

No Attitude

aXs étant un des organisateurs de la Wired’97, c’est seul que je réalise le code pour cette intro (même si il nous fournira le plasma qu’il avait utilisé dans une précedente production). Darkangel et Cray fourniront respectivement musique et graphisme.

Je garde la couleur brune, qui rappele un peu Ketchup Killers Commander et essaye d’y mettre un semblant de rébellion: la no attitude.

La demo avait fait grande impression pour sa partie raytracing (seule partie faite en C de l’intro) et nous avait placé à la 3ème place de la Wired’97. Le manque de concurrence et le fait que nous faisions partie de l’équipe organisatrice a dû un peu aider…

Find my iPhone

Vous êtes un utilisateur Apple (ou juste iPhone)…. Que diriez-vous de trouver la position des vos périphériques en ligne de commande.

Find My iPhone

Tout d’abord, on installe le package python de gestion iCloud (nécessaire pour accèder à Find My iPhone)

sudo apt-get install python3-pyicloud

Cela installe l’executable /usr/bin/icloud accessible en ligne de commande.

Vous avez fait le plus dur 😉

Après on se connecte via:

icloud --username=votreemail@apple.com

Cela vous demandera le mot de passe (ainsi que le 2FA si vous l’avez activé)

Et finalement,

icloud --username votreemail@apple.com --list

Cela vous donnera la liste de tous vos périphériques:

Name - mon iPhone XS Max
Display Name  - iPhone XS Max
Location      - {'isOld': False, 'isInaccurate': False, 'altitude': 0.0, 'positionType': 'Unknown', 'secureLocation': None, 'secureLocationTs': 0, 'latitude': -10.485812, 'floorLevel': 0, 'horizontalAccuracy': 5.0, 'locationType': '', 'timeStamp': 1642795063024, 'locationFinished': True, 'verticalAccuracy': 0.0, 'locationMode': None, 'longitude': 105.629562}
Battery Level - 0.9100000262260437
Battery Status- NotCharging
Device Class  - iPhone
Device Model  - iphoneXSMax-1-4-0
------------------------------
...

Est-ce que cela ne pourrait pas être la base d’une horloge des Weasley ?

Afficher une fichier .csv

Vous voulez afficher un fichier .csv ? C’est facile. Voila:

cat fichier.csv

Quoi ? Cela ne vous suffit pas ?

Pour le bien de cet article, nous irons un peu plus loin et utiliserons une application kivabien(tm).

Cette application se nomme ccsvv.

Il faudra recompiler les sources (le package ne fonctionne pas sur la dernière version de ubuntu mate… mais vous pouvez toujours essayer sur votre distribution).

Pour l’exemple, nous afficherons le fichier /etc/passwd. Ce fichier n’est pas séparé par des virgules, mais par des doubles points. Nous utiliserons donc l’option -d pour afficher le fichier.

ccsvv /etc/passwd -d ':'

Ce qui nous donne:

L’application permet aussi de filtrer l’affichage via la touche /. Est-ce que cela n’est pas beau ?

À l’usage, je lui trouve qu’un seul défaut: les lignes horizontales qui séparent les champs sont trop présentes. Mais rien de rédhibitoire.

Capture d’avion

Nous continuons nos aventures SDR. Aujourd’hui, nous ferons un tour dans les airs. Normal pour un récepteur radio, me direz vous. Mais allons plus haut que d’habitude: à 10.000 mètres d’altitude !

L’expérience du jour se fera autour de l’ADS-B (Automatic dependent surveillance-broadcast). Il s’agit du système de surveillance coopératif pour le contrôle du traffic aérien. Chaque avion émet périodiquement (toutes les dix secondes en vol et toutes les secondes en approche) sa position GNSS (GPS, Galileo, …). Cela permet aux contrôles au sol de surveiller le ciel et aux autres avions de connaitre leur entourage. Avec ce système, plus besoin de radar.

L’emission des messages se fait en 1090 MHz, fréquence qui est très bien gérée par le tuner R820T2 présent dans notre NooElec NESDR Nano 2+’ et non cryptée.

Une antenne spécifique est conséillée, mais celle de base suffit déjà à capter quelques émissions.

Pour capturer les messages ADS-B, nous passerons par l’application dump1090.

Il est préférable de compiler la version disponible sur GitHub. Il existe le paquet dump1090-mutability dans le repository Debian mais il n’est plus maintenu depuis 5 ans.

git clone https://github.com/flightaware/dump1090
cd dump1090
make

Pour le lancer:

./dump1090 --interactive

Logiquement, vous devriez vite voir des avions apparaître sur votre écran assez rapidement.

Si vous voulez allez plus loin, vous pouvez partager vos données ADS-B sur FlightRadar24.

(c) Pexels - Torsten Dettlaff

Le protocole SMTP

Quel est le protocole réseau le moins sécurisé ? ftp ? http ? Oui, mais il y a pire. Si vous avez lu le titre, vous savez déjà duquel je veux parler: le protocole smtp !

Ce protocole, non sécurisé donc, permet d’envoyer un mail à n’importe qui en se faisant passer pour quelqu’un d’autres. Pas de vérifications, rien. Il prend n’importe quel contenu et l’envoie directement.

Alors, on fait comment ?

$ telnet smtp.monserveur.be 25
Trying 123.45.67.8...
Connected to smtp.monserveur.be.
Escape character is '^]'.
220 smtp4-h2.monserveur.be ESMTP Postfix
HELO test.domain.com
250 smtp4-h2.monserveur.be
MAIL FROM:<donald@trump.com>
250 2.1.0 Ok
RCPT TO:<monadresse@email.be>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Mon sujet
Bonjour toi !
.
250 2.0.0 Ok: queued as 4322F2221DF
quit
221 2.0.0 Bye
Connection closed by foreign host.

Maintenant, regarder votre dossier email pour monadresse@email.be. Est-ce que cela ne vous fait pas peur ?

Après, certains noms de domaines obligent l’expediteur à utilser l’extension SMTP-AUTH qui comporte une étape d’authentification. Mais au final, cela ne garantit pas l’usurpation d’identité (le spoofing)…

La prochaine fois que vous recevez un mail, souvenez-en vous et ne faites confiance qu’aux mails sécurisés via PGP et S/MIME. Mais ceci est une autre histoire, qui sera contée une autre fois.

(c) Pexels – Brett Sayles

Scan réseau

Vous trouvez nmap trop long pour afficher tous les périphériques de votre réseau ?

Pour réaliser un scan, nmap ping chaque ip. Cela prend un peu de temps.

apt-get netdiscover

netdiscover, celui que nous allons utiliser (vous venez de taper son nom pour l’installer, non ?), réalise un scan arp.

Il envoye des paquets ARP (très léger) de demande d’identification. Qui a l’adresse IP 192.168.1.1 ? Qui a l’adresse IP 192.168.1.2 ? Tout cela en même temps. Et après, il attend… Les périphériques envoyent alors leur mac-adresses (entre autres) et netdiscover rassemble le tout.

sudo netdiscover -r 192.168.1.0/24 -i wlan0

Lors de son utilisation, faites attention à ne pas vous faire attraper par un switch un peu tatillon qui pourrait se sentir agressé par votre broadcast ARP.

netdiscover permet evidemment d’autres choses (par exemple, juste une écoute passive sur le réseau via l’option -p)

(c) Pexels – Anete Lusina

Polytech – 3eme partie

⚠ AVERTISSEMENT : Toutes les informations fournies dans cette publication le sont à des fins éducatives uniquement. Le site n'est en aucun cas responsable de toute utilisation abusive de ces informations. Vous êtes seul responsable de vos actes devant la loi.

3ème partie des aventures Polytechnicienne.

Je continue avec ma fameuse disquette de boot.

J’ai quelques manquements dans mes souvenirs à propos de cette anecdote. J’espère que je ne dirai pas trop de bétises.

Pendant mes explorations des interruptions du PC, j’étais tombé sur la fonction 25h de la bien connue interruption 21h. Cette fonction permet d’intercepter n’importe quel autre interruption. Pour mon résident (GREY.COM), j’allais dévier les fonctions 05h, 1Ch, 28h de l’int 21h. Si vous vous rappelez de ces interruptions (et je vous en félicite), vous devriez avoir compris qu’il y a un problème dans les fonctions que je dévie. Sinon, je continue:

La 05h est appelée lors d’une sortie caractère vers l’imprimante,
La 1Ch est appelée lors d’une demande d’information de l’unité de disque,
La 28h est appelée lors d’une écriture vers un fichier

Dans la fonction redirigée 05h, je lis le clavier, rempli un buffer et rend la main à la fonction 05h originale.
Dans les fonctions 1Ch et 28h, si mon buffer n’est pas vide, j’écris dans un fichier log les appuis claver et rend la main. Ainsi, l’utilisateur ne se rend pas compte qu’il y a un accès disque supplémentaire (nous étions sur disquette, cela se voyait assez vite). Ca, c’est en théorie, j’expliquerai plus tard que ce n’était pas le cas.

Mon problème est donc ma fonction 05h. Pourquoi donc est-ce que je lisais le clavier à cet endroit ? Est-ce que chaque appui d’une touche provoquait une int21h fct05h ? J’ai testé mes applications dans une DOSBox et tout fonctionne toujours.

Le programme résident ne sauvegardant que les scancodes, il fallait un convertisseur scancode -> ascii. Et là, deuxième inconnue: il ne lit pas un fichier mais directement l’emplacement mémoire du résident (de plus, la fonction d’écriture vers un fichier dans le résident est inactive). C’était la tâche du deuxième programme: LIT.EXE.

Pour ce qui est du convertisseur, un troisiéme programme (CARSET.EXE) transformait le scancode en symbole compréhensible à l’écran.

Pour accèder à la mémoire LIT.EXE devait être lancé sur l’ordinateur de la victime en esperant qu’il n’éteigne pas son PC en quittant le local.

Cela semble logique vu qu’ils me rendaient ma disquette boot dès qu’ils étaient connectés mais ce n’était vraiment pas pratique. Ca expliquerait aussi que je m’en suis peu servi. Mon seul souvenir à son propos est d’avoir eu le mot de passe d’un étudiant de 2ème (angusmac) qui était tous les jours dans la salle informatique avec nous.

Je me demande ce qu’il reste de ces interruptions sur un PC moderne. Connaissant Microsoft, ils n’ont certainement pas tout jeté. J’ai essayé de lancer GREY.COM en ligne de commande sous un Window 10 mais il m’indique ‘Applications 16 bits non prise en charge‘.

Mes deux années de Polytech ne m’ont pas apporté un diplôme mais elles m’auront au moins servi à manipuler l’assembleur x86, qui me servira beaucoup quelques années plus tard dans ma période demomaker……

Une souris sur iPad

Une souris sur iPad ? Depuis iPadOS 13.4, c’est assez facile. Mais comment faire sur un iPad qui ne supporte pas cet OS ou simplement sur iPhone ? Impossible me direz-vous. Steve Jobs (et Apple) n’en voulait pas !

Faux, vous répondrai-je ! (Heureusement, sinon ce post aurait été fort court)

Ce miracle a pu se produire sans que Apple ne puisse l’interdire grâce à mon grand ami BLE4.

Pour ceux qui ne connaissent pas, BLE4 (Bluetooth à basse consommation version 4 – en anglais : Bluetooth Low Energy) permet d’établir un lien bidirectionnel entre deux périphériques de manière sécurisée et très facilement niveau programmation. Cela pourrait faire l’objet d’un prochain post (ou même de plusieurs vu tout ce que j’ai à dire sur cette technologie).

Deux modèles de souris existent:

  • la Citrix Plus X1,
  • la SwiftPoint GT.

La première ressemble à la une souris standard et est supporté dans quelques application dont la plus connue est celle de son constructeur: Citrix Receiver.

La deuxième, mon choix, est plus petite. Cela constituait déjà un gros avantage pour moi. Mais ce qui m’a fait définitivement pencher vers elle est que son API est disponible et que donc un tas d’application peuvent l’utiliser (entre autre Jump – un client VNC et RDP ou Horizon, le client VDI de VMware).

En plus, elle est aussi reconnu par un PC ou un MAC à l’aide de son dongle.

Utilisation du Digispark en AZERTY

⚠ AVERTISSEMENT : Toutes les informations fournies dans cette publication le sont à des fins éducatives uniquement. Le site n'est en aucun cas responsable de toute utilisation abusive de ces informations. Vous êtes seul responsable de vos actes devant la loi.

Si vous avez lu le précédent article sur le Digispark, vous savez maintenant envoyer des chaines de caractères automatiquement.

Mais vous vous êtes sans doute rendu compte (je l’avais bien précisé en plus), que le mapping des caractères est incorrect. Le Digispark pense que vous êtes en QWERTY alors que ce n’est peut-être pas le cas.

Heureusement pour nous, Ernesto a pensé a cela. Sa version DigisparkKeyboard est multilangue

La modification se fait facilement en remplaçant le contenu du répertoire $PWD/Library/Arduino15/packages/digistump/hardware/avr/1.6.7/libraries/DigisparkKeyboard par le contenu de https://github.com/ernesto-xload/DigisparkKeyboard.

cd ~/Downloads
git clone https://github.com/ernesto-xload/DigisparkKeyboard.git
cd DigisparkKeyboard/src
cp * $PWD/Library/Arduino15/packages/digistump/hardware/avr/1.6.7/libraries/DigisparkKeyboard

Vérifiez aussi que le tableau ascii_to_scan_code_table commencent bien par BS Backspace dans les fichiers digi_be_be.h et digi_fr_fr. Si ce n’est pas le cas, effacez les 8 valeurs en trop. J’ai fais un pull request pour les effacer mais elles n’ont pas encore été prises en compte.

Quand vous avez fait cela, il suffit de mettre un de ces #define au début de votre sketch (avant le #include « DigiKeyboard.h »)

#define kbd_fr_fr           // Pour l'utilisation sur un système dont le clavier est AZERTY FR
#define kbd_be_be           // Pour l'utilisation sur un système dont le clavier est AZERTY BE

Amstrad

Depuis un peu plus de 2 ans, je crée des jeux sur cette machine dans le groupe Crazy Piri. Sur le site de notre groupe, j’avais commencé quelques cours pour expliquer comment développer en C sur le CPC. Je n’ai pas continué suite à l’indifférence des visiteurs. Je ne sais pas si c’est dû à la faible visibilité du site ou alors parce que tout le monde s’en moque.

Ces derniers jours, j’ai déplacé ces cours ici pour leur donner un deuxième chance. Si cela vous intéresse, je pourrais reprendre ces cours. À vous de me le dire

Dans le dernier post, je citais RVM, WinAPE et CrocoDS en tant qu’émulateur Amstrad.

Si on s’intéresse à Linux, nous remarquons que, malgré ce que l’on pourrait penser, nous sommes assez gâtés.

  • CPCEmu de Marco Vieth (dont la première version date de… 1996 et tournait sur un 386SX. Un des premiers émulateurs Amstrad CPC). Il n’est pas open source, mais fonctionne assez bien sur tous les OS. Actuellement, il est le seul à simuler l’interface wifi M4. Il ne lui manque que le support du CPC+.
  • CPCEC de CNGsoft (ou son fork GTK de NoRecess)
  • Retro Virtual Machine de Juan Carlos González Amestoy (assez lourd, mais doté d’une belle interface, compatible Dandanator et avec un outil de debug assez agréable. Mon préféré sous macOS)
  • Sugarbox de Thomas Guillemin

Et si vous ne voulez pas installer d’émulateur, à l’heure actuelle, les browsers et javascript sont largement assez puissants que pour faire fonctionner un émulateur Amstrad en ligne. Parmi ceux-ci, CrocoDS, le mien, est disponible en ligne et fonctionne aussi bien sur smartphone que sur les navigateurs récents et est compilé en WebAssembly grâce à Emscripten.

CrocoDS n’est pas encore assez complet que pour l’utiliser pour du développement. Cela va changer bientôt, mais ceci est une autre histoire, qui sera contée une autre fois.