锐捷共享助手v1.3 锐捷4.63专版 源代码(根据mentohust裁剪而来,只保留心跳和下线功能)      
 
什么v3算法什么的,都没有本程序通用性强,因为锐捷心跳最弱,最好下手。 
 
本程序主要是对mentohust windows版本没有v3算法而无法网络共享而非常郁闷所以裁剪出来的。 
 
需要大家根据wireshare添加过滤器 ether proto 0x888E 抓包自己分析。 
 
抓包主要分析心跳(OxBF包),分析心跳间隔,中间那些在变那些一直固定。 
 
当然你也可以把本程序改改弄成个锐捷心跳捕获器,就一直打印原版锐捷发出去的心跳的key no。 
 
然后自己统计分析打印信息学校是不是1个小时之后重置了key no没有, 
 
就可以改动本项目完美兼容4.6、4.63、4.8等高版本了(注明:mentohust项目主页中也支持到4.44呢) 
 
本源代码对锐捷共享助手v1.1改动很少,唯一变动就在发送心跳包函数心跳重复发了两次,请看下边: 
 
int CProcess::sendEchoPacket() 
 
中 
 
/*心跳重复发两次*/ 
 
pcap_sendpacket(m_hPcap, m_sendPacket, 0x2D); 
 
return pcap_sendpacket(m_hPcap, m_sendPacket, 0x2D); 
 
其他几乎没有改动(所以不发v1.1),如果根据抓包你们学校不是重复跳两次,那么注释一个pcap_sendpacket就是。 
 
 
 
修改源代码的同学,你只需要关注以下6个函数就是(其他什么认证的都已被裁剪掉,没必要看): 
 
1, 
 
BOOL FindAndKillProcessByName(LPCTSTR strProcessName) //根据进程名字强制结束改进程,拿来kill 8021x.exe。这个函数知道就行 
 
2, 
 
static void pcap_handle(u_char *user, const struct pcap_pkthdr *h, const u_char *buf) //pcap捕获函数,既可以捕获自己发出去的,也可以捕获服务器发给自己的 
 
重点注意它里面的 
 
if (buf[0x0F]==0xbf&&memcmp(proc->m_localMAC, buf+6, 6)==0){ //这个是捕获自己发出去的心跳代码处理部分。0xbf就是心跳。 
 
3, 
 
void CProcess::getEchoKeyFormEcho(const u_char *capBuf) ///*根据自己(一般是原版锐捷)发出去的心跳包得到key no*/ 
 
4, 
 
void CProcess::getEchoKey(const u_char *buf) ///*从success包(服务器发给自己的认证成功包)中得到key*/ 
 
5, 
 
int CProcess::sendEchoPacket() //发送心跳函数 
 
6, 
 
int CProcess::sendLogoffPacket() //发送下线函数(这个大家可以改进得跟原版锐捷0下线包一样) 
 
VC++6.0项目 win7下也可编译,编译后兼容性很好,几乎从win8一路到xp,通吃64位、32位。 
 
debug中有个可运行的。 
 
 
 
 |