zoukankan      html  css  js  c++  java
  • 拨号助手pppd插件用openwrt路由共享上网

    openwrt也是个linux系统,原则上用前一篇linux里提供的源码也可以编译成功。

    但是,因为在openwrt路由上,认证的方式有所区别,

    调试了很多次,发现pap-passwd-hook等hook都没有执行,而且密码也不再从pap-secrept里获取,由openwrt自带的命令行直接提供。经过多次调试后,写了一个最最简单的版本。

    #include <stdio.h>
    #include <string.h>
    #include <pppd/pppd.h>
    #include "dialcrypt.h"

    char pppd_version[] = VERSION;

    void plugin_init(void)
    {
    info("plugin cumtdial init !! by (i@xujif.com)");
    info("cumtdial : user:%s ;passwd<hidden>",user);
    char modefied_pwd[MAXSECRETLEN] = {0};
    cumt_dial_get_entire_cipher(passwd,modefied_pwd);
    strcpy(passwd,modefied_pwd);
    info("cumtdial : modefied passwd success");
    }

    直接在init里进行密码初始化,这样能认证成功。

    但是理论上这有一个很严重的缺陷,因为密码只会计算一次,如果碰到网线拔出又重新插入等问题的话,因为pppd进程没有重启,而上一个密码又已经过期,会导致无法认证,所以,还是得想办法获得一个每次认证都会执行的hook进行modefied passwd。

    不过暂时先用着吧,改天找到hook了再更新吧。

    因为不同openwrt下pppd版本可能不同,所以提供源码下载(里面只有mips的静态库以供编译,没有mipsel的):router



    文章来源:http://blog.xujif.com/archives/dial-helper-for-openwrt-pppd/
  • 相关阅读:
    JDBC与ODBC的区别与应用
    java web项目中classes文件夹下的class和WEB-INF/lib中jar里的class文件加载顺序
    构造方法的继承
    2015-J. PUMA
    阶乘之和 南邮NOJ 1093
    阶乘之和 南邮NOJ 1093
    阶乘之和 南邮NOJ 1093
    阶乘之和 南邮NOJ 1093
    数的计算
    数的计算
  • 原文地址:https://www.cnblogs.com/xujif/p/2277873.html
Copyright © 2011-2022 走看看