langjs 发表于 2006-10-25 13:00:00

[LISP]lisp程序j具有注册授权功能模块

<P>初学liSP编程,编了一个lisp程序注册功能的模块,里边好多的语句都是明经网友的,深表感谢<BR>现将源程序拿出来共享。程序编的可能罗唆一些,望老鸟不要见笑,恳请指点。</P>
<P>在C:\langjs目录下存储一个key.txt文件<BR>将对话框文件zhuc.dcl拷贝到AUTOCAD搜索支持的目录<BR>在你想要保护的lisp程序插入一句:<BR>(jiany)<BR>加载并运行程序。</P>
<P>当想要保护的程序执行到(jiany)时<BR>程序打开C:\langjs\key.txt并取得里边存储的授权码,<BR>检验其和硬盘序列号之间的算法关系是否成立,(我的程序中只是简单的判断相等,可以改复杂一些)<BR>如果正确,则继续执行lisp程序<BR>如不成立<BR>则弹出注册对话框,输入正确的授权码,才能继续执行lisp程序,如授权码不正确,则退出。<BR>同时将正确的授权码存储在C:\langjs\key.txt中,以便下次进行检验</P>
<P>如果想要改变key.txt存储路径和算法请自己在程序中修改。<BR></P>

李钊伟2012 发表于 2018-11-25 21:34:10

langjs 发表于 2006-10-25 13:24


比较感兴趣加密算法和获取本机信息码,现在只是知道怎么获取硬盘SN码,根据这个SN怎么计算出注册码呢?用的是什么算法比较好?

zzl9105 发表于 2018-5-31 10:26:40

cabinsummer 发表于 2012-4-14 17:19
开源是趋势,但是对于无德之人,还是防一下为好

C版有好的保护措施吗,我也想学这个授权写法

hh_lj007 发表于 2021-1-5 21:48:39

感谢分享,提供了实现的思路。

langjs 发表于 2006-10-25 13:23:00

规格

<P>没传上来?</P>

langjs 发表于 2006-10-25 13:24:00


;;;********************************************************
检验授权码程序
(defun jiany()

   (setq f (open "C:\\langjs\\key.txt""r"))
   (setq fee2 (read-line f))
   (close f)
   (getyp)
(if (/= fee1 fee2)   ;;;这里是检验算法
(zhuc)
(prin1)
)
)
;;;对话框驱动程序
(defun zhuc()
(setq dcl_id (load_dialog "zhuc.dcl"))
   (new_dialog "zhuc" dcl_id)
   (getyp)
   (set_tile "c01"fee1)
   (action_tile "c03" "(gsouqm) (done_dialog 1)")
   (setq bb (start_dialog))
   (cond ((= bb 1)(wsouqm ))
         (t (exit))
   )
(prin1)
)
(defun gsouqm()
   (setq ppp(get_tile "c02"))
   (prin1)
)
(defun wsouqm ()
   (setq f (open "C:\\langjs\\key.txt" "w"))   
   (write-line ppp f)
   (close f)
   (jiany)
   (prin1)
)
;;;获得硬盘虚拟序列号程序
(defun getyp ( / FILSYS driveobj)
    (vl-load-com)
    (setq FILSYS (vlax-create-object "Scripting.FileSystemObject"))
    (if (/= (vlax-invoke-method FILSYS "DriveExists" "D") :vlax-false)
      (progn
         (setq driveobj (vlax-invoke-method FILSYS "GetDrive" "D"))
         (vlax-get-property driveobj "SerialNumber")
      )
      nil
    )
(setq fee1 (itoa (vlax-get-property driveobj "SerialNumber")))
)


langjs 发表于 2006-10-25 13:25:00

对话框文件


zhuc:dialog{
label="注册信息";
spacer_1;
:text {label="                软件注册";}
:edit_box{label="机器码";key="c01";edit_width=30;}
:edit_box{label="授权码";key="c02";edit_width=30;}

spacer_1;
:row{
:text {label="       ";}
:button {label="注册";key="c03";
width=12;
fixed_width=true;
}
cancel_button;
:text {label="";}
}

}

abcxyz0517 发表于 2006-10-25 18:06:00

授权码是怎么获得的呢 ??

dnnlog 发表于 2006-10-27 08:26:00

[LISP]

授权码是怎样算?!。。。。。。。。。

linshiyin2 发表于 2010-8-11 11:01:00

顶起

pizg 发表于 2010-8-11 12:46:00

<p>好東西~</p>
<p>頂一下</p>

aicr317 发表于 2010-8-11 15:42:00

dnnlog发表于2006-10-27 8:26:00static/image/common/back.gif授权码是怎样算?!。。。。。。。。。


<p>就是硬盘分区 D 的序列号</p>

zml84 发表于 2010-8-12 14:36:00

一句话破解: &nbsp;(defun &nbsp;<span class="Apple-style-span" style="font-size: 12px; line-height: 21px; color: rgb(68, 68, 68); font-family: Monaco, Consolas, 'Lucida Console', 'Courier New', serif; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">zhuc&nbsp;() ()&nbsp;</span>)
页: [1] 2 3 4 5 6 7
查看完整版本: [LISP]lisp程序j具有注册授权功能模块