none
HooK readfile,在回调函数中将Buffer修改,如何才能显示出自己的内容?含代码! RRS feed

  • 问题

  • 代码如下,我挂接了ReadFile,下面为回调函数,我想先读取到文件内容,之后进行改写,写入自己的内容到m_pBuf ,为什么我写的内容,显示不出来,而且会报Debug异常?或者调整之后出来也是乱码?哪位大侠做过类似的挂接,请指教啊?
    CAPIHook g_ReadFile; //the main object of CAPIHook!
    typedef bool (WINAPI *PFNReadFile)(
    __in          HANDLE hFile,
    __out        LPVOID lpBuffer,
    __in          DWORD nNumberOfBytesToRea
      __out        LPDWORD lpNumberOfBytesRead
      __in          LPOVERLAPPED lpOverlapped  );

    bool WINAPI MyReadFile( 
      __in          HANDLE hFile,
      __out        LPVOID lpBuffer,
      __in          DWORD nNumberOfBytesToRead,
      __out        LPDWORD lpNumberOfBytesRead,
      __in          LPOVERLAPPED lpOverlapped    )

      int  iFileSize = 8; //暂时硬编码里面为8

    char * m_pBuf = (char *)"zxcvzxcv";  //问题在此 ,如何将其写入Buffer,显示出来???
    DWORD len = 0;

    nResult = ((PFNReadFile)(PROC)g_ReadFile)(hFile, m_pBuf, iFileSize, &len, NULL);

    return nResult;
    }
    2010年1月25日 9:58

答案

  • 你的m_pBuf指向的是一个常量字符数组,可能会导致问题.

    把程序崩溃的提示贴出来


    0xBAADF00D
    • 已标记为答案 Nancy Shao 2010年2月4日 2:44
    2010年1月25日 15:47
    版主
  • 同意Vonger,你可以尝试用下面方式对 m_pBuf 赋值:

    	char* m_pBuf = new char[10];
    	strcpy(m_pBuf,"zxcvzxcv");
    //Code... delete m_pBuf;

     


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • 已标记为答案 Nancy Shao 2010年2月4日 2:44
    2010年1月27日 5:33

全部回复

  • 你的m_pBuf指向的是一个常量字符数组,可能会导致问题.

    把程序崩溃的提示贴出来


    0xBAADF00D
    • 已标记为答案 Nancy Shao 2010年2月4日 2:44
    2010年1月25日 15:47
    版主
  • 同意Vonger,你可以尝试用下面方式对 m_pBuf 赋值:

    	char* m_pBuf = new char[10];
    	strcpy(m_pBuf,"zxcvzxcv");
    //Code... delete m_pBuf;

     


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • 已标记为答案 Nancy Shao 2010年2月4日 2:44
    2010年1月27日 5:33