网络实名是怎么实现?当我在IE地址栏输入关键字的时候,IE地址的网站就会自动切换成3721或者CNNIC,本来我猜想它要么是通过程序代码实现的,要么是通过注册表设置或者文件设置实现,可是我找遍了两种方法,既没有发现这两个实名的驻留程序(包括扩展组件),也没有找到http://???.3721.com/字符串?
   熟悉系统和注册表的高级用户,能否帮我找一下这个自动替换实现的原理。
   注意我的机器从来都不安装3721,即便有我也会毫不忧豫地马上把它卸载。

解决方案 »

  1.   

    下面的信息是我使用Winternals RegMon跟踪的结果。即便我彻底删除下面的注册表信息。然后删除硬盘中3721带来的所有cns*.dll。网络实名还是有效。4337 17.91530572 iexplore.exe:1312 QueryKey HKCR\CnsHelper.CH SUCCESS Unknown Info Class
    4338 17.91541802 iexplore.exe:1312 OpenKey HKCR\CnsHelper.CH\CLSID SUCCESS Key: 0xE2DEC870
    4339 17.91544261 iexplore.exe:1312 QueryKey HKCR\CnsHelper.CH\CLSID SUCCESS Unknown Info Class
    4340 17.91553899 iexplore.exe:1312 QueryValue HKCR\CnsHelper.CH\CLSID\(Default) SUCCESS "{B83FC273-3522-4CC6-92EC-75CC86678DA4}"
    4341 17.91558815 iexplore.exe:1312 CloseKey HKCR\CnsHelper.CH\CLSID SUCCESS Key: 0xE2DEC870
    4342 17.91561665 iexplore.exe:1312 CloseKey HKCR\CnsHelper.CH SUCCESS Key: 0xE11E7670
    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\CnsHelper.CH]
    @="3721"[HKEY_CLASSES_ROOT\CnsHelper.CH\CLSID]
    @="{B83FC273-3522-4CC6-92EC-75CC86678DA4}"[HKEY_CLASSES_ROOT\CnsHelper.CH\CurVer]
    @="CnsHelper.CH.1"
    [HKEY_CLASSES_ROOT\CnsMin.CH.1]
    @="CnsMin Control"[HKEY_CLASSES_ROOT\CnsMin.CH.1\CLSID]
    @="{B83FC273-3522-4CC6-92EC-75CC86678DA4}"
    [HKEY_CLASSES_ROOT\CnsMin.CH.1]
    @="CnsMin Control"[HKEY_CLASSES_ROOT\CnsMin.CH.1\CLSID]
    @="{B83FC273-3522-4CC6-92EC-75CC86678DA4}"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks]
    "{B83FC273-3522-4CC6-92EC-75CC86678DA4}"=""[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\!CNS]
    "Type"="group"
    "Text"=" 网络实名"
    "PlugUIText"="@D:\\WINDOWS\\Downlo~1\\CnsMin.dll,-117"
    "Bitmap"="D:\\WINDOWS\\Downlo~1\\CnsMin.dll,1000"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\!CNS\Enable]
    "Type"="checkbox"
    "HKeyRoot"=dword:80000001
    "RegPath"="SOFTWARE\\Microsoft\\Internet Explorer\\Main"
    "ValueName"="CNSEnable"
    "DefaultValue"=dword:00000001
    "CheckedValue"=dword:00000001
    "UncheckedValue"=dword:fa1822aa
    "Text"="启用网络实名"
    "PlugUIText"="@D:\\WINDOWS\\Downlo~1\\CnsMin.dll,-115"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\!CNS\Hint]
    "Type"="checkbox"
    "HKeyRoot"=dword:80000001
    "RegPath"="SOFTWARE\\Microsoft\\Internet Explorer\\Main"
    "ValueName"="CNSHint"
    "DefaultValue"=dword:00000001
    "CheckedValue"=dword:00000001
    "UncheckedValue"=dword:fa1822aa
    "Text"="在地址栏处显示提示条"
    "PlugUIText"="@D:\\WINDOWS\\Downlo~1\\CnsMin.dll,-116"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\!CNS\List]
    "Type"="checkbox"
    "HKeyRoot"=dword:80000001
    "RegPath"="SOFTWARE\\Microsoft\\Internet Explorer\\Main"
    "ValueName"="CNSList"
    "DefaultValue"=dword:00000001
    "CheckedValue"=dword:00000001
    "UncheckedValue"=dword:fa1822aa
    "Text"="在地址栏下拉列表中显示输入过的网络实名"
    "PlugUIText"="@D:\\WINDOWS\\Downlo~1\\CnsMinIO.dll,-100"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\!CNS\Menu]
    "Type"="checkbox"
    "HKeyRoot"=dword:80000001
    "RegPath"="SOFTWARE\\Microsoft\\Internet Explorer\\Main"
    "ValueName"="CNSMenu"
    "DefaultValue"=dword:fa1822aa
    "CheckedValue"=dword:00000001
    "UncheckedValue"=dword:fa1822aa
    "Text"="在右键菜单中添加“访问网络实名”(需要重启动 IE)"
    "PlugUIText"="@D:\\WINDOWS\\Downlo~1\\CnsMin.dll,-502"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\!CNS\Reset]
    "Type"="checkbox"
    "HKeyRoot"=dword:80000001
    "RegPath"="SOFTWARE\\Microsoft\\Internet Explorer\\Main"
    "ValueName"="CNSReset"
    "DefaultValue"=dword:fa1822aa
    "CheckedValue"=dword:00000001
    "UncheckedValue"=dword:fa1822aa
    "Text"="清除地址栏下拉列表中显示的网络实名"
    "PlugUIText"="@D:\\WINDOWS\\Downlo~1\\CnsMinIO.dll,-103"顺便提一句,我的机器中D:\\WINDOWS\\Downlo~1\\下根本没有Cns*.dll
    这些信息是我使用Winternals Regmon enterprise跟踪出来的。
    在地址栏输入关键字,还是
    http://cns.3721.com/cns.dll?coagent=msn_sa&type=z&act=info&name=%D6%D0%D1%EB%B5%E7%CA%D3%CC%A8
    如果是微软留给3721一个接口,那么,接口实现文件是那一个,如果IE对上面的地址进行了硬编码,那么
    http://cns.3721.com/cns.dll?coagent=msn_sa&type=z&act=info&name=%s保存在那个文件中呢?
    极度困惑!
      

  2.   

    建议您在回答问题的时候,不妨先用自己的机器检验一下,实践是检验真理的唯一标准,没有调查就没有发言权。您可以先使用的您的方法卸载3721,然后在地址栏输入关键词,如果弹不出3721不是7856,这就是我需要的,I Fooler You!