概述
LSP在注册表中的位置HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinSock2Parameters下的Current_NameSpace_Catalog描述了当先使用的协议目录,一般为Protocol_Catalog9。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinSock2ParametersProtocol_Catalog9下的Num_Catalog_Entries记录了该结构链的节点的总数。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinSock2ParametersProtocol_Catalog9Catalog_Entries下面的以序号为键名的内容依次对应了一个服务程序.
程序首先读取Current_Protocol_Catalog协议目录存放的子键名称,接着读取存放目录子键下的Num_Catalog_Entries目录总数,接着遍历Catalog_Entries下的所有存放协议目录的子键,他们的存放结构如下:
typedef struct tagPACKED_CATALOG_ITEM
{
char spi_path[MAX_PATH]; // dll的路径名称
WSAPROTOCOL_INFO protocol_info; // 协议的结构体
} PACKED_CATALOG_ITEM, *PPACKED_CATALOG_ITEM;
将注册表存放目录的数据填充到这个结构体里面即可.
如何判断是否有效的LSP呢。
1、对协议结构体中的CLSID进行匹配,与以下的CLSID:
{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}
{9D60A9E0-337A-11D0-BD88-0000C082E69A}
{8D5F1830-C273-11CF-95C8-00805F48A192}
{3972523D-2AF1-11D1-B655-00805F3642CC}
2、根据DLL存放的路径进行匹配,与以下的文件名进行匹配(必须是WindowsSystem32目录下)
mswsock.dll
rsvpsp.dll
msafd.dll
ws2_64.dll
以上操作就完成了LSP的辨别操作。
接下来是修复的工作:
1、保存原先的注册表信息,路径:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinSock2Parameters 保存为WinSockLSP.reg。
2、保存 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWS2IFSL 到当前路径下的 WinSockLSPIFSL.reg。
3、将在第一步确定为未知的LSP的DLL保存到当前路径下的LSP中,并写入相关的信息到LSP.ini中,以便后续的恢复操作可执行。
4、对检测为未知的DLL再次进行检测,是否与以下的DLL名称相符合。
shdocvw.dll
Shell32.dll
Oleaut32.dll
Actxprxy.dll
Mshtml.dll
Urlmon.dll
Msjava.dll
Browseui.dll
5、如果不符合已知的DLL,那么将这个未知的LSP的DLL进行删除处理,并删除这个相关的LSP协议。
最后是还原操作:
1、导入保存的WinSockLSP.reg和WinSockLSPIFSL.reg
2、读取保存的LSP文件夹下的LSP.ini,得到DLL删除前存放的路径。
3、将所有的DLL拷贝到原先存放的路径中。
最后
以上就是花痴小蝴蝶为你收集整理的易语言lsp劫持_易语言如何制作LSP修复工具,用来解决网截模块问题.的全部内容,希望文章能够帮你解决易语言lsp劫持_易语言如何制作LSP修复工具,用来解决网截模块问题.所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复