Fermer2
deleted2Le 10/04/2013 à 21:53
Je pense depuis longtemps à pouvoir faire tourner des programmes PedroM-only sous AMS, parce que c'est pas possible de le faire. Voici le fruit des mes réflexions, que j'ai soumises sur IRC :
[10/04/2013 21:38:58] <Folco> Je crois que j'ai trouvé le moyen de faire tourner des programmes PedroM-only sous AMS, et ce sans hacker
[10/04/2013 21:39:05] <Folco> Evidemment, c'est un sacré trick
[10/04/2013 21:39:33] <Folco> Il faut écrire un programme appelé pedrom, qui exporte les fonctions de la libc de PedroM
[10/04/2013 21:41:35] <Folco> Quand un programme détecte AMS alors qu'il est PedroM-only (ro, pas de relogement, argv/argc, extension ram_throw)
[10/04/2013 21:42:33] <Folco> il appelle le programme pedrom via le vecteur $34 (kernel::exec)
[10/04/2013 21:44:23] <Kevin_Kofler> Et ton programme "pedrom" doit déprotéger la FlashROM en exécution pour que ça marche…
[10/04/2013 21:45:11] <Folco> pedrom s'auto-référence en tant que lib via Libs::Begin, modifie la signature du kernel, redirige rom_throw, crée argc/argv
[10/04/2013 21:45:45] <Kevin_Kofler> Oui, mais il doit aussi copier le programme en RAM (même s'il dit être ro) si la FlashROM n'est pas déprotégée.
[10/04/2013 21:45:57] <Kevin_Kofler> Sinon, bonjour barre noire. ^^
[10/04/2013 21:46:21] <Folco> Ah, donc un programme en ro ne peut pas se lancer sous AMS ? Faut que PpHd le recopie au moins en RAM sous AMS
[10/04/2013 21:46:32] <Folco> Parce que sinon, c'est mort d'entrée effectivement
[10/04/2013 21:46:50] <Kevin_Kofler> L'idée de ro est que c'est fait pour les libs de données, pas pour du code.
[10/04/2013 21:46:57] <Kevin_Kofler> Du moins à la base.
[10/04/2013 21:47:07] <Folco> Yep. Mais j'ai étendu la base grin
[10/04/2013 21:47:18] <Kevin_Kofler> Faudrait un flag "ro sous PedroM seulement", mais je ne sais pas s'il reste des flags disponibles…
[10/04/2013 21:47:31] <Folco> Tu m'autorises à poster cette conversation, ce post exclu, sur yN, pour avoir des avis, dont celui de PpHd ?
[10/04/2013 21:47:38] <Folco> Je crois qu'il reste un flag
[10/04/2013 21:48:28] <Folco> Oui, le bit 7 des flags est libre
[10/04/2013 21:48:34] <Kevin_Kofler> Il n'y a que 8 flags en tout il me semble, mais il se peut bien qu'il y en ait effectivement un de libre.
[10/04/2013 21:48:45] <Folco> (je viens de vérifier)
[10/04/2013 21:49:33] <Kevin_Kofler> OK[10/04/2013 21:49:51] <Folco> Merci. J'inclue les lignes sur le flag.

[10/04/2013 21:51:14] <Kevin_Kofler> Et tu peux poster cette discussion sur yN, il n'y a rien de problématique dedans (enfin, j'espère qu'on n'aura pas droit à des trolls sur le code de déprotection :-/ ).
[10/04/2013 21:51:51] <Folco> Ah, le OK était pour les flags. Merci alors grin

PpHd, quid d'un flag ro pedrom-only ? Quid de recopier en RAM les programmes ro sous AMS, sans rien y changer pour autant (relogements éventuels, BSS, etc...) ? Parce qu'en fait, un programme PedroM-only pouvant être ro, il est même pas lançable sous AMS s'il est archivé...