我想知道在Python中是否有可能(如果是这样,如何)通过Proc地址而不是名称从DLL调用例程。
一个例子:我正在分析一个恶意的dll,我想要调用的一个例程没有被导出(名称来引用它),但是我确实知道了例程基础的地址。
通过将函数指针强制转换为typedef函数原型,可以在C / C ++中实现。
在Python中有类似的方法吗?
如果没有,是否有任何关于修改dll的导出表的问题,以使已知的导出名称映射到该地址。
答案 0 :(得分:0)
我能够修改导出表,将已导出例程的基地址更改为我自己的例程。
这允许我通过使用导出的名称来执行我感兴趣的子程序。
答案 1 :(得分:0)
我也在寻找在Python中通过地址获取函数的解决方案。 我仍然不知道如何做到这一点,但我找到了一种替代方法来通过序数(https://docs.python.org/2/library/ctypes.html)来获取未命名的函数,如下所示:
dll = CDLL("mydll.dll")
myfunc = dll[32] # the 32-th function