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块钱哦)