欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

搞定了 (1千字)

搞定了 (1千字)

谢谢letterweb。我下载了unfoxall之后,反编译,找到如下判断注册码的代码,有了源程序显然很简单,如下:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: CHECKSN.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

IF  .NOT. FILE((CSERIAL)) .OR.  .NOT. FILE((CSECRET))  //检查文件cserial.sys和csecret.sys是否存在
    LREGISTER = .F.    //不存在就未注册
    DO CHECKEXP        //检查是否过期
ELSE
    NSERIAL = FOPEN((CSERIAL))      //打开cserial.sys
    NSIZE = FSEEK(NSERIAL,0,2)
    = FSEEK(NSERIAL,0,0)
    NO = FREAD(NSERIAL,NSIZE)        //读取序列号
    NO = DESECRET(NO)                    //解密序列号
    = FCLOSE(NSERIAL)
    NSECRET = FOPEN((CSECRET))  //打开csecret.sys
    NSIZE = FSEEK(NSECRET,0,2)
    = FSEEK(NSECRET,0,0)
    CKEY = FREAD(NSECRET,NSIZE)  //读取注册码
    CKEY = DESECRET(CKEY)            //解密注册码
    = FCLOSE(NSECRET)
    KEY1 = SUBSTR(CKEY,1,4)          //注册码的前四位
    KEY2 = SUBSTR(CKEY,5,8)          //注册码的后四位
    CKEY = KEY2 + KEY1                  //前四位和后四位交换了一下
    CKEY = STR(VAL(CKEY) - 550331,8) //减去550331
    IF CKEY <> NO                                //差等于序列号吗?
      LREGISTER = .F.                        //不等则未注册
      DO CHECKEXP                          //检查是否过期
    ELSE
      LREGISTER = .T.                        //注册用户
    ENDIF
ENDIF
至此可以很轻易地写出注册机。checkexp.prg是对时间进行判断,即判是否过期,时间放在文件setdate.sys中。
BTW:我下载的unfoxall中带的敌后武工队的注册机怎么不灵光,只好自己把unfoxall搞定了。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功