C#简易网络验证

image

C#简易网络验证

一个简单的C#网络验证,用于学习MaterialSkin和Windows Forms开发,毕竟学了C#总要拿来做做事情 😃

界面使用说明

数据库采用的sqlite,当用户初次双击启用软件的时候,程序会主动在当前目录生成一个名为data.db的数据库文件,该文件中主要包含两张数据表:

image

kami:记录卡密相关信息的数据表

net_log:记录用户登录信息的数据表

登录记录

该界面主要记录每次用户访问服务端的信息, 其界面如下:

image

如上图, 时间指的是用户访问的时间,卡密是访问的唯一手段,IP地址包含了用户的端口信息,状态指的是用户最终是成功访问还是失败,如果是因为卡密过期导致的原因会特意提示,最后是使用软件

搜索栏这里不过多介绍。

登录记录使用的是net_log这张数据表,该表的结构如下,如上面的成员对应:

image

在该界面右键会出现下面的菜单栏:

image

复制不过多介绍,导出(JSON)会根据用户的选择将最近一天\周\月的记录数据导出一个JSON格式的文件到选定的目录下(以追加的形式),删除记录会根据用户的选择将一天\周\月前的数据进行删除同步到数据库,避免记录数据过大导致的数据库文件臃肿,也可以在设置界面中选择定时清理登录记录刷新不过多解释。

卡密管理

image

如上图,各个成员其实没什么好介绍的,显示里的内容默认全都不选择的话就显示全部卡密。

卡密操作需要用户设置卡密类型卡密数量用户最后点击生成卡密,生成的结果会放在红框内的TextBox中,并同步刷新列表。删除过期卡 会删除数据库中所有过期卡密。

搜索栏这里不过多介绍。

卡密管理使用的是kami这张数据库表,该表的结构如下,如上面的成员对应:

image

在该界面右键会出现下面的菜单栏:

image

复制不过多介绍,操作中支持卡密的删除禁用激活刷新不过多解释。

设置界面

image

没实现太多的功能,主要是用于配置服务器地址端口,最后点击保存设置后会在程序目录下生成一个config.json的配置文件并重启软件,config.json内容如下:

image

以及一个定时清理登录记录的功能,大体流程就是生成一个Windows计划任务每个月1号凌晨3点调用编写的DbCleaner.exe程序来清理net_log表对应时间的数据:

image

image

数据包解析说明

数据包的解析效验主要在handleNetWorkData函数,当用户传来数据包后会进行解析,正常情况下的数据包结构应当如下:

            /* server recv
             {
                  "magic": "520"                                // 作为固定字节用来区分非法数据
                  "id": "ABCDEF123456",                         // 卡密
                  "timestamp": "1756357200",                    // 请求时间(Unix时间戳,表示2025-08-28 05:00:00)
                  "software":  "pubg v3"                        // 软件版本
                  "sign": "E10ADC3949BA59ABBE56E057F20F883E"    // 签名字段("sign": "md5(id + timestamp + secret)")
             }
             */

            /* server send
             {
                "status": 100,                  // 状态代码, 100(成功)或101(失败)或102(卡密过期)
             }
             */

handleNetWorkData函数中对数据包拆解,大体流程:效验magic ➡️ 时间戳验证 ➡️ 签名验证 ➡️ 数据库校验

image

项目成品:

C#简易网络验证.rar

posted @ 2025-08-29 23:58  旅行者-林小小  阅读(18)  评论(0)    收藏  举报