简单的工作室

当前位置: 主页>编程技巧>VC++编程>

关于win7 64位下的DLL注入问题 个例

时间:2014-06-06 01:57来源:未知 作者:admin 点击:
一个自己写的程序,在程序里openprocess了一个notepad.exe,然后用常规的WriteProcessMemory方法写注入,总是提示加载模块失败 后来查到64位程序调用64位的DLL 32调用32的DLL typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); BOOL IsWow64(HANDLE h) { BOOL b
一个自己写的程序,在程序里openprocess了一个notepad.exe,然后用常规的WriteProcessMemory方法写注入,总是提示加载模块失败

后来查到64位程序调用64位的DLL 32调用32的DLL
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
BOOL IsWow64(HANDLE h)
{
    BOOL                bIsWow64 = FALSE;
    LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(_T("kernel32")),"IsWow64Process");

    if (NULL != fnIsWow64Process)
    {
        //if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
                if (!fnIsWow64Process(h,&bIsWow64))
        {
            // handle error
            //_tprintf(_T("do fnIsWow64Process : error\r\n"));
        }
    }
    return bIsWow64;
}
这个函数能判断进程是32还是64

然后就OK了。。。个例。。



(责任编辑:简单的工作室)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容