[Asm] 纯文本查看 复制代码
.版本 2
.支持库 spec
.支持库 eAPI
.子程序 _按钮1_被单击
.局部变量 hwid, 文本型
.局部变量 运算, 整数型, , "4"
hwid = 编码_BASE64编码 (到字节集 (编辑框1.内容))
调试输出 (hwid, 取文本左边 (hwid, 1), 取文本中间 (hwid, 2, 1), 取文本中间 (hwid, 3, 1), 取文本中间 (hwid, 4, 1))
运算 [1] = 位异或 (4541, 取代码 (取文本左边 (hwid, 1), 1))
运算 [2] = 位异或 (5139, 取代码 (取文本中间 (hwid, 2, 1), 1))
运算 [3] = 位异或 (6059, 取代码 (取文本中间 (hwid, 3, 1), 1))
运算 [4] = 位异或 (6634, 取代码 (取文本中间 (hwid, 4, 1), 1))
编辑框2.内容 = 格式化文本 (“%d-%d-%d-%d”, 运算 [1], 运算 [2], 运算 [3], 运算 [4])
.子程序 编码_BASE64编码, 文本型, , BASE64编码处理;成功返回编码后的文本;
.参数 待编码数据, 字节集, , 待编码字节集
.局部变量 余数, 整数型
.局部变量 临时, 字节型, , "3"
.局部变量 变量, 整数型
.局部变量 集合, 字节集
.局部变量 长度, 整数型
.局部变量 字符, 字节集
.局部变量 i, 整数型
长度 = 取字节集长度 (待编码数据)
.如果真 (长度 < 1)
返回 (“”)
.如果真结束
余数 = 长度 % 3
.如果真 (余数 > 0)
待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数)
.如果真结束
长度 = 取字节集长度 (待编码数据)
字符 = 取空白字节集 (长度 × 4 ÷ 3)
i = 1
集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /”)
.变量循环首 (1, 长度, 3, 变量)
临时 [1] = 待编码数据 [变量]
临时 [2] = 待编码数据 [变量 + 1]
临时 [3] = 待编码数据 [变量 + 2]
字符 [i] = 集合 [右移 (临时 [1], 2) + 1]
字符 [i + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1]
字符 [i + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1]
字符 [i + 3] = 集合 [位与 (临时 [3], 63) + 1]
i = i + 4
.变量循环尾 ()
.如果真 (余数 > 0)
长度 = 取字节集长度 (字符)
.如果 (余数 = 1)
字符 [长度 - 1] = 到字节 (取代码 (“=”, ))
字符 [长度] = 到字节 (取代码 (“=”, ))
.否则
字符 [长度] = 到字节 (取代码 (“=”, ))
.如果结束
.如果真结束
返回 (到文本 (字符))