[英]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.