-1

可能かどうかは確かですが、Linux/Mac の exe ファイルで定義されている関数を呼び出したいと思います。

0x421ff0 @@my_func_doing_stuff@Initialize 4

基本的に、実装されていないコマンド ライン サポートを追加したいと思います。UI は、役に立たないドラッグ アンド ドロップのようなものです。

注: ファイルのソースにアクセスできません。

私は、pefile、SWIG、および ctypes を使用して、wine、objdump、uncc (再度 C に変換しようとしています)、および Python で遊んでいました。

#!/usr/bin/python
from ctypes import *

import pefile, sys

pe = pefile.PE('my_file.exe')

print pe.dump_info()

my_exe = cdll.LoadLibrary('./my_file.exe')

しかし、成功しませんでした。

エラー:

OSError: ./my_file.exe: invalid ELF header

Linux では、エミュレーションなしでは Windows 関数を呼び出すことができないことを思い出しましたか?

だから私はいくつかの他の解決策を探しています。おそらく、ワインの下でエミュレートまたはデバッグすることで、何らかの方法で実行できます。しかし、特定の関数を呼び出すための API があるかどうかはわかりません。

既存のソリューションはありますか?

4

1 に答える 1

2

(使用可能な ABI を提供するには wine が必要なため)バイナリを読み込んでリンクするために winelib を使用できますが、これによりアプリケーションが効果的に Wine アプリケーションに変わることに注意してください。

于 2012-10-17T17:15:00.237 に答える