闪讯编译
发布时间: 2022-01-25 03:23:27
A. 刚换了闪讯联网不会,求指教 系统是ubuntu14.04
浙江童鞋么 试试这个
1、新建一个C文件:snplugin.c
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<pppd/pppd.h>
#include<pppd/md5.h>
typedefunsignedcharbyte;
charpppd_version[]=VERSION;
staticintis_name_modified=0;
staticcharpwd[MAXSECRETLEN]={0};
staticoption_toptions[]={
{"pwd",o_string,pwd,
"pwd",
OPT_STATIC,NULL,MAXSECRETLEN-1},
{NULL}
};
voidgetPIN(byte*userName,byte*PIN){
//var
inti;//循环变量
longtimedivbyfive;//时间除以五
time_ttimenow;//当前时间,从time()获得
byteRADIUS[16];//凑位字符
bytetimeByte[4];//时间div5
bytebeforeMD5[32];//时间div5+用户名+凑位
MD5_CTXmd5;//MD5结构体
byteafterMD5[16];//MD5输出
byteMD501H[2];//MD5前两位
byteMD501[3];
bytetimeHash[4];//时间div5经过第一次转后后的值
bytetemp[32];//第一次转换时所用的临时数组
bytePIN27[6];//PIN的2到7位,由系统时间转换
//code
memcpy(RADIUS,"chongqingradius1",16);
timenow=time(NULL);
timedivbyfive=timenow/5;
for(i=0;i<4;i++){
timeByte=(byte)(timedivbyfive>>(8*(3-i))&0xFF);
}
for(i=0;i<4;i++){
beforeMD5=timeByte;
}
for(i=4;i<16;i++){
beforeMD5=userName[i-4];
}
for(i=16;i<32;i++){
beforeMD5=RADIUS[i-16];
}
MD5_Init(&md5);
MD5_Update(&md5,beforeMD5,32);
MD5_Final(afterMD5,&md5);
MD501H[0]=afterMD5[0]>>4&0xF;
MD501H[1]=afterMD5[0]&0xF;
sprintf(MD501,"%x%x",MD501H[0],MD501H[1]);
for(i=0;i<32;i++){
temp=timeByte[(31-i)/8]&1;
timeByte[(31-i)/8]=timeByte[(31-i)/8]>>1;
}
for(i=0;i<4;i++){
timeHash=temp*128+temp[4+i]*64+temp[8+i]
*32+temp[12+i]*16+temp[16+i]*8+temp[20+i]
*4+temp[24+i]*2+temp[28+i];
}
temp[1]=(timeHash[0]&3)<<4;
temp[0]=(timeHash[0]>>2)&0x3F;
temp[2]=(timeHash[1]&0xF)<<2;
temp[1]=(timeHash[1]>>4&0xF)+temp[1];
temp[3]=timeHash[2]&0x3F;
temp[2]=((timeHash[2]>>6)&0x3)+temp[2];
temp[5]=(timeHash[3]&3)<<4;
temp[4]=(timeHash[3]>>2)&0x3F;
for(i=0;i<6;i++){
PIN27=temp+0x020;
if(PIN27>=0x40){
PIN27++;
}
}
PIN[0]='\r';
PIN[1]='\n';
memcpy(PIN+2,PIN27,6);
PIN[8]=MD501[0];
PIN[9]=MD501[1];
strcpy(PIN+10,userName);//与Cracker.rar里面的有点出入。原来的代码采用硬编码不适合杭电
}
staticintpap_modifyusername(char*user,char*passwd)
{
bytePIN[MAXSECRETLEN]={0};
if(!is_name_modified){
getPIN(user,PIN);
strcpy(user,PIN);
is_name_modified=1;
}
if(passwd!=NULL){
strcpy(passwd,pwd);
}
return1;
}
voidplugin_init(void)
{
add_options(options);
pap_passwd_hook=pap_modifyusername;
}
2、在终端中运行如下2句命令:
gcc-c-Osnplugin.c-fPIC
gcc-shared-osnplugin.sosnplugin.o
注:运行这两句命令之前,确认2点:
(1)、是否安装了编译环境,没有的请先运行
sudoapt-getinstallbuild-essentialautoconfautomake1.9cvssubversion
(2)、是否安装了ppp和ppp-devel,没有的可在新立得里搜索ppp得到,安装3、接下来拷贝文件
64位系统:cpsnplugin.so/usr/lib64/pppd/2.4.4/
32位系统:cpsnplugin.so/usr/lib/pppd/2.4.4/4、新建名为sxnet的文件,内容如下:
#/etc/ppp/peers/sxnet
pluginrp-pppoe.so
pluginsnplugin.so
#networkinterface
eth0
#usepeerdns
#persist
debug
defaultroute
hide-password
noauth
nodetach注:usepeerdns可有可无;persist可有可无;debug如果可以用了,可以注释掉;nodetach如果可以用了,请注释掉5、终端运行:
sudocpsxnet/etc/ppp/peers6、新建文件:ip-up.local内容如下:
#!/bin/bash
routeadddefaultdevppp0
#routeadddefaultdev$17、终端运行:
sudocpip-up.local/etc/ppp/
sudochmoda+x/etc/ppp/ip-up.local8、ok,接下就可以拨号上网了:
终端运行:sudopppdcallsxnetname"这里填你的用户名"pwd"这里填密码"
B. 在 Mac 下能用的 闪讯(一个拨号软件) 能在ubuntu下使用吗
不能吧,系统都不一样,除非它有LINUX版本的,MAC和LINUX虽然算远亲,发展了这么久早就千差万别了,何况LINUX的软件比较杂,各发行版支持的格式都有一定的差距,只有用源码自己编译才能用上,MAC不属于开源的,它不可能提供源码的,LINUX拨号软件也不少阿,干嘛非用它啊?有点吹毛求疵的意思吧
C. 路由刷了openwrt后,如何把闪讯客户端编译进去 ,简单不
如果弄不到源代码,那么答案是很简单的,“不行”。
D. RT N16路由器刷固件后百分之九十的固件都无法使用客户端,该怎样解决.
闪讯使用的是802.1x网络传输协议的,普通路由器不支持802.1x的。其次闪讯每15秒会发送心跳包给客户端,判断是否是使用inode客户端登录。不是的话就断网。。楼主可以把路由器刷OpenWrt固件,然后编译client客户端上传到OpenWrt里。这样就可以里。。不过交叉编译挺复杂的。。而且不同型号的路由器使用的固件也不同。。
E. 闪讯的openwrt拨号插件 sxplugin.so,这个插件除了要对应相应的pppd版本之外,对
芯片也要对应的,附件里有ar71xx系列芯片对应的sxplugin.so 以及:mtk7620a 对应的sxplugin.so
对应全国各地的。
热点内容