在调用之前hook还是在调用之后?还有动态载入的处理了吗?

解决方案 »

  1.   


    DWORD dwJmpAddr = 0;  
    HMODULE hModule = LoadLibrary("kernel32.Dll");  
    pDeleteFile = (pDeleteFilef)GetProcAddress(hModule, "DeleteFileA");  
    dwJmpAddr = (DWORD)MyDeleteFile - (DWORD)pDeleteFile - 5;  
    memcpy(szJmpMyDeleteFile + 1, &dwJmpAddr, 4);   
    FreeLibrary(hModule);   // 加载
    ReadProcessMemory((void*)-1, pDeleteFile, szOldDeleteFile, 5, NULL); WriteProcessMemory((void*)-1, pDeleteFile, szJmpMyDeleteFile, 5, NULL); 
    是不是没办法HOOK 控制台程序呀?
      

  2.   

    判断函数返回值,看看是否都成功了
    你一个应用层程序就想hook kernel32下的DeleteFile,我怀疑你根本hook不了