导入 网卡信息 别名 GetAdaptersInfo 支持库 "iphlpapi.dll",2;
托盘类 托盘(长度=488,标识=7,回调=$3FF,信息图标=4,提示="游戏登陆器",标题="元宇宙",信息="托盘图标上点击鼠标右键可以多开!");
常量 托盘消息=$3FF;坐标类 位置;执行类 执行(标志=$40,长度=$3C,显示=5);地址类 IP(协议=2,端口=5);
地址类 下载(协议=2,端口=20480);逻辑字体类 字号(高度=-13,名字="微软雅黑")
整数 字体,本机=1,缓存=20,校验,CRC=2,命令,暗号=$48000,机器=8192,多开=1,内网,性别=1;
文本 网址[48]="rxjh-1252114143.cos.ap-chengdu.myqcloud.com",路径[64]="list.txt";
小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
判断(消息)
为 窗口关闭 {显隐窗口(窗口, 窗口隐藏)}
为 单击左键 {左键点击(参数);}
为 托盘消息 {托盘点击(数据);}
为 窗口重绘{背景图片(窗体,图片)}
为 按下左键{发送消息(窗口,$A1,2,0)}
为 绘制按钮,绘制静态{绘制颜色(参数, $FF00);}
否则{处理窗口(窗口,消息,参数,数据)}
结束;
小程序 绘制颜色(整数 设备,整数 颜色);
选择对象(设备,字体);文本改色(设备,颜色);
模式填充(设备,1);固有对象(5);
结束;
小程序 托盘点击(整数 动作);
判断(动作)
为 释放左键{显隐窗口(窗体, 窗口显示);}
为 释放右键{窗口置顶(窗体);读取光标(位置);
展示菜单(菜单.1,$28,位置.左,位置.顶,窗体,0);}
结束;
小程序 程序退出
托盘图标(2, 托盘);
网络终止;停止(0);
结束;
小程序 窗体启动
如果(进程令牌(-1, $1FF, @命令)!=0){
令牌权限(命令, 0, @本机, 16,0, 0);}
字体=新建字体(字号);加载注册;
改窗口值(窗体,窗口扩展,$80000)
设置透明(窗体,$FF00FF,0,1)
CRC=申请内存(10240);
校验=?+1024;命令=?+4000;
缓存=?+96;校验表(CRC);
托盘.窗口= 窗体;
托盘.图标= 程序.图标;
托盘图标(0, 托盘);
托盘.标识= $17;
执行.动作="open"
执行.路径="client.exe"
执行.参数="127.0.0.1 1300"
执行.目录="client"
网络启动($202,校验);
网卡信息(校验,@机器);机器=校验+472;
循环在(英文比较(机器,"0.0.0.0")=0){机器+640;}
本机=转换地址(机器-40);机器-72;机器(0)&=序列号(1);机器(12)&=序列号(2);机器(16)&=序列号(3);
机器(20)&=序列号($80000002);机器(24)&=序列号($80000003);机器(28)&=序列号($80000004);
机器-132;加文字(机器,机器-260);机器=校验数据(机器,164);
内网= 分配(网络型,数据报,报协议);
设置接口(内网, 65535, 允许广播, @多开, 2);多开=0;
如果(绑定(内网,IP,16)=0){异步通知(内网,窗体, $39F, 接口读);
IP.地址=-1;发到(内网,@暗号,8,0,IP,16);}
下载.地址=解析
下载文件(0);
读取消息
结束;
小程序 序列号(整数 标识)
指令[8B45080FA231C831D0];结束;

小程序 左键点击(整数 参数)
判断(参数)
为 1,1001{运行("notepad.exe",窗口显示)}
为 2,1002{注册显示}
为 3,1003{启动游戏}为 4,1004{程序退出}
为 5{显隐窗口(窗体,窗口隐藏)}
为 107{性别=1;}为 108{性别=2;}为 109{注册账号(性别);}
为 111{注册账号(3);}为 112{注册账号(4);}
结束;
小程序 启动游戏;
如果(多开=0)返回
托盘图标(1, 托盘);执行文件(执行);
左键点击(5);开启线程(@游戏线程,0, 执行.进程);
结束;
小程序 游戏线程(整数 进程);
等单对象(进程,-1);
显隐窗口(窗体, 窗口显示);
结束;
小程序 解析;
整数 解,析;
解=解析域名(网址);
如果(解){析<解+12;
解< ~析;}
返回(解);
结束;
小程序 检验文件(整数 文件);
整数 长度,数据;
文件=开文件(文件,0);
如果(文件>0){
长度=文件大小(文件,0);
数据= 申请内存(长度); 读文件(文件,数据,长度);
关文件(文件);文件=校验数据(数据,长度);
释放内存(数据);}
返回(文件);
结束;
小程序 检查文件;
整数 内容=校验,特征,更新=0;文本 名称[48];
显隐窗口(进度,窗口显示);
换行@
拆分式(内容,"%X %s",@特征,名称);
如果(特征=0){删除文件(名称);} 否则{
格式化(路径,"%s.zip",名称);删除文件(路径);
如果(特征!=检验文件(名称)){删除文件(名称);特征=倒查字符(名称,47);
如果(特征>0){特征&=92;创建目录(名称,0);}更新++;
格式化(命令,"expand.exe -r -F:* %s %s",路径,名称);
延时(100);下载文件(1);}}内容=查找文字(内容,"\r\n");
如果(内容(2)){内容+2;跳到 换行;}
如果(更新){信息框(0,"可以开始游戏了","更新完成",信息图标)
返回}显隐窗口(进度,窗口隐藏);
启动游戏
结束;
小程序 校验表(整数 数据);
指令[8B7D0830C90FB6C1B508D1E87305352083B8EDFECD75F3ABFEC175E9];
结束;
小程序 校验数据(整数 数据,整数 长度);
指令[8B75088B4D0C8B3D];置入[地址 CRC];
指令[31C04831DB8A1E30C3C1E80833049F464975F283F0FF];
结束;
小程序 下载文件(整数 模式);
局部 整数 网络,文件,长度,总长=1024,缓冲,已写=0,状态=0; 文本 内容[120];
网络= 分配(2,1,6);
如果(连网(网络,下载,16)=0){
格式化(内容,"GET /%s HTTP/1.1\r\nHost: %s'\2'",路径,网址)
长度=文字长度(内容);发送(网络, 内容, 长度, 0)
如果(模式=1){文件=建文件(路径,0);}
消息事件;重读:
长度 = 接收(网络, 缓存, 5120, 0)
如果(状态=0){状态=转整数(缓存+9);
如果(状态!=200){跳到 无文件;}
缓冲=查找文字(缓存,"Content-Length: ");
如果(缓冲>0){总长=转整数(缓冲+16)}
缓冲=查找文字(缓存,"'\2'") +4;长度 -= 缓冲 - 缓存;
}否则{缓冲=缓存;}已写+=长度;
判断(模式)为 0{缓冲(长度)=0;文字复制(校验,缓冲);}
为 1{写文件(文件,缓冲,长度);
发送消息(进度,$402,已写*100/总长,0);
如果(已写<总长){跳到 重读;}}
如果(模式=1){关文件(文件);运行(命令, 0);}
}否则{无文件:
信息框(0,路径,"无法下载",$10);}
关闭(网络)
结束;


费先生
1 声望0 粉丝