Как вызвать конкретную функцию EXE в Linux / Mac

Я уверен, что это возможно, но я бы хотел вызвать функцию, которая определена в exe-файле в Linux / Mac:

0x421ff0 @@my_func_doing_stuff@Initialize 4

В основном я хотел бы добавить поддержку командной строки, которая не реализована, и пользовательский интерфейс является своего рода перетаскиванием&капля, которая бесполезна.

Примечание: у меня нет доступа к источнику файла.

Я играл с wine, objdump, uncc (пытаясь снова преобразовать его в C) и Python, используя pefile, SWIG и ctypes:

#!/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

напомнил мне, что я не могу вызвать ни одну из функций Windows под Linux без эмуляции?

Поэтому я ищу другие решения. Вероятно, это может быть сделано как-то путем эмуляции или отладки под вином. Но я не уверен, есть ли какой-либо API для вызова определенных функций.

Существуют ли уже существующие решения?

-1

Решение

Вы можете используйте winelib для загрузки и связывания с бинарным (так как вам нужен wine для обеспечения пригодного для использования ABI), но имейте в виду, что это эффективно превращает ваше приложение в приложение Wine.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]