嗅探器 代码解析

JavaScript020

嗅探器 代码解析,第1张

memset(RecvBuf, 0, sizeof(RecvBuf))//初始化接收数组

    recv(sock, RecvBuf, sizeof(RecvBuf), 0)//接收数据

    saSource.sin_addr.s_addr = pIpheader->ip_src//保存ip地址

    strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN)//将ip地址转换成字符串保存在szSourceIP中

    iUdpDataLen =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr))) //协议包中数据长度

    if((pIpheader->ip_p)==IPPROTO_UDP&&iUdpDataLen!=0)//判断通信协议是否为IPPROTO_UDP代表的协议

    {

        pUdpData=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr)//如果是,则将pUdpData指向确切的数据那里,每个数据包都有包头加数据

        iUdpDataLen=ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr))//更新数据长度

        if(ntohs(pUdpheader->dport)==8000)//如果通信使用的是8000端口

            if(iUdpDataLen%4==0 && iUdpDataLen>0) //判断数据长度是否有效

                if(pUdpData[0]==0x02 && pUdpData[3]==0x00 && pUdpData[iUdpDataLen-1]==0x03)//这是验证数据的,有些通信协议就是会在固定的位置上写上固定的值

                {

                    QQ = (pUdpData[7]&0xff)            //如果验证通过则说明了这个包里面包含了qq号码,qq号码是经过加密后传输的

                    QQ = (QQ<<8) + (pUdpData[8]&0xff)    //这里做的就是把号码从加密的数据中解密出来

                    QQ = (QQ<<8) + (pUdpData[9]&0xff)

                    QQ = (QQ<<8) + (pUdpData[10]&0xff)

                    printf("IP:%s QQ:%d\r",szSourceIP,QQ) 

                }

    }

js加密的问题是,不论单向双向,加密方式没办法隐藏,会被人家看到。例如我密码是123abc,输入表单后发送,js给加密成了乱码。发给服务端再加密下和数据库比对。问题来了,如果入侵者截获到js加密后的乱码,他可以禁用js,然后直接把乱码输入表单后发送,效果和直接得到用户密码产生1.js加密这里的作用除黑客不知道密码是啥外,其他都没用,乱码也能够登录。js的加密的直接pass掉。这里根本行不通!

JavaScript实现的幻灯片效果,网上到处都是,也有很多源代码可以下载, http://www.zcool.com.cn/preview/code/new_code/013/ http://www.zcool.com.cn/jscode/javascript/20081230/code_1230Pc2008.html