Python ctype 直接调用具有原始偏移量的函数
Python ctype directly call a function with raw offset
是否可以在python中调用RAW函数指针?
例如:
ctypes.windll.kernel32.GetModuleHandleA(None)
将调用 API,Python 解析 DLL + 函数指针以使其工作。 但是如果我有一个原始函数指针,例如 0xDEADBEEF(对应于函数标头),如何创建一个传递此原始指针的函数实例?
我不能只导出函数,因为它位于编译的可执行文件上,但我希望能够做这样的事情:
为了说清楚...在C++中,我可以用这样的东西调用 RAW 函数:
#define myfunction ((void(*)(int a, int b, int c)) 0x00402383)
myfunction(1, 2, 3);
我蟒蛇我想做类似的东西,也许使用 ctypes 库?我已经在库内挖掘了,但我找不到他们如何初始化函数实例。
笔记:
- python引擎嵌入在DLL中。
- DLL 被注入到我想调用函数地址的进程中。
如果函数位于已编译的可执行文件中,则不能,也不能C++,因为会得到访问冲突。不能从其他进程调用函数。
如果您C++知识,请创建一个 DLL 并将其注入可执行文件中。你可以调用它。
<小时 />由于您已经将 DLL 注入到目标进程中,因此似乎可以使用 ctypes 实现您想要的目标。
>>> functype = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_int, ctypes.c_int)
>>> func = functype(raw_address)
>>> func
<CFunctionType object at 0x1006816d0>
相关文章:
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 通过指针偏移量访问结构变量值
- 以线程安全的方式转换 C/C++ 中时区名称字符串的时区偏移量
- librdkafka:rd_kafka_assignment 返回分配分区的偏移量 -1001
- 是否通过向封闭对象的地址添加字节偏移量来访问子对象
- 向指针地址添加 20 个字节偏移量
- glMapBufferRange(..) 中的偏移量关系和 glDrawArraysInstanced(..) 中的第一
- 是否有与 C# Structs/StructLayout 等效的功能,C++中的字段偏移量?
- 我的 sumASCII 函数中的此偏移量是多少?
- boost::序列化中的派生类偏移量计算.有效吗?
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- 胎面偏移量的时间复杂度?
- 如何从 c++ 中的给定标准输入中获取每个字符的偏移量?
- 编译器在构造函数中计算的成员偏移量不正确
- 使用基地址和偏移量获取变量的地址
- c++ 读取进程内存基址 + 偏移量不起作用
- 通过其在 C 中的偏移量调用函数
- ld:无效的字符串偏移量...对于".strtab"部分
- boost spirit X3解析器,该解析器将偏移量生成到原始字符串中
- Python ctype 直接调用具有原始偏移量的函数