ls_list = "ASDFGHJKLZXCVBNMQWERTYUIOPasdfghjklzxcvbnmqwertyuiop1234567890!@#$%^&*()-_+=|}]{[:;?/>.<,`"
li_sum1 = pos(ls_list,mid(as_parm,1,1))
li_sum2 = pos(ls_list,mid(as_parm,2,1))
li_sum3 = pos(ls_list,mid(as_parm,3,1))
li_sum4 = pos(ls_list,mid(as_parm,4,1))
ll_loop = 5
ll_count=12
do while ll_loop < ll_count
if ll_loop + 3 <= ll_count then
//Pos()
//功能在一个字符串中查找所包含的另一个字符串的起始位置。
//语法Pos ( string1, string2 {, start } )
//参数string1:string类型,指定要从中查找子串string2的字符串string2:string类型,
//指定要在string1中查找的字符串start:long类型,可选项,指定从string1的第几个字符开始查找。
//缺省值为1返回值Long。函数执行成功时返回在start位置后string2在string1中第一次出现的起始位置。
//如果在string1中按指定要求未找到string2、或start的值超过了string1的长度,那么Pos()函数返回0。
//如果任何参数的值为NULL,Pos()函数返回NULL。
//用法Pos()函数在字符串查找时区分大小写,因此,"aa"不匹配"AA"。
//Mid()
//功能取字符串的子串。
//语法Mid ( string, start {, length } )
//参数string:string类型,指定要从中提取子串的字符串start:long类型,
//指定子串第一个字符在string字符串中的位置,第一个位置为1length:long类型,
//可选项,指定子串的长度返回值String。函数执行成功时返回string字符串中从start位置开始、长度为length的子串。
//如果start参数的值大于string中字符个数,那么Mid()函数返回空字符串。
//如果省略了length参数或length参数的值大于从start开始、string字符串中余下字符的长度,那么Mid()函数返回所有余下的字符。
//如果任何参数的值为NULL,Mid()函数返回NULL。
li_tmp1 = pos(ls_list,mid(as_parm,ll_loop,1),li_sum1) - li_sum1
li_tmp2 = pos(ls_list,mid(as_parm,ll_loop + 1,1),li_sum2) - li_sum2
li_tmp3 = pos(ls_list,mid(as_parm,ll_loop + 2,1),li_sum3) - li_sum3
li_tmp4 = pos(ls_list,mid(as_parm,ll_loop + 3,1),li_sum4) - li_sum4
li_sum1 += li_tmp1
li_sum2 += li_tmp2
li_sum3 += li_tmp3
li_sum4 += li_tmp4
li_sum1 = mod(li_sum1,25) + 1
li_sum2 = mod(li_sum2,25) + 1
li_sum3 = mod(li_sum3,25) + 1
li_sum4 = mod(li_sum4,25) + 1
li_tmp1 = li_tmp1 * 4 + li_tmp4 / 16
//Mod()
//功能求余数。
//语法Mod ( x, y )
//参数x:数值型变量或表达式,被除数y :数值型变量或表达式,除数返回值以x、y中数据
//类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回x除以y所得的余数 。
//如果任何参数的值为NULL,Mod()函数返回NULL。
li_tmp2 = li_tmp2 * 4 + mod(li_tmp4,16) / 4
li_tmp3 = li_tmp3 * 4 + mod(li_tmp4,4)
//Char()
//功能将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。
//语法Char ( n )
//参数n:字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量返回值Char。
//返回参数n的第一个字符。如果n参数的值为NULL,则Char()函数返回NULL。
ls_rtn = ls_rtn + char(li_tmp1) + char(li_tmp2) + char(li_tmp3)
ll_loop += 4
end if
loop
//已经知道ls_rtn求as_parm
//ls_rtn的ASCII值在48-90之间
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)