Вызов анонимной функции C из двоичного файла Win32 - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь получить доступ к анонимной функции в двоичном файле библиотеки Win32 C из Python. Я нашел функцию с Ghidra, и у меня есть ее параметры, адрес и прочее. С ctypes я не нашел никакой информации о том, как добавить эти ручные функции, а только о том, как вызывать «настоящие», именованные функции.

У меня нет исходного кода или каких-либо других вещей, кроме скомпилированных библиотека.

Есть ли способ реализовать это? Спасибо за любую помощь! : -)

1 Ответ

0 голосов
/ 18 июня 2020

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

Пример:

In main.c:

typedef int (*func_pointer)(bool );

int func(bool arg) {
    # 0xdeadbeef - is the address of the function you wish to call
    func_pointer anon_function = (func_pointer)0xdeadbeef
    return anon_function(arg)
}

обязательно скомпилируйте это как DLL или SO

подробнее вызов c функций из python по этой ссылке:

https://www.journaldev.com/31907/calling-c-functions-from-python

Надеюсь, что это помогло

...