锐捷共享助手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中有个可运行的。
|