Browser Helper Objects(BHO)
Regsvr32
Regsvr32命令用于注册动态链接库文件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。
用法:
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname
- /u -解除服务器注册
- /s -无声;不显示消息框
- /i -调用DllInstall,给其传递一个可选[cmdline];跟/u参数一起使用时卸载DLL。
- /n -不用调用DLLRegisterServer。这个参数必须跟/i一起使用。
- /? -查看帮助信息
- dllname -Activex控件文件名。
Notes + 建议在安装前拷贝到system文件夹下。 + 需要管理员权限。
BHO
注册之后的BHO会在注册表下注册一个CLSID
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{66DFF559-A157-41A1-B07E-A8C06E82501E}]
@="FlashRedirctBho"
"NoExplorer"=dword:00000001
rgs文件
FlashRedirectObj.FlashBho.1 = s 'FlashBho Class'
{
CLSID = s '{66DFF559-A157-41A1-B07E-A8C06E82501E}'
}
FlashRedirectObj.FlashBho = s 'FlashBho Class'
{
CLSID = s '{66DFF559-A157-41A1-B07E-A8C06E82501E}'
CurVer = s 'FlashRedirectObj.FlashBho.1'
}
BHO调试
BHO在需要时由iexplore.exe加载,IE8之后在Iexplore中每一个Tab Tag都是一个独立的进程,进程名都是iexplore.exe。需要使用tlist /t命令查看进程树。
使用VS的“Attach to Process...”进行调试即可。进入断点后,用tlist pid可看到Tab Tag进程加载的BHO对应的DLL文件
浏览器进程不会一直加载BHO对应的DLL,仅在调用时加载。