Suite à une revue de Gnome 2.6, j'ai installé Muine, un logiciel musical pour Gnome.
C'est confectionné sous Mono. Première fois que je vois un truc en gtk-sharp.
Bon, c'est alors qu'un rapide ps me sort qqs lignes du type :
/usr/bin/mono /usr/share/dotnet/muine/muine.exe
Outre l'utilisation du nom dotnet, qui pourra faire l'objet d'attaques par la suite, l'extension .exe m'a surpris. Unixien de la première heure (hum), je ne me laisse pas impressionner par une extension.
Un petit file plus tard, je deviens encore plus perplexe :
$ file /usr/share/dotnet/muine/muine.exe
/usr/share/dotnet/muine/muine.exe: MS Windows PE 32-bit Intel 80386 console executable
$
La curiosité l'emportant, je vim le bidule, et là, horreur, qu'est-ce que je vois ?
« This program cannot be run in DOS mode. »
Je suis sur le cul. Mono, en fait c'est un bidule qui nous met des .exe ? C'est la fin du ELF ? Merci de bien vouloir m'expliquer.
PS : le meilleur pour la fin :
$ ls /usr/share/dotnet/muine/
AmazonSearchService.dll muine.exe
$
# Peut etre une piste...
Posté par Edouard Gomez (site web personnel) . Évalué à 6.
[^] # Re: Peut etre une piste...
Posté par bmc . Évalué à 4.
Un PE-i386, c'est quoi ? Un « conteneur » ? C'est un bidule qui enrobe le code lui-même, qui serait dans une section un peu plus loin ? Ils embarquent carrément l'interpréteur dans l'exécutable ?
Ouiiiiiiiiin, j'ai rien capté :)
[^] # Re: Peut etre une piste...
Posté par Wawet76 . Évalué à 5.
Sous Linux, tu peux techniquement decompresser la partie donnée normalement.
[^] # Re: Peut etre une piste...
Posté par Edouard Gomez (site web personnel) . Évalué à 4.
C'est un format de binaire reconnu par les OS win32, en tres gros, PE-i386 est l'equivalent des fichiers ELF sur Linux. Mais tu as bien raison de parler de conteneur, car apres tout un binaire n'est qu'une archive avec plusieurs section ayant chacune leur role (exe, data, ro data, bss etc...). C'est pourquoi je parlais de code IL dans une section .data, qui aurait été passé au JIT par un bout de code placé dans une section exe (une sorte de bootstrap).
Sur un windows, le schema serait le suivant:
1. Win32 charge la partie exe
2. la partie exe charge une section .data ou se trouve le code IL
3. il recherche la presence d'un JIT .net dans la base de registre (supposition)
4. il passe le code IL au JIT et attend patiemment que le JIT lui rende la main.
Un petit peu comme le shebang #!/bin/sh en debut d'un script Bourne Shell.
[^] # Re: Peut etre une piste...
Posté par Ramón Perez (site web personnel) . Évalué à 9.
Comment peux-tu dire de telles choses ici !
Il y a des enfants qui nous lisent, tu sais.
[^] # Re: Peut etre une piste...
Posté par Fabio Parisi (site web personnel) . Évalué à 3.
# Muine
Posté par j (site web personnel) . Évalué à 2.
mauvais idée amha (légal ?) mais probablement très efficace...
[^] # Re: Muine
Posté par manatane . Évalué à 2.
# Compatibilite
Posté par kerokero . Évalué à 1.
Ca doit être portable tout ça quand même, si tu fais un binaire qui n'est pas un .exe, Windows aura du mal à le lancer...
[^] # Re: Compatibilite
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
[^] # Re: Compatibilite
Posté par allcolor (site web personnel) . Évalué à 2.
[^] # Re: Compatibilite
Posté par TImaniac (site web personnel) . Évalué à 3.
Evidemment sous nunux celà fait bizzare.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.