Lob*_*obe 5 python memory ctypes
这可能看起来像一个奇怪的问题,但我想知道如何从内存'签名'中运行.dll中的函数.我不太了解它实际上是如何工作的,但我非常需要它.它是一种在.dll中运行未导出函数的方法,如果你知道它的内存签名和地址.例如,我有这些:
respawn_f "_ZN9CCSPlayer12RoundRespawnEv"
respawn_sig "568BF18B06FF90B80400008B86E80D00"
respawn_mask "xxxxx?xxx??xxxx?"
Run Code Online (Sandbox Code Playgroud)
使用一些非常漂亮的C++代码,您可以使用它来运行.dll中的函数.
这是一篇很好解释的文章:http: //wiki.alliedmods.net/Signature_Scanning
那么,是否有可能使用Ctypes或任何其他方式在python中执行此操作?
如果您已经可以使用 C++ 运行它们,那么您可以尝试使用 SWIG 为您编写的 C++ 代码生成 python 包装器,使其可从 python 调用。
我在使用 SWIG 时发现的一些注意事项:
Swig 根据字符串值查找类型。例如,Python 中的整数类型 (int) 将确保 cpp 类型为“int”,否则 swig 会抱怨类型不匹配。没有自动转换。
Swig 逐字复制源代码,因此即使是同一命名空间中的对象也需要完全限定,以便 cxx 文件能够正确编译。
希望有帮助。