Copiez le code machine à partir de l’exécutable Windows et exécutez-le sur Linux

Je copie le code machine d’une fonction sous Windows.

Par exemple:

void func() { printf("hello"); } 

Dans le cas ci-dessus, je copierais les données de segment de code hexadécimal de func() et les données de code hexadécimal de printf() , ainsi que d’autres dépendances et données, et les relierais sur une autre machine fonctionnant sous Linux. une machine linux si correctement relié?

Et si oui, y aurait-il un problème de licence? (Est-ce légal?)

PS La question concerne une question de système dissortingbué.

C’est une question assez vague / sans réponse, mais ce serait extrêmement difficile, voire impossible. Vous rencontrez un certain nombre de difficultés qu’il faudrait régler. À savoir, le format exécutable (ELF sous Linux, vs PE sous Windows), les conventions d’appel entre systèmes / compilateurs, etc.

Le plus gros problème auquel je puisse penser est que la gestion des fichiers entre Linux et Windows est extrêmement différente. Votre meilleur choix ne serait pas de copier printf (), mais de redirect cet appel vers l’implémentation Windows, car après que toute la fonction de bibliothèque fonctionne, l’écriture de bas niveau sur la console est très différente.

Il y a un programme de wine (et projet) qui n’est pas un émulateur. Il faudra le fichier exe de Windows et l’exécuter directement sous Linux. La plupart des WinAPI utilisés seront traduits vers Linux et le système graphique X11.

Si vous voulez juste exécuter des fichiers exe à partir de Windows sous Linux, ce sera la réponse. Si vous voulez savoir comment faire cela, vous pouvez lire des sources de Wine et / ou de la documentation sur le vin et / ou des articles sur le vin et son design. Ou demandez aux auteurs du vin sur la liste de diffusion.