首页
社区
课程
招聘
[旧帖] [求助]Win7下dll注入后无法写文件 0.00雪花
发表于: 2012-7-12 17:32 1217

[旧帖] [求助]Win7下dll注入后无法写文件 0.00雪花

2012-7-12 17:32
1217
(Windows 7 旗舰版)
在dll的导出函数中进行文件操作:
extern "C" __declspec (dllexport ) int fndllTest2(void)
{
    char buf[MAX_PATH] = {0};
    char msg[255] = {0};

    sprintf_s(msg, MAX_PATH, "call fndllTest2 success. my process id = %d\n",GetCurrentProcessId());
    MessageBox(NULL,(LPCSTR)msg,(LPCSTR)"msg",MB_OK);

    SHGetFolderPath(NULL, CSIDL_INTERNET_CACHE, NULL, SHGFP_TYPE_CURRENT, buf); //获取IE临时目录
    if(buf[strlen(buf)-1] != '\\')
        lstrcat(buf, "\\");
    lstrcat(buf, "a.txt");
    hFile = CreateFile(buf, 
        GENERIC_WRITE, 
        FILE_SHARE_WRITE, 
        NULL, 
        OPEN_ALWAYS, 
        FILE_ATTRIBUTE_NORMAL, 
        NULL);
    if (hFile == INVALID_HANDLE_VALUE)
    {
        sprintf_s(msg,255,"OutputDebugStringToFile: CreateFile failed !! error code = %d.",GetLastError());
        MessageBox(NULL,(LPCSTR)msg,(LPCSTR)"msg",MB_OK);
        return 0;
    }
    if (SetFilePointer(hFile, 0, NULL, FILE_END) == INVALID_SET_FILE_POINTER)
    {
        sprintf_s(msg,255,"OutputDebugStringToFile: SetFilePointer failed !! error code = %d.",GetLastError());
        MessageBox(NULL,(LPCSTR)msg,(LPCSTR)"msg",MB_OK);
        CloseHandle(hFile);
        return 0;
    }
    memset(buf,0,MAX_PATH);
    done = sprintf_s(buf, MAX_PATH, "Write file success. my process id = %d\n",GetCurrentProcessId());
    if (!WriteFile(hFile, buf, strlen(buf), (LPDWORD)&done, NULL))
    {
        sprintf_s(msg,255,"OutputDebugStringToFile: WriteFile failed !! error code = %d.",GetLastError());
        MessageBox(NULL,(LPCSTR)msg,(LPCSTR)"msg",MB_OK);
        CloseHandle(hFile);
        return 0;
    }

    CloseHandle(hFile);
    return 1;
}



dll注入后,在目标进程中调用该导出函数,发现并没有报错,但是文件就是写不进去,文件也没有创建。(在XP下是成功的)

注入程序以管理员身份启动;
经查该导出函数已经被成功调用;
不是UAC的问题;
也不是权限的问题,进程对IE临时目录是有可写权限的;(如果没有权限(如C盘根目录),会报错System error 5)

不知各位有没有遇到类似的问题。
向大家请教请教。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//