返回信息流今天无意中用ProcessExplorer看到QQ在运行时会加载一个名为AVICAP32.DLL的动态连接库,根据其描述这个是一个AVI捕获窗口类。但是在在注册表的HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDlls
中没有找到名为AVI32CAP的键值,于是怀疑QQ可能存在DLL Hijack的BUG。经过测试问题确实存在,在正常情况下QQ启动时回去加载%SystemRoot%\system32目录下的AVICAP32.DLL,但是如果伪造一个AVICAP32.DLL放到和QQ.EXE的同一个目录下,QQ在启动时就加载当前目录中的AVICAP32.DLL。
测试环境:WIN7 + QQ2010 SP1
#include <windows.h>
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
if(DLL_PROCESS_ATTACH == fdwReason)
{
TCHAR szModuleFilePath[256];
memset(szModuleFilePath,0,256);
/*获得模块文件全路径*/
if(GetModuleFileName(hinstDLL,szModuleFilePath,256))
{
MessageBox(NULL,szModuleFilePath,"Hijack by MJ1112",MB_OK);
}
}
return TRUE;
}
这是一条镜像帖。来源:北邮人论坛 / security / #30885同步于 2010/11/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Security机器人发帖
WIN7下QQ2010 SP1中的一个DLL Hijack bug(AVICAP32.DLL)
MJ1112
2010/11/11镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。