如何在Linux中调试Windows可执行文件

6

我正在使用Ubuntu 13.10。 在Linux下调试Windows可执行文件是否可能?

我已经尝试了gdb,但它总是抛出这个错误消息。

/bin/bash: line 0: exec: /some.exe: cannot execute: Permission denied
4个回答

10

虽然我对此并没有太多经验,但我认为你正在寻找的是 winedbg。它可以让你在Linux中调试Win32应用程序。


4

我建议你尝试使用IDA调试器(跨平台调试器)。
希望这能帮到你。


谢谢。我已经在本地尝试过了,但它一直抛出“/ida64/procs/cli.ilx无法加载文件”的错误... - Znatz

2
您正在尝试在一个操作系统中运行一个程序,而这个操作系统可能使用的是与x86完全不同的处理器。为了使可执行程序在特定的操作系统中运行,必须存在以下模块或服务:
- 一个可以理解可执行程序的二进制代码并将其翻译(如果需要)成主机处理器的二进制代码的模块。 - 一个能够拦截任何被识别为系统调用的指令,并利用主机资源来模拟其行为的服务。 - 一个能够加载、解析和准备进程块以容纳新的“客户”进程的模块。
这只是为了执行一个程序。要对其进行调试,您还需要一个服务,该服务可以与上述提到的模块/服务交互,以控制该程序的执行。
话虽如此,您可能可以使用Wine项目的某些实用程序来调试EXE文件,假设您的Ubuntu正在运行在x86处理器上。请看一下它: http://www.winehq.org/ 此外,我记得VirtualBox为在客户操作系统上运行的进程提供了某种调试帮助,但我不确定。

-13

不,无法在Linux下调试Windows可执行文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接