-
-
[旧帖] [求助]Win7下dll注入后无法写文件 0.00雪花
-
发表于: 2012-7-12 17:32 1217
-
(Windows 7 旗舰版)
在dll的导出函数中进行文件操作:
dll注入后,在目标进程中调用该导出函数,发现并没有报错,但是文件就是写不进去,文件也没有创建。(在XP下是成功的)
注入程序以管理员身份启动;
经查该导出函数已经被成功调用;
不是UAC的问题;
也不是权限的问题,进程对IE临时目录是有可写权限的;(如果没有权限(如C盘根目录),会报错System error 5)
不知各位有没有遇到类似的问题。
向大家请教请教。
在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期)
赞赏
看原图
赞赏
雪币:
留言: