surveillance fixes, index update, asm draft

This commit is contained in:
Pascal Engélibert 2024-11-29 17:34:50 +01:00
parent 98c468c6bb
commit 54b35e7aaf
6 changed files with 69 additions and 13 deletions

View file

@ -111,13 +111,14 @@ insert_anchor_links = "left"
* [GitLab Framagit](https://framagit.org/ZettaScript) (projektoj) * [GitLab Framagit](https://framagit.org/ZettaScript) (projektoj)
* [GitLab Duniter](https://git.duniter.org/tuxmain) (projektoj pri la libera mono) * [GitLab Duniter](https://git.duniter.org/tuxmain) (projektoj pri la libera mono)
* [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (aliaj projektoj pri la libera mono) * [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (aliaj projektoj pri la libera mono)
* [Gitea JSB](https://gitea.jeunes-science.asso.fr/tuxmain) (projektoj [Jeunes-Science Bordeaux](https://jeunes-science.asso.fr))
* [Gitxmn](https://git.txmn.tk/tuxmain) (etaj projektoj kiuj mi ne sciis kien publikigi) * [Gitxmn](https://git.txmn.tk/tuxmain) (etaj projektoj kiuj mi ne sciis kien publikigi)
* [GitLab Gnome](https://gitlab.gnome.org/tuxmain) * [GitLab Gnome](https://gitlab.gnome.org/tuxmain)
* [GitHub](https://github.com/ZettaScript) (malpreferata) * [GitHub](https://github.com/ZettaScript) (malpreferata)
<a href="https://liberapay.com/tuxmain/donate" title="Doni kun Liberapay"><img alt="Doni kun Liberapay" src="/img/liberapay-donate.svg"/></a> <a href="https://liberapay.com/tuxmain/donate" title="Doni kun Liberapay"><img alt="Doni kun Liberapay" src="/img/liberapay-donate.svg"/></a>
⬘ Doni en Ethereum al `0x5e2101A637b28e561432fda9ffADB2b0D12c2116`
## Pri {#pri} ## Pri {#pri}
🦀 Retejo generita kun [zola](https://www.getzola.org/). 🦀 Retejo generita kun [zola](https://www.getzola.org/).

View file

@ -111,13 +111,14 @@ insert_anchor_links = "left"
* [GitLab Framagit](https://framagit.org/ZettaScript) (projets en général) * [GitLab Framagit](https://framagit.org/ZettaScript) (projets en général)
* [GitLab Duniter](https://git.duniter.org/tuxmain) (projets pour la monnaie libre) * [GitLab Duniter](https://git.duniter.org/tuxmain) (projets pour la monnaie libre)
* [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (autres projets pour la monnaie libre) * [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (autres projets pour la monnaie libre)
* [Gitea JSB](https://gitea.jeunes-science.asso.fr/tuxmain) (projets [Jeunes-Science Bordeaux](https://jeunes-science.asso.fr))
* [Gitxmn](https://git.txmn.tk/tuxmain) (petits projets que je ne savais pas où mettre) * [Gitxmn](https://git.txmn.tk/tuxmain) (petits projets que je ne savais pas où mettre)
* [GitLab Gnome](https://gitlab.gnome.org/tuxmain) * [GitLab Gnome](https://gitlab.gnome.org/tuxmain)
* [GitHub](https://github.com/ZettaScript) (déprécié, conservé pour la rétrocompatibilité seulement) * [GitHub](https://github.com/ZettaScript) (déprécié, conservé pour la rétrocompatibilité seulement)
<a href="https://liberapay.com/tuxmain/donate" title="Donner avec Liberapay"><img alt="Donner avec Liberapay" src="/img/liberapay-donate.svg"/></a> <a href="https://liberapay.com/tuxmain/donate" title="Donner avec Liberapay"><img alt="Donner avec Liberapay" src="/img/liberapay-donate.svg"/></a>
⬘ Donner en Ethereum à `0x5e2101A637b28e561432fda9ffADB2b0D12c2116`
## À propos {#a-propos} ## À propos {#a-propos}
🦀 Site généré avec [zola](https://www.getzola.org/). 🦀 Site généré avec [zola](https://www.getzola.org/).

View file

@ -111,13 +111,14 @@ insert_anchor_links = "left"
* [GitLab Framagit](https://framagit.org/ZettaScript) (projects in general) * [GitLab Framagit](https://framagit.org/ZettaScript) (projects in general)
* [GitLab Duniter](https://git.duniter.org/tuxmain) (projects about libre currency) * [GitLab Duniter](https://git.duniter.org/tuxmain) (projects about libre currency)
* [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (also projects about libre currency) * [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (also projects about libre currency)
* [Gitea JSB](https://gitea.jeunes-science.asso.fr/tuxmain) (projects about [Jeunes-Science Bordeaux](https://jeunes-science.asso.fr))
* [Gitxmn](https://git.txmn.tk/tuxmain) (small projects I didn't know where to publish) * [Gitxmn](https://git.txmn.tk/tuxmain) (small projects I didn't know where to publish)
* [GitLab Gnome](https://gitlab.gnome.org/tuxmain) * [GitLab Gnome](https://gitlab.gnome.org/tuxmain)
* [GitHub](https://github.com/ZettaScript) (deprecated, used for backward compatibility only) * [GitHub](https://github.com/ZettaScript) (deprecated, used for backward compatibility only)
<a href="https://liberapay.com/tuxmain/donate" title="Donate with Liberapay"><img alt="Donate with Liberapay" src="/img/liberapay-donate.svg"/></a> <a href="https://liberapay.com/tuxmain/donate" title="Donate with Liberapay"><img alt="Donate with Liberapay" src="/img/liberapay-donate.svg"/></a>
⬘ Donate Ethereum at `0x5e2101A637b28e561432fda9ffADB2b0D12c2116`
## About {#about} ## About {#about}
🦀 Site generated with [zola](https://www.getzola.org/). 🦀 Site generated with [zola](https://www.getzola.org/).

View file

@ -0,0 +1,52 @@
+++
title = "Assembly cheatsheets"
date = 2024-10-24
description = "Some resources and cheatsheets about assembly"
insert_anchor_links = "left"
draft = true
[taxonomies]
tags = ["assembly"]
+++
<style type="text/css">
table code {
background-color: initial;
}
</style>
* [x86 Linux syscalls](https://syscalls32.paolostivanin.com/)
* [x86_64 Linux syscalls](https://syscalls64.paolostivanin.com/)
* [Another website with Linux syscalls](https://syscall.sh/)
* [x86 and x86_64 instruction reference](https://www.felixcloutier.com/x86/)
## Conditional jump
```asm
cmp A, B
jcc after
; conditionally executed code, see the table below
after:
```
| `Jcc` | code executed if | jump if |
|--------|----------|----------|
| `ja` | `A <= B` | `A > B` |
| `jae` | `A < B` | `A >= B` |
| `jb` | `A >= B` | `A < B` |
| `jbe` | `A > B` | `A <= B` |
| `je` | `A == B` | `A != B` |
| `jg` | `A <= B` | `A > B` |
| `jge` | `A < B` | `A >= B` |
| `jl` | `A >= B` | `A < B` |
| `jle` | `A > B` | `A <= B` |
| `jna` | `A > B` | `A <= B` |
| `jnae` | `A >= B` | `A < B` |
| `jne` | `A != B` | `A == B` |
| `jnb` | `A < B` | `A >= B` |
| `jnbe` | `A <= B` | `A > B` |
| `jng` | `A > B` | `A <= B` |
| `jnge` | `A >= B` | `A < B` |
| `jnl` | `A < B` | `A >= B` |
| `jnle` | `A <= B` | `A > B` |
| `jnz` | `A == B` | `A != B` |
| `jz` | `A != B` | `A == B` |

View file

@ -25,7 +25,7 @@ JavaScript is obviously not made for being used in webpages.
* no native HTML escaping function * no native HTML escaping function
* no native basic templating system (need `String.replaceAll("{{foo}}", foo)`) * no native basic templating system (need `String.replaceAll("{{foo}}", foo)`)
* no easy-to-use bytes array (like `Bytes` in Python or `Vec<u8>` in Rust), but many different bytes arrays with weird interfaces * no easy-to-use bytes array (like `Bytes` in Python or `Vec<u8>` in Rust), but many different bytes arrays with weird interfaces
* no native cryptographic tools if you aren't using HTTPS and satisfying other strange "security" requirements (you often end up inefficiently implementing SHA2 or AES in JS, while the browser natively uses OpenSSL) * no native cryptographic primitives if you aren't using HTTPS and satisfying other strange "security" requirements (you often end up inefficiently implementing SHA2 or AES in JS, while the browser natively uses OpenSSL)
* no native date/time string formatting * no native date/time string formatting
* When defining an anonymous function (such as a callback) you can't reliably move variables to it. * When defining an anonymous function (such as a callback) you can't reliably move variables to it.
@ -46,7 +46,8 @@ JavaScript doesn't respect anything.
``` ```
* Hence `==`, `===` and `if` have three distinct strictness levels. * Hence `==`, `===` and `if` have three distinct strictness levels.
* `&&` is not commutative: `(true && "2") === "2" && ("2" && true) === true` is true * `&&` is not commutative: `(true && "2") === "2" && ("2" && true) === true` is true
* It is even inconsistent: `"0" == false && "1" == true` is true... but so is `"0" && "1"`. * It is even inconsistent: `"0" == false && "1" == true` is true...
but so is `"0" && "1"`.
* Operators are inconsistent: we have both `"1"+1 === "11"` and `"1"*2 === 2` * Operators are inconsistent: we have both `"1"+1 === "11"` and `"1"*2 === 2`
* ```js * ```js
var n = "1"; var n = "1";
@ -67,10 +68,10 @@ JavaScript doesn't respect anything.
``` ```
* `document.getElementsByClassName` does not return an array: its return type supports indexing but not for/in loops. * `document.getElementsByClassName` does not return an array: its return type supports indexing but not for/in loops.
## Conclusion ## Conclusion
Let's deprecate JavaScript and replace it with better languages compiled into WASM. Let's deprecate JavaScript and replace it with better languages compiled into WASM.
However, plain HTML/CSS should *always* be prefered, for performance, compatibility and accessibility. Form inputs crafted with tons of CSS and JS are often unresponsive, not accessible to screen readers, incompatible with native features, inefficient. It is even worse for pages rendered in a canvas. Please use the wonderful possibilities offered by HTML5 and CSS3, and follow the accessibility recommendations by the [W3C](https://www.w3.org/WAI/) and [Mozilla](https://developer.mozilla.org/en-US/docs/Web). However, plain HTML/CSS should *always* be prefered, for performance, compatibility and accessibility. Form inputs crafted with tons of CSS and JS are often unresponsive, not accessible to screen readers, incompatible with native features, inefficient. It is even worse for pages rendered in a canvas.
Please use the wonderful possibilities offered by HTML5 and CSS3, and follow the accessibility recommendations by the [W3C](https://www.w3.org/WAI/) and [Mozilla](https://developer.mozilla.org/en-US/docs/Web).

View file

@ -15,7 +15,7 @@ Il est habituel que des expérimentations sécuritaires illégales ou dérogatoi
## Donnez la main à la police, elle vous arrache le bras ## Donnez la main à la police, elle vous arrache le bras
Quand la police reçoit un nouveau jouet avec un certain cadre légal, elle se permet de l'étendre à outrance. Par exemple le <a href="https://fr.wikipedia.org/wiki/Fichier_national_automatis%C3%A9_des_empreintes_g%C3%A9n%C3%A9tiques" target="_blank">FNAEG</a> (Fichier National Automatisé des Empreintes Génétiques) était destiné à identifier génétiquement les délinquants sexuels et les meutriers susceptibles de récidive, mais contenait en 2021 les empreintes génétiques de plus de 7,5% de la population française. Quand la police reçoit un nouveau jouet avec un certain cadre légal, elle se permet de l'étendre à outrance. Par exemple le <a href="https://fr.wikipedia.org/wiki/Fichier_national_automatis%C3%A9_des_empreintes_g%C3%A9n%C3%A9tiques" target="_blank">FNAEG</a> (Fichier National Automatisé des Empreintes Génétiques) était destiné à identifier génétiquement les délinquants sexuels et les meurtriers susceptibles de récidive, mais contenait en 2021 les empreintes génétiques de plus de 7,5% de la population française.
## Incompétence des décisionnaires ## Incompétence des décisionnaires
@ -27,11 +27,11 @@ Voir la conférence [Internet ou Minitel 2.0](https://framatube.org/w/9a8642c0-6
## C'est pour notre sécurité ## C'est pour notre sécurité
Toutes les occasions sont bonnes pour ajouter des caméras et de l'intelligence artificielle. L'exécutif se justifie généralemment de manière très confuse, prétendant que ces mesures auraient évité tel ou tel accident. Cette réponse est la plupart du temps disproportionnée, inadaptée et inefficace, alors que des solutions plus simples existent. Voir le <a href="https://www.laquadrature.net/2023/03/21/fiasco-du-stade-de-france-la-vsa-ne-masquera-pas-les-echecs-du-maintien-de-lordre/">fiasco du stade de France de 2022</a> qui est un exemple de mauvaise gestion de foule instrumentalisée pour promouvoir la vidéosurveillance algorithmique. Voir aussi <a href="https://invidious.fdn.fr/watch?v=mhLKT4D2YvI">comment ce genre de problème peut être évité (vidéos de Fouloscopie)</a> (spoiler&nbsp;: sans IA ni vidéosurveillance). Toutes les occasions sont bonnes pour ajouter des caméras et de l'intelligence artificielle. L'exécutif se justifie généralement de manière très confuse, prétendant que ces mesures auraient évité tel ou tel accident. Cette réponse est la plupart du temps disproportionnée, inadaptée et inefficace, alors que des solutions plus simples existent. Voir le <a href="https://www.laquadrature.net/2023/03/21/fiasco-du-stade-de-france-la-vsa-ne-masquera-pas-les-echecs-du-maintien-de-lordre/">fiasco du stade de France de 2022</a> qui est un exemple de mauvaise gestion de foule instrumentalisée pour promouvoir la vidéosurveillance algorithmique. Voir aussi <a href="https://invidious.fdn.fr/watch?v=mhLKT4D2YvI">comment ce genre de problème peut être évité (vidéos de Fouloscopie)</a> (spoiler&nbsp;: sans IA ni vidéosurveillance).
## Pédophiles et terroristes en épouvantail ## Pédocriminels et terroristes en épouvantail
Les motifs invoqués par les politiciens pour augmenter la surveillance et les moyens de censure sont généralement les luttes contre les violences sexuelles et contre le terrorisme. Une majorité des agressions sexuelles étant commise par des proches (conjoint, parent, camarade de classe, entraîneur sportif...), l'efficacité d'une surveillance des communications électroniques sera réduite. De plus, ces criminels sont plus motivés que la moyenne à trouver des systèmes de communication sûrs&nbsp;: la surveillance va donc toucher toute la population de manière disproportionnée, pour un bénéfice très faible. Les motifs invoqués par les politiciens pour augmenter la surveillance et les moyens de censure sont généralement les luttes contre la pédocriminalité et contre le terrorisme. Une majorité des agressions sexuelles étant commise par des proches (conjoint, parent, camarade de classe, entraîneur sportif...), d'autant plus quand la victime est un enfant, il ne s'agit pas en général d'inconnus chassant sur les réseaux sociaux. De plus, ces criminels sont plus motivés que la moyenne à trouver des systèmes de communication sûrs&nbsp;: la surveillance va donc toucher toute la population de manière disproportionnée, pour un bénéfice très faible.
## Sécurité des communications ## Sécurité des communications
@ -55,7 +55,7 @@ La vie privée doit être un droit individuel fondamental, et est nécessaire à
## Corruption et lobbyisme ## Corruption et lobbyisme
Beaucoup de décisions menant directement à plus de surveillance (par l'investissement dans des solutions de surveillance), ou indirectement (par le choix de solutions informatiques non respectueuses de la vie privée), sont le résultat d'un énorme lobyyisme de la part des GAFAM et compagnie auprès des décideurs à tous les niveaux, des écoles aux parlementaires. Beaucoup de décisions menant directement à plus de surveillance (par l'investissement dans des solutions de surveillance), ou indirectement (par le choix de solutions informatiques non respectueuses de la vie privée), sont le résultat d'un énorme lobbyisme de la part des GAFAM et compagnie auprès des décideurs à tous les niveaux, des écoles aux parlementaires.
On se souviendra notamment du [contrat open-bar entre Microsoft et l'Éducation Nationale](https://www.anticor.org/affaires-anticor/affaire-education-nationale-microsoft/), qui permet de graver le monopole de Windows dans les cerveaux des écoliers. Si toutes vos interactions avec l'informatique sont passées par des outils Microsoft (à l'école, à la maison, au travail), ces outils vous seront familiers et donc vous irez probablement les chercher spécifiquement, même si des alternatives existent. Est-ce votre choix&#8239;? Pas vraiment, puisque Windows est installé dans les écoles sans concertation et sans présentation des alternatives. On se souviendra notamment du [contrat open-bar entre Microsoft et l'Éducation Nationale](https://www.anticor.org/affaires-anticor/affaire-education-nationale-microsoft/), qui permet de graver le monopole de Windows dans les cerveaux des écoliers. Si toutes vos interactions avec l'informatique sont passées par des outils Microsoft (à l'école, à la maison, au travail), ces outils vous seront familiers et donc vous irez probablement les chercher spécifiquement, même si des alternatives existent. Est-ce votre choix&#8239;? Pas vraiment, puisque Windows est installé dans les écoles sans concertation et sans présentation des alternatives.