• [^] # Re: Portable executable win32

    Posté par . En réponse à la dépêche Mono 2.0 : le singe continue ses grimaces. Évalué à 3.

    Et bien là, non, c'est de la tromperie : c'est signé comme un exécutable PE x86-32 pour Windows, mais ce n'en est pas un.

    Bien sur que si c'en est un. C'est un exécutable PE32 ou PE32+ tout ce qu'il y a de plus normal, avec une caractéristique particulière, il a un header un champ spécial COM2+ (le pre pre pre nom de .net).

    Et tu pourrais très bien le lancer dans Wine en théorie. Dans le cas où le loader ne reconnaît pas directement l'exécutable comme contenant du code .net (comme celui de Win2000), il y a un bout de code natif qui jump vers une librairie native du Framework .net, déclenchant le lancement de la CLR, et l'exécution du code managé.

    Donc Wine peut très bien consommer un tel fichier, mais devrait sûrement se plaindre de la non existence de cette librairie particulière.

    Donc si on prends ton exemple:

    Quand je trouve un exécutable qui est une archive Zip, je regarde un peu plus loin, et si je vois que c'est un JAR, j'essaie de le lancer avec Java.

    On peut le transformer en:

    Quand je trouve un exécutable qui est un fichier PE, je regarde un peu plus loin, et si je vois que c'est un PE avec un header pour du code managé, j'essaie de le lancer avec Mono.

    Dingue, ça marche.