Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-在Windows DLL中调用过程(按地址,而不是按名称)_Python_Function_Dll_Loadlibrary - Fatal编程技术网

Python-在Windows DLL中调用过程(按地址,而不是按名称)

Python-在Windows DLL中调用过程(按地址,而不是按名称),python,function,dll,loadlibrary,Python,Function,Dll,Loadlibrary,我想知道在Python中,是否可以(如果可以,如何)通过Proc地址而不是名称从DLL调用例程 举个例子:我正在分析一个恶意dll,我想调用的一个例程没有导出(引用它的名称),但是我知道例程的基地址 这在C/C++中是可能的,方法是将函数指针强制转换为类型定义的函数原型 在Python中是否有类似的方法来实现这一点 如果没有,是否需要修改dll的导出表,以将已知的导出名称映射到地址。我可以修改导出表,将已导出例程的基址更改为我自己的例程 这使我能够使用导出的名称通过Python执行我感兴趣的子例

我想知道在Python中,是否可以(如果可以,如何)通过Proc地址而不是名称从DLL调用例程

举个例子:我正在分析一个恶意dll,我想调用的一个例程没有导出(引用它的名称),但是我知道例程的基地址

这在C/C++中是可能的,方法是将函数指针强制转换为类型定义的函数原型

在Python中是否有类似的方法来实现这一点


如果没有,是否需要修改dll的导出表,以将已知的导出名称映射到地址。

我可以修改导出表,将已导出例程的基址更改为我自己的例程


这使我能够使用导出的名称通过Python执行我感兴趣的子例程。

我也在寻找Python中按地址获取函数的解决方案。 我仍然不知道怎么做,但我找到了另一种方法,通过其序号()获取未命名函数,如下所示:

dll = CDLL("mydll.dll")
myfunc = dll[32] # the 32-th function

是的,但这仍然要求例程是导出的。