繁体   English   中英

从Windows可执行文件复制机器代码并在Linux上运行

[英]Copy machine code from windows executable and run on linux

我在Windows上复制功能的机器代码。

例如:

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

在上述情况下,我将复制func()的十六进制代码段数据和printf()的十六进制代码数据以及其他依赖项和数据,并在运行linux的另一台计算机上将其重新链接,是否有可能在一个Linux机器,如果正确地重新链接?

如果是这样,是否会出现许可问题? (合法吗?)

PS问题是关于分布式系统的问题。

有一个不是模拟器的wine程序(和项目) 它将从Windows中获取exe文件,然后直接在linux中运行它。 最常用的WinAPI将转换为linux和X11图形系统。

如果您只想在Linux下从Windows运行exe文件-这将是答案。 如果您想知道如何执行此操作,可以阅读Wine的资源和/或wine的文档和/或有关wine及其设计的文章 或在邮件列表中询问葡萄酒的作者。

这是一个非常模糊/无法回答的问题,但这将是非常困难的,即使不是不可能的。 您有许多困难需要解决。 即,可执行格式(Linux上为ELF,Windows上为PE),系统/编译器之间的调用约定等。

我能想到的最大问题是Linux和Windows之间的文件处理极为不同。 最好的选择不是复制printf(),而是将调用重定向到Windows实现,因为在所有库函数工作之后,对控制台的低级写入是非常不同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM