首页
社区
课程
招聘
[求助]求解密算法
发表于: 2010-9-8 09:54 4629

[求助]求解密算法

2010-9-8 09:54
4629
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期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
里面有mod啊,能完全单向解密吗?
2010-9-8 19:59
0
雪    币:
能力值: (RANK: )
在线值:
发帖
回帖
粉丝
3
变形Base64.
2010-9-8 20:20
0
游客
登录 | 注册 方可回帖
返回
//