閃訊編譯
發布時間: 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
對應全國各地的。
熱點內容