明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4818|回复: 13

[基础] 没事弄个注册程序和注册机提提兴趣

  [复制链接]
发表于 2014-6-7 09:10 | 显示全部楼层 |阅读模式




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2019-9-1 09:44 | 显示全部楼层
正是要找的,学习一下,谢谢!
发表于 2022-3-21 10:28 来自手机 | 显示全部楼层
多谢多谢多谢。。。
发表于 2014-6-7 10:14 | 显示全部楼层
楼主放源码上来学习下啊。
发表于 2014-6-7 11:00 | 显示全部楼层
sicky111 发表于 2014-6-7 10:14
楼主放源码上来学习下啊。

论坛这类主题很多的,都是源码
  1. ;;-----------------------------------------------------------------------------------
  2. ;;2012-7-26 soly2006 调试成功!简单加密,目的是要用也要问别人,不问也要花些时间来破
  3. ;;理解所有为代码付出的优秀人才!
  4. ;;如果看到有你代码的影子,请不要见怪。
  5. ;;正式版应增加:
  6. ;;1、补齐已注册码与申请码一致;
  7. ;;2、求余要每机不同;
  8. ;;3、没必要用DCL,又不是经常用到,何必考虑人机界面;
  9. ;;4、用法:在命令后面加上(rere)就是。
  10. ;;5、再奉劝你,多用中文
  11. ;;-----------------------------------------------------------------------------------
  12. ;;;(defun rere( / 已注册码 注册码 输入注册码)
  13. (defun c:tt( / 已注册码 注册码 输入注册码)
  14.   (setq 已注册码 (vl-registry-read "HKEY_CURRENT_USER\\Software\\solycad" "SN"))
  15.   (setq cpusn (cpu))
  16.   (setq 注册码 (strcat (加密字串 (substr cpusn 2 4) ) (加密字串 (substr cpusn 7 4) )))
  17.   (princ (strcat " 你要给别人的注册码为:" 注册码 "\n")) ;显示已注册码 便于调试,给程序不要有这条啊,
  18.   (if (/= 已注册码 注册码)
  19.    (progn
  20.    (setq 已注册码 注册码)
  21.    (princ (strcat "    申请码为:    " "\n\n" cpusn))
  22.    (setq 输入注册码 (getstring "\n请输入已注册码:"))
  23.    (if (/= 已注册码 输入注册码)
  24.     (progn
  25.      (alert "请输入正确的已注册码")
  26.      (exit)
  27.     )
  28.     (progn
  29.      (vl-registry-write "HKEY_CURRENT_USER\\Software\\solycad" "SN" 输入注册码)
  30.          (princ "注册成功!")
  31.     )
  32.    )
  33.    )
  34.    (alert " \n   已注册")
  35.   )
  36. (princ)
  37. )

  38. ;;------------------------CPU--------------------------------
  39. ;;不明出处
  40. (defun CPU (/ Vlist VObj lcom lExecQuery item)
  41.   (vl-load-com)
  42.   (setq Vlist '())
  43.   (if (setq VObj (vlax-create-object "wbemscripting.swbemlocator"))
  44.     (progn
  45.       (SETQ lcom (VLAX-INVOKE
  46.      VObj       'ConnectServer     "."
  47.      "\\root\\cimv2"  ""     ""
  48.      ""       ""  128     nil
  49.     ) ;_ 结束VLAX-INVOKE
  50.       ) ;_ 结束SETQ
  51.       (setq lExecQuery
  52.       (vlax-invoke
  53.         lcom
  54.         'ExecQuery
  55.         ;;"Select * From Win32_BIOS"
  56.         "Select * from Win32_Processor"
  57.       ) ;_ 结束vlax-invoke
  58.       ) ;_ 结束setq
  59.       (vlax-for item lExecQuery
  60. (setq Vlist (vlax-get item 'ProcessorId) ;_ 结束cons
  61. ) ;_ 结束setq
  62.       ) ;_ 结束vlax-for
  63.       (vlax-release-object lExecQuery)       
  64.       (vlax-release-object lcom)
  65.       (vlax-release-object Vobj)
  66.     )
  67.   )
  68.   Vlist
  69. )

  70. ;; --------------------字串分解----------------------------------
  71. (defun 字串分解 (字串 / i k s lst)
  72.   (setq i 0 k (chr 160))
  73.   (while (/= "" (setq s (substr 字串 (setq i (1+ i)) 1)))
  74.     (if (< s k)
  75.       (setq lst (cons s lst))
  76.       (setq lst (cons (substr 字串 i 2) lst)
  77.      i (1+ i))
  78.     )
  79.   )(reverse lst)
  80. )

  81. ;;-------------------------加密字串---------------------------------------------
  82. (defun 加密字串(字串 / 字串表 串)
  83.   (setq 串 字串)
  84.   (setq 字串表 (字串分解 串))
  85.   (setq 串 (apply 'strcat (mapcar '(lambda (X)  (加密字符 X)) 字串表)))
  86. )

  87. ;;-----------------------------加密字符------------------------------------------------
  88. ;;精华所在:密=字符+字符对5求余
  89. (defun 加密字符(字符 )
  90. (chr (+ (ascii 字符) (rem (ascii 字符) 5)))
  91. )
发表于 2014-6-7 12:12 | 显示全部楼层
lucas_3333 发表于 2014-6-7 11:00
论坛这类主题很多的,都是源码

这个具体怎么用呢??能教一下吗?
发表于 2014-6-7 12:33 | 显示全部楼层
ysq101 发表于 2014-6-7 12:12
这个具体怎么用呢??能教一下吗?

论坛还有很多,这个只是其中一个
在你程序前加rere即可
发表于 2014-6-7 14:07 | 显示全部楼层
学习看看是怎么个用法
发表于 2014-6-7 14:30 | 显示全部楼层
本帖最后由 lucas_3333 于 2014-6-7 14:35 编辑
阿俊子 发表于 2014-6-7 14:07
学习看看是怎么个用法

http://bbs.mjtd.com/thread-95792-1-1.html

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=99025


 楼主| 发表于 2014-6-7 17:59 | 显示全部楼层
sicky111 发表于 2014-6-7 10:14
楼主放源码上来学习下啊。

那位仁兄说的很对,论坛上很多,不过关系到具体的自己来写的话新手会遇到蛮多问题。一个东西做到了就会很容易,没做到就不晓得从何处着手。多看看帮助文档吧
发表于 2014-6-7 22:53 | 显示全部楼层
lucas_3333 发表于 2014-6-6 17:00
论坛这类主题很多的,都是源码

注册码存注册表很容易找出来

点评

 很多软件注册成功后,注册码都存在注册表,这有何关系? 这就是个形式,没那么介意。  发表于 2014-6-9 08:27
发表于 2014-6-11 15:04 | 显示全部楼层
无意中又看到一个,贴出来大家学习

  1. ;;;初学liSP编程,编了一个lisp程序注册功能的模块,里边好多的语句都是明经网友的,深表感谢
  2. ;;;现将源程序拿出来共享。程序编的可能罗唆一些,望老鸟不要见笑,恳请指点。
  3. ;;;
  4. ;;;在C:\langjs目录下存储一个key.txt文件
  5. ;;;将对话框文件zhuc.dcl拷贝到AUTOCAD搜索支持的目录
  6. ;;;在你想要保护的lisp程序插入一句:
  7. ;;;(jiany)
  8. ;;;加载并运行程序。
  9. ;;;
  10. ;;;当想要保护的程序执行到(jiany)时
  11. ;;;程序打开C:\langjs\key.txt并取得里边存储的授权码,
  12. ;;;检验其和硬盘序列号之间的算法关系是否成立,(我的程序中只是简单的判断相等,可以改复杂一些)
  13. ;;;如果正确,则继续执行lisp程序
  14. ;;;如不成立
  15. ;;;则弹出注册对话框,输入正确的授权码,才能继续执行lisp程序,如授权码不正确,则退出。
  16. ;;;同时将正确的授权码存储在C:\langjs\key.txt中,以便下次进行检验
  17. ;;;
  18. ;;;如果想要改变key.txt存储路径和算法请自己在程序中修改。
  19. ;;;
  20. ;;;
  21. ;;;检验授权码程序
  22. (defun c:jiany()
  23.    (setq f (open "C:\\key.txt"  "r"))
  24.    (setq fee2 (read-line f));;读取key为fee2
  25.    (close f)
  26.    (getmcid);;;获取物理序列号
  27. (if (/= fee1 fee2)   ;;;这里是检验算法
  28. (zhuc)
  29. (prin1)
  30. )
  31. )
  32. ;;;对话框驱动程序
  33. (defun zhuc()
  34.   (setq dcl_id (load_dialog "custom.dcl"))
  35.    (new_dialog "zhuc" dcl_id)
  36.    (getmcid)
  37.    (set_tile "c01"  fee1)
  38.    (action_tile "c03" "(gsouqm) (done_dialog 1)")
  39.    (setq bb (start_dialog))
  40.    (cond ((= bb 1)(wsouqm ))
  41.          (t (exit))
  42.    )
  43. (prin1)
  44. )
  45. (defun gsouqm();;;获取授权密码
  46.    (setq ppp  (get_tile "c02"))
  47.    (prin1)
  48. )
  49. (defun wsouqm ();;;写入授权密码
  50.    (setq f (open "C:\\key.txt" "w"))   
  51.    (write-line ppp f)
  52.    (close f)
  53. ;;;   (jiany)
  54.    (prin1)
  55. )
  56. ;;;获得硬盘虚拟序列号程序
  57. ;;获取网卡号cpu序列号
  58. ;;Test OK with XP
  59. ;;Use WMI to Get Networkadapter MAC.
  60. ;;Author : eachy [eachy@xdcad.net]
  61. ;;Web : http://www.xdcad.net
  62. ;;2005.11.22
  63. (defun getmcid (/ mac WMIobj serv lox sn)
  64.   (vl-load-com)
  65. ;;;以下读取mac地址
  66.   (setq mac '())
  67.   (if (SETQ WMIobj (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator"))
  68.     (progn (SETQ serv (VLAX-INVOKE WMIobj 'ConnectServer "." "\\root\\cimv2" "" "" "" "" 128 nil))
  69.            (setq lox (vlax-invoke serv 'ExecQuery "Select * From Win32_NetworkAdapter "))
  70.            (vlax-for item lox
  71.              (if (and (= (vlax-get item 'NetConnectionID) "本地连接") ;中文系统
  72.                       (not (member (setq sn (vlax-get item 'MACAddress)) mac))
  73.                  )
  74.                (setq mac (cons sn mac))
  75.              )
  76.            )
  77.     )
  78.   )
  79. ;;;  (setq macid mac)
  80.   (print mac)
  81. ;;;  (setq fee1 mac )
  82. (princ)
  83. )
  84. ;;;-----------------------------------
  85. ;;;取出串中字母数字 明经 ZZXXQQ 2008.9.15
  86. ;;;-----------------------------------
  87. (defun qzmsz (txt)
  88. ;;;   (setq txt "1a2b3))::"
  89. ;;;         i 1
  90. ;;;         j 1
  91. ;;;  ntxt "")
  92.    (repeat (strlen txt);;;对txt进行其长度次数的循环计算
  93.     (setq tx (substr txt j 1)) ;;;取出第j个字符
  94.     (if (or (<= "a" (strcase tx T) "z") (<= "0" tx "9")) ;;;将其转换为大写字母判断是否为A-Z之间或者0-9
  95.      (setq ntxt (strcat ntxt tx)) ;;;不是的话将其追加到ntxt
  96.     )
  97.     (setq j (1+ j))
  98.    )
  99.    (print ntxt)
  100. (princ)
  101. )


  1. //
  2. //注册对话框
  3. //
  4. zhuc:dialog{
  5. label="注册信息";
  6. spacer_1;
  7. :text {label="                软件注册";}
  8. :edit_box{label="机器码";key="c01";edit_width=30;}
  9. :edit_box{label="授权码";key="c02";edit_width=30;}

  10. spacer_1;
  11. :row{
  12. :text {label="       ";}
  13. :button {label="注册";key="c03";
  14. width=12;
  15. fixed_width=true;
  16. }
  17. cancel_button;
  18. :text {label="  ";}
  19. }
  20. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 08:49 , Processed in 0.300144 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表