c++ - 如何获取类中成员函数的地址

标签 c++ hook code-injection malware

我正在尝试获取成员函数的地址。基本上,我试图获取内存中加载的 Windows api 函数与我的函数之间的偏移量。

这是我试图获取的地址:

   NTSTATUS (NTAPI myntquerydirectoryfile)(
        HANDLE hFile,
        HANDLE hEvent,
        PVOID pApcRoutine,
        PVOID pApcContext,
        IO_STATUS_BLOCK* ioStatus,
        PVOID pBuffer,
        ULONG bufferSize,
        FILE_INFORMATION_CLASS infoClass,
        BOOLEAN singleEntry,
        PUNICODE_STRING pFileName,
        BOOLEAN restart
    )
    {

        cout << "my func" << endl;

    };


    typedef  NTSTATUS (*pmyhook)(HANDLE hFile,
        HANDLE hEvent,
        PVOID pApcRoutine,
        PVOID pApcContext,
        IO_STATUS_BLOCK* ioStatus,
        PVOID pBuffer,
        ULONG bufferSize,
        FILE_INFORMATION_CLASS infoClass,
        BOOLEAN singleEntry,
        PUNICODE_STRING pFileName,
        BOOLEAN restart);

    pmyhook = &myntquerydirectoryfile;

最佳答案

这段代码展示了如何获取类成员函数的地址:

#include <stdio.h>
class A 
{
public:
    void test() 
    {
        // Address of member function test(), is the value of &A::test
        printf("Address of function is: 0x%X\n", &A::test);
    }
};

int main()
{
    A a;
    a.test();
}

关于c++ - 如何获取类中成员函数的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848134/

相关文章:

code-injection - 是否可以在我的 Squarespace 网站上显示 SeatGeek API 调用的数据?

C++ - CreateRemoteThread DLL 注入(inject) [Windows 7]

function - 将 'Purchased' 项目列添加回 Woocommerce 订单管理 View ?

c# - 如何在 MSIL 中调用正在执行的程序集之外的方法?

c++ - 快速比较字符数组?

c++ - 如何在文件中用 Bye 替换 Hi

wordpress - Wordpress 中的 delete_post Hook 不起作用

php - 防止使用PHP注入(inject)SQL

c++ - 是否可以将 QtConcurrent::run() 与类的函数成员一起使用

c++ - 解决整数约束优化问题