关于破解广州天翼校园 + 小米路由器实现自动上网 突破wifi限制

关于破解广州天翼校园 + 路由器刷固件 实现自动上网 突破wifi限制

有位大神告诉我发现了github上有人破解了广州天翼校园加密。具体仓库请点击链接EsDialerGD 代码实现了认证和keep请求。

接下来我会介绍如何通过以上代码完成小米路由器3g的自动认证上网逻辑。

使用wireshark抓包确定请求url

EsDialerGD项目默认不提供相关的请求url
这些url需要自行抓包获取,url包括:

  • ESD_TICKET_URL:ticket url
  • ESD_AUTH_URL: auth url
  • ESD_KEEP_URL:keep url
  • ESD_TERM_URL:term url 此选项并不重要,如若不存在不影响上网。

ps 程序默认的获取config url 为重定向地址ip的url,但在我们学校这个url是另外一个ip地址,所以具体的url需要用wireshark抓包拿到。以我们学校为例,需要修改源代码中的auth.c文件:

	int get_ticket(AUTH_CONTEXT *ctx) {
    if (!ctx->ticket_url[0]) {
        dbgout("ticket_url not found");
        goto _fail;
    }
    update_local_time(ctx);
    char data[UD_BUF_SIZE] = {0};
    char buf[UD_BUF_SIZE] = {0};
    char md5_hex[64] = {0};
    build_ticket_payload(ctx, data, md5_hex);
    char headers[8][HEADER_LEN];
    build_headers(ctx, headers, md5_hex);
             (*((uint8_t *) (md5_bin + 1))),
             (*((uint8_t *) (md5_bin + 2))),
             (*((uint8_t *) (md5_bin + 3))),
             (*((uint8_t *) (md5_bin + 4))),
             (*((uint8_t *) (md5_bin + 5))));
    dbgout("Fake MAC=%s", ctx->mac_addr);
    
    snprintf(ctx->client_id, 64, "%08X-%04X-%04X-%04X-%04X%08X",
             (*((uint32_t *) md5_bin)),
             (*((uint16_t *) (md5_bin + 1))),
             (*((uint16_t *) (md5_bin + 2))),
             (*((uint16_t *) (md5_bin + 3))),
             (*((uint16_t *) (md5_bin + 4))),
             (*((uint32_t *) (md5_bin + 5))));
    dbgout("Fake ClientID=%s", ctx->client_id);

    if (cdc_domain) strcpy(ctx->cdc_domain, cdc_domain);
    if (cdc_area) strcpy(ctx->cdc_area, cdc_area);
    if (cdc_schoolid) strcpy(ctx->cdc_schoolid, cdc_schoolid);
    strcpy(ctx->ostag, ostag);
    strcpy(ctx->host_name, host_name);
    strcpy(ctx->user_agent, user_agent);
    strcpy(ctx->algo_id, algo_id);
    char *ticker_url_buffer = malloc(2048);
    //使用抓包获取到的config_url 
    memset(ticker_url_buffer, 0, 2048);
    strcat(ticker_url_buffer, "http://14.146.227.141/index.cgi?wlanuserip=");
    strcat(ticker_url_buffer, ctx->ipv4_addr);
    strcat(ticker_url_buffer, "&wlanacip=61.142.108.88&portal_node=http://125.88.59.131:10002");
    if (get_config(ctx, ticker_url_buffer)) {
        free(ticker_url_buffer);
        goto _fail;
    }
    free(ticker_url_buffer);
    return 0;
    _fail:
    dbgout(FAILED_STR);
    return -1;
}

如果程序编译后无法正常认证,请自行抓包确认一下URL,并且需要确认认证的固件ID为54EB0E0D-58FE-46E2-8629-0A517E2785F4

CMakeLists.txt文件

由于需要运行在小米路由器中,需要交叉编译。为了方便期间,我决定用cmake实现编译脚本,EsDialerGD项目默认只使用了curl链接库,所以动态链接并不麻烦。 我的CMakeLists.txt文件的代码如下:

cmake_minimum_required(VERSION 3.2)

set(PROJECT_NAME EsDialerGD)
set(PROJECT_SOURCE_FILES
        auth.c
        codec.c
        http_req.c
        md5.c
        str_extract.c
        main.c)

project(${PROJECT_NAME} C)

option(USE_SYSTEM_CURL "Set to ON to use system default curl otherwise your must define curl include path." OFF)

message(STATUS "-------------------------------------------")
message(STATUS "Options USE_SYSTEM_CULR " ${USE_SYSTEM_CURL})
message(STATUS "Options LIB_PATH" ${LIB_PATH})
if(NOT USE_SYSTEM_CURL)
        if(NOT CURL_INCLUDE_PATH OR NOT LIB_PATH)
        message(ERROR "Your must define curl include path when not use system curl.")
        exit(1)
        else()
        include_directories(${CURL_INCLUDE_PATH})
        link_directories(${LIB_PATH})
        endif()
endif()
add_executable(${PROJECT_NAME} ${PROJECT_SOURCE_FILES})
set_property(TARGET ${PROJECT_NAME} PROPERTY C_STANDARD 99)
target_link_libraries(${PROJECT_NAME} curl)

其中需要指定三个变量:

  • USE_SYSTEM_CURL:是否使用系统的curl 当在交叉编译时必须使用交叉编译toolchains提供的curl链接库。
  • CURL_INCLUDE_PATH:指定make文件的 -i 参数 include目录。此目录为交叉编译toolchains提供的include目录
  • LIB_PATH:指定交叉编译toolchains 提供的lib目录

使用linux编译目标文件

这里以小米路由器3g为例子,但其他的可以刷openwrt路由器也是可以的,具体的步骤如下

//下载小米路由器提供的toolchains
cd /root
wget http://bigota.miwifi.com/xiaoqiang/sdk/tools/package/sdk_package_r3p.zip
unzip sdk_package_r3p
mkdir bin && cd bin
git clone https://github.com/claw6148/EsDialerGD.git
cd EsDialerGD


vim CMakeLists.txt
//这里将我上面的CMakeLists.txt文本拷贝进去

vim config //在config文件中添加如下内容
#!/bin/bash
ROOTDIR="/root/sdk_package/"
toolchain="${ROOTDIR}toolchain"
CURL="${ROOTDIR}include/"
LIB="-Wl,--rpath-link ${ROOTDIR}lib"
LIBRARY="${ROOTDIR}lib/"
export CXX="${toolchain}/bin/arm-xiaomi-linux-uclibcgnueabi-g++"
export CC="${toolchain}/bin/mipsel-xiaomi-linux-uclibc-gcc-4.8.5"
mkdir build
cmake -D CURL_INCLUDE_PATH=${CURL} -D LIB_PATH=${LIBRARY} .
cd build && cmake --build ..
chmod a+x ./config
./config

接下来将编译好的EsDialerGD文件拷贝到路由器中,并加上守护进程。就可以实现自动认证上网。

  • 5
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
天翼校园客户端可以自动登录功能可能会出现问题的原因有两个。一个是用户在安装天翼校园客户端之前没有卸载原来的天翼宽带客户端,因为它们不能共存。所以建议用户在安装天翼校园客户端之前,先卸载原来的天翼宽带客户端,然后重启电脑,在重启电脑之后再安装天翼校园客户端。 另一个原因是中国电信暂时放开了天翼校园客户端的端口,改为通过网页认证进行登录上网,不再需要使用天翼校园客户端进行拨号认证。这意味着学生们可以直接通过网页的形式进行登录上网,不再需要使用天翼校园客户端。但中国电信并没有对导致问题的原因做出任何官方解释。 需要注意的是,天翼校园客户端自去年10月份之后就没有更新过,而且安装文件曾被替换过一次。因此,有些人对该客户端是否被挂木马存在疑虑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [天翼校园客户端问题总结及解决办法](https://blog.csdn.net/weixin_39908616/article/details/119624993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [天翼,有毒?“校园客户端挂马事件”雷锋网独家解析](https://blog.csdn.net/weixin_34295316/article/details/90418195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值