ubuntu下 登陆电信“闪讯”的方法
1、新建一个C文件:snplugin.c
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- #include <pppd/pppd.h>
- #include <pppd/md5.h>
- typedef unsigned char byte;
- char pppd_version[] = VERSION;
- static int is_name_modified = 0;
- static char pwd[MAXSECRETLEN] = {0};
- static option_t options[] = {
- { "pwd", o_string, pwd,
- "pwd",
- OPT_STATIC, NULL, MAXSECRETLEN-1 },
- { NULL }
- };
- void getPIN(byte *userName, byte *PIN) {
- //var
- int i;//循环变量
- long timedivbyfive;//时间除以五
- time_t timenow;//当前时间,从time()获得
- byte RADIUS[16];//凑位字符
- byte timeByte[4];//时间 div 5
- byte beforeMD5[32];//时间 div 5+用户名+凑位
- MD5_CTX md5;//MD5结构体
- byte afterMD5[16];//MD5输出
- byte MD501H[2]; //MD5前两位
- byte MD501[3];
- byte timeHash[4]; //时间div5经过第一次转后后的值
- byte temp[32]; //第一次转换时所用的临时数组
- byte PIN27[6]; //PIN的2到7位,由系统时间转换
- //code
- memcpy(RADIUS, "chongqingradius1", 16);
- timenow = time(NULL);
- timedivbyfive = timenow / 5;
- for(i = 0; i < 4; i++) {
- timeByte[i] = (byte)(timedivbyfive >> (8 * (3 - i)) & 0xFF);
- }
- for(i = 0; i < 4; i++) {
- beforeMD5[i]= timeByte[i];
- }
- for(i = 4; i < 16; i++) {
- beforeMD5[i] = userName[i-4];
- }
- for(i = 16; i < 32; i++){
- beforeMD5[i] = 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[i] = timeByte[(31 - i) / 8] & 1;
- timeByte[(31 - i) / 8] = timeByte[(31 - i) / 8] >> 1;
- }
- for (i = 0; i < 4; i++) {
- timeHash[i] = temp[i] * 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[i] = temp[i] + 0x020;
- if(PIN27[i]>=0x40) {
- PIN27[i]++;
- }
- }
- 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里面的有点出入。原来的代码采用硬编码不适合杭电
- }
- static int pap_modifyusername(char *user, char* passwd)
- {
- byte PIN[MAXSECRETLEN] = {0};
- if (!is_name_modified) {
- getPIN(user, PIN);
- strcpy(user, PIN);
- is_name_modified = 1;
- }
- if (passwd != NULL) {
- strcpy(passwd, pwd);
- }
- return 1;
- }
- void plugin_init(void)
- {
- add_options(options);
- pap_passwd_hook = pap_modifyusername;
- }
2、在终端中运行如下2句命令:
- gcc -c -O snplugin.c -fPIC
- gcc -shared -o snplugin.so snplugin.
注:运行这两句命令之前,确认2点:
(1)、是否安装了编译环境,没有的请先运行
- sudo apt-get install build-essential autoconf automake1.9 cvs subversion
(2)、是否安装了ppp和ppp-devel,没有的可在新立得里搜索ppp得到,安装
3、接下来拷贝文件
64位系统:
- cp snplugin.so /usr/lib64/pppd/2.4.4/
32位系统:
- cp snplugin.so /usr/lib/pppd/2.4.4/
4、新建名为sxnet的文件,内容如下:
- # /etc/ppp/peers/sxnet
- plugin rp-pppoe.so
- plugin snplugin.so
- # network interface
- eth0
- #usepeerdns
- #persist
- debug
- defaultroute
- hide-password
- noauth
- nodetach
注:usepeerdns可有可无;persist可有可无;debug如果可以用了,可以注释掉;nodetach如果可以用了,请注释掉
5、终端运行:
- sudo cp sxnet /etc/ppp/peers
- sudo route add default dev ppp0
6、新建文件:ip-up.local内容如下
- #!/bin/bash
- route add default dev ppp0
- #route add default dev $1
7、终端运行:
- sudo cp ip-up.local /etc/ppp/
- sudo chmod a+x /etc/ppp/ip-up.local
8、ok,接下就可以拨号上网了:
终端运行:
- sudo pppd call sxnet name "这里填你的用户名" pwd "这里填密码"
以上方法已经在杭州电子大学测试成功
ubuntu下 登陆电信“闪讯”的方法相关推荐
- 闪讯客户端 linux,Linux操做系统下链接闪讯的方法(支持有线与无线)
1.前言 用过电信闪讯的同窗都知道,闪讯没有开发Linux的客户端程序,因此这让不少玩Linux操做系统同时又是闪讯用户的同窗很头疼,今天我就来介绍一下如何在Linux下链接闪讯网络,而且支持有线链接 ...
- 闪讯路由器linux系统,Linux操作系统下连接闪讯的方法(支持有线与无线)
一.前言 用过电信闪讯的同学都知道,闪讯没有开发Linux的客户端程序,所以这让很多玩Linux操作系统同时又是闪讯用户的同学很头疼,今天我就来介绍一下如何在Linux下连接闪讯网络,并且支持有线连接 ...
- linux系统的开发版连接wifi密码,Linux操作系统下连接闪讯的方法(支持有线与无线)...
一.前言 用过电信闪讯的同学都知道,闪讯没有开发Linux的客户端程序,所以这让很多玩Linux操作系统同时又是闪讯用户的同学很头疼,今天我就来介绍一下如何在Linux下连接闪讯网络,并且支持有线连接 ...
- Linux操作系统下连接闪讯的方法(支持有线与无线)
一.前言 用过电信闪讯的同学都知道,闪讯没有开发Linux的客户端程序,所以这让很多玩Linux操作系统同时又是闪讯用户的同学很头疼,今天我就来介绍一下如何在Linux下连接闪讯网络,并且支持有线连接 ...
- Ubuntu下搭建postgresql主从服务器(方法1)
Ubuntu下搭建postgresql主从服务器(方法1) 安装略 postgresql主服务器: $ vi /etc/postgresql/9.1/main/postgresql.conf 按a或i ...
- ubuntu下解决“无法获得锁 ”的方法_cppmylove的博客-CSDN博客_无法获得锁
ubuntu下解决"无法获得锁 "的方法_cppmylove的博客-CSDN博客_无法获得锁 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open ...
- linux卸载minicom,ubuntu下minicom超级终端的使用方法
ubuntu下minicom超级终端的使用方法 我的系统环境是ubuntu12.04 www.2cto.com 1:下载安装minicom #sudo apt-get install m ...
- 解决Ubuntu下软件包依赖关系的若干方法
解决Ubuntu下软件包依赖关系的若干方法 参考文章: (1)解决Ubuntu下软件包依赖关系的若干方法 (2)https://www.cnblogs.com/elnino/archive/2012/ ...
- 服务器装w7系统屏幕闪屏,CRT显示器总是闪屏怎么办?Win7系统下CRT显示器闪屏解决方法...
众所周知,CRT显示器是比较老款的显示器了,但是不少设计师考虑到色彩还原度问题,优先会选择CRT显示器,如果系统屏幕刷新频率设置不当就会导致CRT显示器闪屏的问题.那么CRT显示器总是闪屏怎么办?下面 ...
最新文章
- poj3934Queue(dp)
- IOS面试_1.浅析内存管理
- triplet loss后面不收敛_Policy Gradient——一种不以loss来反向传播的策略梯度方法...
- 【星球知识卡片】人脸属性编辑都有哪些核心知识点,如何长期进行学习
- ImportError: cannot import name FileStorage
- apache license 2.0如何使用防止法律纠纷_Thinkphp + queue 使用队列进行 邮件通知
- 【华为云技术分享】华为云文档数据库服务DDS监控告警全新优化
- 用什么软件可以检测苹果耳机芯片_精确空间感知的超宽频U1芯片,或许才是新iPhone的秘密武器...
- excel 区间人数柱状图_原来用Excel做数据分析如此简单!
- 计算机管理教学 (cmi) 包括( )等功能,计算机管理教学(CMI)的未来
- 硬盘数据恢复软件免费版有免费使用的吗
- 基于社交网络的推荐算法
- 论文阅读:A Survey on Deep Hashing Methods 综述:深度哈希方法
- 教程:Nodejs大漠插件开发游戏脚本实战
- 北京编程女子图鉴,谁说女子不如男
- xml 硕正报表_硕正轻量级富Web应用套件–硕正报表主要指标及功能清单
- 18-19款迈巴赫S400改装原厂3D大柏林之声,天籁之音
- 解决Stm32出现..\HARDWARE\ADC\adc.c(22): error: #20: identifier ADC_InitTypeDef is undefined异常
- App 应用托管平台
- 使用ashx文件响应来自JQuery的JSON请求