Vous pouvez utiliser un canal secondaire, mais vous ne pouvez rien en faire de utile autre que d'attaquer la sécurité du navigateur!
Le plus proche des adresses virtuelles sont les ArrayBuffers.
Si une adresse virtuelle dans un ArrayBuffer est identifiée, les adresses restantes sont également connues, car les adresses de la mémoire et les indices du tableau sont linéaires.
Bien que les adresses virtuelles ne soient pas elles-mêmes des adresses physiques de mémoire, il existe des moyens de traduire une adresse virtuelle en une adresse physique de mémoire.
Les moteurs de navigateur allouent toujours les ArrayBuffers de manière alignée sur les pages. Le premier octet de l'ArrayBuffer se trouve donc au début d'une nouvelle page physique et a les 12 bits de poids faible les plus significatifs mis à '0'.
Si un grand morceau de mémoire est alloué, les moteurs de navigateur utilisent généralement mmap pour allouer cette mémoire, ce qui est optimisé pour allouer des pages énormes transparentes (THP) de 2 MB au lieu de pages de 4 KB.
Comme ces pages physiques sont mappées sur demande, c'est-à-dire dès que le premier accès à la page se produit, parcourir les indices du tableau entraîne des interruptions de page au début d'une nouvelle page. Le temps pour résoudre une interruption de page est significativement plus long qu'un accès mémoire normal. Ainsi, vous pouvez savoir à quel index du tableau une nouvelle page de 2 MB commence. À cet index du tableau, la page physique sous-jacente a les 21 bits de poids faible les plus significatifs mis à '0'.
Cette réponse n'essaye pas de fournir une preuve de concept car je n'ai pas le temps pour cela, mais je pourrais le faire dans le futur. Cette réponse est une tentative de pointer dans la bonne direction la personne posant la question.
Sources,
http://www.misc0110.net/files/jszero.pdf
https://download.vusec.net/papers/anc_ndss17.pdf
0 votes
Par "intégré dans une application normale", voulez-vous dire que vous avez une page web avec du Javascript incorporé ?
0 votes
Non, cela ne fonctionne pas sur le navigateur, il n'y a pas de pages web impliquées. Le moteur JavaScript fait partie d'une application de bureau normale.