吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1050|回复: 42
上一主题 下一主题
收起左侧

[原创] 一款WIFI密码搜索软件的授权算法分析

[复制链接]
跳转到指定楼层
楼主
GTXFuryNano 发表于 2026-3-18 15:01 回帖奖励
本帖最后由 GTXFuryNano 于 2026-3-18 20:45 编辑

这两天笔者逛某视频软件时,发现一款声称可以专门针对运营商宽带赠送的路由器而优化的密码搜索软件,笔者下载后发现软件居然需要授权。

于是笔者在第二天想要回复作者时,却发现视频已经被删,无法联系。

本着测试软件的需求,笔者尝试对软件进行分析。
首先查壳,得知本软件为使用PyInstaller打包的Python文件,那么这下就好办了。

准备PyInstaller脱壳工具pyinstxtractor-ng,使用命令行对软件进行脱壳得到pyc文件。

观察信息得到核心文件为19.9.2.pyc文件,接下来就可以使用pyc反编译工具得到源代码了,因为笔者没有准备python环境,因此这里笔者使用在线的反编译工具对软件进行反编译。

这时候我们返回软件,来到激活界面,随意输入一个授权码,观察错误提示。

根据错误提示,打开反编译出来的代码,搜索这个错误提示,顺利定位到程序验证段。

验证部分代码如下:
[Python] 纯文本查看 复制代码
    def verify_auth_code(self, code_str):
        try:
            code = int(code_str.strip())
            if len(code_str.strip())!= 4:
                return (False, '授权码错误')
            else:
                now = datetime.datetime.now()
                current_hhmm = now.hour * 100 + now.minute
                valid_times = set()
                for offset in range((-60), 61):
                    target_time = now + datetime.timedelta(minutes=offset)
                    target_hhmm = target_time.hour * 100 + target_time.minute
                    valid_times.add(target_hhmm)
                if code in valid_times:
                    return (True, '授权成功')
                else:
                    return (False, '授权码已过期')
        except ValueError:
            return (False, '授权码错误')
        except Exception as e:
            print(f'验证授权码异常: {e}')
            return (False, '授权验证失败,请重试')

我们来分析这段代码。
首先,代码会删除首尾的空格,将输入的内容转换为整数型,同时判断长度是否为4位,如不是则提示授权码错误,代码如下:
[Python] 纯文本查看 复制代码
 code = int(code_str.strip())
            if len(code_str.strip())!= 4:
                return (False, '授权码错误')

当代码等于4位后,进入授权码运算部分,其逻辑为先获取当前系统时间,并生成为小时+分钟组成的四位数字,代码如下:
[Python] 纯文本查看 复制代码
                now = datetime.datetime.now()
                current_hhmm = now.hour * 100 + now.minute

随后,和符合程序算法要求的授权码进行比对,这里的算法是生成以当前电脑时间前后60分钟的所有小时+分钟组成的四位数字,格式如下:
[Asm] 纯文本查看 复制代码
假如当前时间是
14:00
那么符合程序算法要求的授权码为
1400
1401
......
1500
或
1359
1358
......
1300

其对应的代码部分是:
[Python] 纯文本查看 复制代码
valid_times = set()
                for offset in range((-60), 61):
                    target_time = now + datetime.timedelta(minutes=offset)
                    target_hhmm = target_time.hour * 100 + target_time.minute
                    valid_times.add(target_hhmm)

如果你输入的是符合程序要求的4位数字,并且与算法比对成功,则返回授权成功。如果时间超出算法要求,则返回授权码已过期。代码如下:
[Python] 纯文本查看 复制代码
if code in valid_times:
                    return (True, '授权成功')
                else:
                    return (False, '授权码已过期')

如果你胡乱输入一串数字但是通过了第一层的验证(正常来说不会到这一步,之所以会写这个很可能是做了个小的暗装,在汇编层面增加阻碍),则提示授权码错误或授权验证失败,请重试,这部分代码如下:
[Python] 纯文本查看 复制代码
 if code in valid_times:
                    return (True, '授权成功')
                else:
                    return (False, '授权码已过期')
        except ValueError:
            return (False, '授权码错误')
        except Exception as e:
            print(f'验证授权码异常: {e}')
            return (False, '授权验证失败,请重试')

以上算法分析完毕,现在来实战一下。目前电脑时间是14:10,我们进入授权页面,输入1430试试。



顺利通过验证。证明分析无误。

在程序根目录生成了一个授权的文本型文件auth.lic,内容应该是本机的机器码。删除该文件后,软件重回未授权状态(笔者测试符合算法的数个授权码生成的授权文件内容均一致,这里仅讨论软件的授权算法故不作细致分析)。

软件方面目前测试功能也能正常使用,至于能否查找到WiFi的密码,这就要交给时间的验证了。

正好笔者目前使用的电脑内安装了易语言的编程环境,这里就简单通过易语言写一个keygen吧

总结:本次简单的展示了通过逆向软件内置算法计算授权码的分析流程,得益于软件能够轻松被脱壳和逆向,我们很容易就能看到软件的源代码,从而解析出其自带的授权码算法。事实上,本软件拥有多种可以绕过授权的方案:一是本文中展示的通过其算法计算出软件的授权码;二是可以通过X64DBG等逆向工具爆破检测是否授权或授权码检测部分;三是分析其授权文件auth.lic的算法从而仿冒已授权文件实现激活。
以上仅供讨论软件攻防技巧学习使用,如有需要还请大家支持正版软件!
附录:软件放到后面了,后附网络扫描病毒信息,部分杀毒软件报毒,不放心可放入虚拟机测试。

链接:https://980.lanzouu.com/iCUU53kwlqcf

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
wmr11 + 1 谢谢@Thanks!
Mikakunin + 1 + 1 我很赞同!
shenhua545 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
Henglie 发表于 2026-3-18 16:50
啊这。。。。?拿下py源码之后不能直接无条件跳转嘛?感觉爆破更方便些
推荐
qiuruoli 发表于 2026-3-18 18:15
试了一下,就是爆破WiFi密码,且不说现在密码都是中英文大小写混着来,就算密码是12345678,软件也不可能第一时间解开。不过作为一款查看已经链接过WiFi密码查看器倒是很合适
最后辛苦大佬分析软件。
沙发
plwww 发表于 2026-3-18 15:11
3#
zljxaoshuai 发表于 2026-3-18 15:12
不错非常奈斯
4#
zj35155 发表于 2026-3-18 15:13
楼主,我是小白,啥都不懂,这款软件安装上是可以搜到MM吗?
5#
likewapj 发表于 2026-3-18 15:16
下来试试,看看咋样
6#
 楼主| GTXFuryNano 发表于 2026-3-18 15:24 |楼主
plwww 发表于 2026-3-18 15:11
试了一下,感觉是玩具

不太清楚软件是不是真的有效,但是看他运行的过程感觉有点过于快速,这个还得去看它源码才能知道
7#
 楼主| GTXFuryNano 发表于 2026-3-18 15:25 |楼主
zj35155 发表于 2026-3-18 15:13
楼主,我是小白,啥都不懂,这款软件安装上是可以搜到MM吗?

按照描述说是可以的,但是不确定是否能真的有效
8#
joexv 发表于 2026-3-18 15:26
应该就是个玩具。。
9#
不苦小和尚 发表于 2026-3-18 15:29
前几天也在b站上看到了
10#
ak6 发表于 2026-3-18 15:37
这类软件都是看运气,按逻辑去碰几率
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-3-18 20:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表