zh74 发表于 2013-1-28 21:10:02

没精力弄这个了,帮顶起。。。

flytoday 发表于 2013-1-28 21:43:38

(defun rere( / 已注册码 注册码 输入注册码)
(setq 已注册码 (vl-registry-read "HKEY_CURRENT_USER\\Software\\solycad" "SN"))
(setq cpusn (cpu))
(setq 注册码 (strcat (加密字串 (substr cpusn 2 4) ) (加密字串 (substr cpusn 7 4) )))
(princ (strcat " 你要给别人的注册码为:" 注册码 "\n")) ;显示已注册码 便于调试,给程序不要有这条啊,
(if (/= 已注册码 注册码)
   (progn
   (setq 已注册码 注册码)
   (princ (strcat "    申请码为:    " "\n\n" cpusn))
   (setq 输入注册码 (getstring "\n请输入已注册码:"))
   (if (/= 已注册码 输入注册码)
    (progn
   (alert "请输入正确的已注册码")
   (exit)
    )
    (progn
   (vl-registry-write "HKEY_CURRENT_USER\\Software\\solycad" "SN" 输入注册码)
       (princ "注册成功!")
    )
   )
   )
   (alert " \n   已注册")
)
(princ)

)
天明兄弟哪些删除才能提示请输入注册吗。。。。我都显示已注册。。。
还有别人的注册码是怎么取得。。。。。。。。。。。。。。。。。。。
还有那个注册码是怎么算的。。

hao3ren 发表于 2013-1-29 00:12:09

(setq 注册码 (strcat (加密字串 (substr cpusn 2 4) ) (加密字串 (substr cpusn 7 4) )))
已经注册了那就删除注册表

flytoday 发表于 2013-1-29 09:08:52

请哪位兄弟回答下注册码是怎么算的

gzxl 发表于 2013-1-29 12:03:46

楼主可别将这两个程序拿去卖钱,这两个程序还不够完善
不然人家好心帮忙就变成害了大家

flytoday 发表于 2013-1-29 13:47:22

谢谢大家了完美解决了哈哈

革天明 发表于 2013-1-29 13:57:30

本帖最后由 革天明 于 2013-1-30 22:22 编辑

flytoday 发表于 2013-1-29 13:47 static/image/common/back.gif
谢谢大家了完美解决了哈哈
下面是一个完整的注册模块,注册一次就无需要注册了,更改用户名必须重新注册,如果重装系统也有可能要重新注册,注册使用(flytoday-zhuceMA "BFEBFBFF000206A7" "革天明")这样的格式。有人不知道如何保护自己的程序,下面大家试试如果你不注册,你还能不能使用下面的几个 命令:L M PE TR。。。
(defun unaverival ()
    (defun c:L () (list))
    (defun c:M () (list))
    (defun c:PE () (list))
    (defun c:tr () (list))
    (defun c:CHA () (list))
    (defun c:AA () (list))
    (defun c:O () (list))
    (defun c:RO () (list))
)
(defun c:test9 (/ dclid dclname filen gyxh stream tempname)
;;------------------------CPU--------------------------------
;;不明出处
(defun CPU (/ Vlist VObj lcom lExecQuery item)
    (vl-load-com)
    (setq Vlist '())
    (if      (setq VObj (vlax-create-object "wbemscripting.swbemlocator"))
      (progn
      (SETQ lcom (VLAX-INVOKE
                     VObj      'ConnectServer            "."
                     "\\root\\cimv2"         ""            ""
                     ""                ""         128            nil
                  ) ;_ 结束VLAX-INVOKE
      ) ;_ 结束SETQ
      (setq lExecQuery
               (vlax-invoke
               lcom
               'ExecQuery
               ;;"Select * From Win32_BIOS"
               "Select * from Win32_Processor"
               ) ;_ 结束vlax-invoke
      ) ;_ 结束setq
      (vlax-for item lExecQuery
          (setq      Vlist (vlax-get item 'ProcessorId) ;_ 结束cons
          ) ;_ 结束setq
      ) ;_ 结束vlax-for
      (vlax-release-object lExecQuery)
      (vlax-release-object lcom)
      (vlax-release-object Vobj)
      )
    )
    Vlist
)
;; --------------------字串分解----------------------------------
(defun 字串分解 (字串 / i k s lst)
    (setq i 0
          k (chr 160)
    )
    (while (/= "" (setq s (substr 字串 (setq i (1+ i)) 1)))
      (if (< s k)
      (setq lst (cons s lst))
      (setq lst (cons (substr 字串 i 2) lst)
            i          (1+ i)
      )
      )
    )
    (reverse lst)
)

;;-------------------------加密字串---------------------------------------------
(defun 加密字串 (字串 / 字串表 串)
    (setq 串 字串)
    (setq 字串表 (字串分解 串))
    (setq 串 (apply 'strcat (mapcar '(lambda (X) (加密字符 X)) 字串表)))
)

;;-----------------------------加密字符------------------------------------------------
;;精华所在:密=字符+字符对5求余
(defun 加密字符 (字符)
    (chr (+ (ascii 字符) (rem (ascii 字符) 5)))
)
;;以上是局部函数



(defun act-dcl-in ()
    (setq yhm (get_tile "YHM"))
    (setq zcm (get_tile "ZCM"))
)
(defun flytoday-zhuce      ()
    (setq yhm (apply '+ (vl-string->list (strcat cpusn yhm))))
    (setq date (+ (* 16 (fix (getvar "cdate"))) yhm))
    (vl-registry-write
      "HKEY_CURRENT_USER\\Software\\solycad"
      "SNstr"
      date
    )
    (setq zcm (- (atoi zcm) 3))
    (setq date (rem date 997))
    (if      (= zcm date)
      (progn (princ "\n感谢注册")
             (vl-registry-write
               "HKEY_CURRENT_USER\\Software\\solycad"
               "SNfly"
               (+ 3 zcm)
             )
      )
      (c:test9)
    )

)

;;获取CPUID
(setq cpusn(cpu))
;;对获得的字符串进行打乱,增加破解难度
(setq      cpusn (strcat (加密字串 (substr cpusn 2 4))
                      (加密字串 (substr cpusn 3 4))
                      (加密字串 (substr cpusn 7 4))
                      (加密字串 (substr cpusn 6 3))
            )
)
(setq      dclname
         (cond
         ((setq tempname (vl-filename-mktemp "gps-dcl-tmp.dcl")
                  filen         (open tempname "w")
            )
            (foreach stream
                     '(
                     "test:dialog{\n"
                     "label=\"简单注册 by革天明\";\n"
                     ":column{\n"
                     ":edit_box{key=\"YM\";label=\"掩码 \";}\n"
                     ":edit_box{key=\"YHM\";label=\"用户名\";}\n"
                     ":edit_box{key=\"ZCM\";label=\"注册码\";}\n"
                     "}\n"
                     ":row{\n"
                     ":button{key=\"IN\";label=\"确定\";}\n"
                     ":button{is_cancel=true;key=\"cancel\";label=\"取消\";}\n"
                     "}\n"
                     "}\n"
                      )
            (princ stream filen)
            )
            (close filen)
            tempname
         )
         )
)
(setq dclid (load_dialog dclname))
(if (not (new_dialog "test" dclid))
    (progn (alert "dcl对话框加载失败.") (exit))
)
(set_tile "YM" cpusn)
;;禁止对此内容进行修改,防止用户修改硬件掩码
(mode_tile "YM" 1)
(action_tile "IN" "(act-dcl-in) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq dd (start_dialog))
(if (= 1 dd)
    (flytoday-zhuce)
)
(unload_dialog dclid)
(vl-file-delete dclname)
)
;;生成注册码,大家可以直接使用,也就是cpusn是(CPU)命令生成的字符串,yhm就是用户名中填入的字符串;;例子(flytoday-zhuceMA "BFEBFBFF000206A7" "革天明"),返回的是537
(defun flytoday-zhuceMA      (cpusn yhm /)
(setq yhm (apply '+ (vl-string->list (strcat cpusn yhm))))
(setq date (+ (* 16 (fix (getvar "cdate"))) yhm))
(setq date (rem date 997))
;;997是1000以内最大质数,可增加反破解的难度
(+ date 3)
)
;;检查是否注册
(defun flytoday-zhuce-check ()
(setq      snsn (vl-registry-read
               "HKEY_CURRENT_USER\\Software\\solycad"
               "SNfly"
             )
)
(if (= nil snsn)
    (progn(unaverival )(c:test9))
    (progn
      (if (setq      snstr (vl-registry-read
                        "HKEY_CURRENT_USER\\Software\\solycad"
                        "SNstr"
                      )
          )
      (progn
          (if (= (rem snstr 997) (- snsn 3))
            (princ "\n已经注册过了")
         (progn(unaverival )(c:test9))
          )
      )
      (progn(unaverival )(c:test9))
      )


    )
)
)
(flytoday-zhuce-check)
;;自动检查




革天明 发表于 2013-1-29 14:06:11

程序使用了http://bbs.mjtd.com/forum.php?mod=viewthread&tid=95792中的函数,在此向soly2006表示感谢。
另外大家看一下我的这个注册模块是否符合非明码注册的规范?

tianyuan 发表于 2013-1-30 11:34:43

学习学习,下载看看

革天明 发表于 2013-1-30 16:44:56

如何计算注册码?
(flytoday-zhuceMA "BFEBFBFF000206A7" "革天明"),返回的是537
例子见上图,但计算过程大家不要让用户知道了,不然注册就失去意义了,或者在发给用户的程序中不要包含flytoday-zhuceMA 程序。
解释一下,"BFEBFBFF000206A7" 这个就是对话框中的掩码(对话框中的是我的电脑的硬件掩码"FICFICFCFF33CFF",应该是每台电脑都不一样的),把掩码改成灰色不可用的目的就是在于锁写硬件(也就是CPU,程序只能用于本电脑使用)
革天明就是用户名,也就是说同一台电脑可以有多个用户注册,这样方便大家区分是谁在使用电脑。

如何计算注册码?
别人在申请注册码时,你让他把掩码和用户名写下来,你自己在旁边无人的时候,打开Vlisp编辑器, 在控制台中输入(flytoday-zhuceMA "BFEBFBFF000206A7" "革天明") 照上面的格式,计算出来注册码,告诉他就行了(可以收个5块钱哦)


页: 1 2 3 [4] 5 6
查看完整版本: 288求组装个工具箱(示例并附教程)