yedajiang 发表于 2008-1-2 20:39:00

哪怕不是明码对比也十分容易破解,内存跟踪器加上一点时间,容易的,当然对付菜鸟不需要加什么密,只要随意一个写文件、注册表之类的就足够了,关键是怎样写得更好的程序。当然适当保护也是需要的。

黄河 发表于 2008-1-2 22:13:00

8楼所答的正确,我要的效果也只是稍稍加一下密,就是说不要一加载就可用,至于能不能破解不管,我想但是要对所有机器有效。

无痕 发表于 2008-1-2 23:23:00

本帖最后由 作者 于 2008-1-2 23:27:20 编辑 <br /><br /> <p>vb的,网上搜的.没试过</p><p>MD5的VB类模块源码,可支持中文</p><p><a href="http://bbs.office-cn.net/dispbbs.asp?boardid=150&amp;id=31806">http://bbs.office-cn.net/dispbbs.asp?boardid=150&amp;id=31806</a></p><p><u><font color="#0000ff">MD5加密的VB类模块源码</font></u>&nbsp;&nbsp;<script src="http://blog.csdn.net/count.aspx?ID=475596&amp;Type=Rank"></script><br/>&nbsp;</p><p><a href="http://blog.csdn.net/lucaslynn/articles/475596.aspx">http://blog.csdn.net/lucaslynn/articles/475596.aspx</a></p><p><u><font color="#800080">MD5加密器源码(16/32)</font></u><a href="http://download.csdn.net/source/150918"></a></p><p><a href="http://d.download.csdn.net/down/150918/dxef">http://d.download.csdn.net/down/150918/dxef</a><br/></p><p></p><h1 id="articletitle">转帖一个忘了出处的精华</h1><p><a href="http://www.testage.net/html/12/n-89412.html">http://www.testage.net/html/12/n-89412.html</a></p><p></p>

cnks 发表于 2008-1-3 11:25:00

<p>11楼所说的“内存跟踪器”指的是??时间是必须要的</p><p>12楼黄河:程序不被解密更重要</p><p>13楼无痕刀:对lsp安全上来说,全部代码用lsp写有时候更安全</p>

hustrys 发表于 2008-1-13 11:33:00

<p>大家看看这个是否可以,这是本人编写的,里面有一些与本注册程序无关的函数,这里不再算数删除; register_lisp<br/>; 2006.11&nbsp; by emrys<br/>&nbsp; (defun register()<br/>&nbsp;&nbsp;&nbsp; (GRTEXT -2 "请输入授权码......") <br/>&nbsp;&nbsp;&nbsp; (setq Pass_File "C:\\Program Files\\Common Files\\Autodesk Shared\\lisp.ry")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq fn(findfile Pass_File))&nbsp; <br/>&nbsp; (if (= fn nil)&nbsp; ;创建文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;(PROGN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(setq fn Pass_File)&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(setq fh(open fn "w"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(setq str1 "Don't remove these data!!\n")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(princ str1 fh) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (getcode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(princ mcode fh)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ "\n" fh)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ sncode fh)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(close fh)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (read_data fn)&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (pwd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp; ;END PROGN<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (read_data fn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (or(= dt3 nil)(/= dt2 dt3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (pwd)<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq passflage 1)<br/>&nbsp;&nbsp;&nbsp; (princ"程序运行条件成熟 ,执行程序......")<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp; ;end progn<br/>&nbsp;&nbsp; )&nbsp; ;end if</p><p>&nbsp;(princ )<br/>&nbsp; <br/>&nbsp;) ;end defun</p><p>;df8888888888888888<br/>(defun pwd ()<br/>&nbsp; (setq dcl_id(load_dialog "dcl\\pwd.dcl"))<br/>&nbsp;&nbsp;&nbsp; (if (null (new_dialog "pwd" dcl_id))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (exit) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq fn Pass_File) <br/>&nbsp;&nbsp;&nbsp;&nbsp; ;(read_data fn)&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; (set_tile "mcode" dt1)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (if (or(= dt3 nil)(/= dt2 dt3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq dt3 "你还没有注册!请输入授权号")&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq passflage 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; (set_tile "password" dt3)&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (action_tile "password" "(GETDATApwd)(done_dialog 3) ")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (action_tile "accpet" "(done_dialog 3)")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (action_tile "cancel" "(done_dialog 0)")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;;(setq mc(get_tile "mcode"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(princ" mc=")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; (princ mc)<br/>&nbsp;&nbsp;;(setq psd(get_tile "password" ))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(princ&nbsp; "&nbsp;&nbsp; psd=")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; (princ&nbsp; psd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(saveok)<br/>&nbsp;&nbsp; ;(getdata)<br/>&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq what_next(start_dialog))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= what_next 3)(SAVEOK))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;((= what_next 1) (princ "\n dfg "))<br/>&nbsp; ((= what_next 0) (princ "取消运行程序 "))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (start_dialog)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unload_dialog dcl_id)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ)&nbsp; <br/>)<br/>(defun getdatapwd()<br/>&nbsp;&nbsp;&nbsp; (setq mc(get_tile "mcode"))<br/>&nbsp;&nbsp;&nbsp; (setq psd(get_tile "password" ))&nbsp;&nbsp; <br/>&nbsp; )<br/>(defun saveok()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(setq psd(get_tile "password" )) <br/>&nbsp;(if (= dt2 psd)<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq fn Pass_File)&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq fh(open fn "a"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ "\n" fh)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ psd fh)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (alert "注册成功!")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (close fh)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq passflage 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ "注册成功!")<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (alert "授权号不正确!请重新输入")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq passflage 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (pwd)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>(defun getcode()&nbsp; <br/>&nbsp; (setq sum(rnd 1 11))&nbsp; <br/>&nbsp; (princ sum)&nbsp; <br/>&nbsp; (setq STRPWD " dfgg hewa wwhu ijut kops gper jfgr pznd vwek murj"&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp; <br/>&nbsp; (SETQ sdt1(STRLEN STRPWD))<br/>&nbsp; (SETQ k(/(+ sdt1 1)5))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(princ sdt1)<br/>&nbsp;&nbsp; ;(princ STRPWD)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (setq mcode(substr strpwd (+(* sum 5)1) 19))<br/>&nbsp; (setq sncode(substr strpwd (-(*(- k sum) 5)19) 19))&nbsp; <br/>&nbsp;&nbsp; (PRINC)<br/>&nbsp; )<br/>&nbsp;;;读取数据<br/>&nbsp; (defun read_data(filename)&nbsp;&nbsp; &nbsp;<br/>&nbsp;(if (setq fp(open&nbsp; filename "r"))&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq dt0(read-line fp)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(setq dt1(read-line fp)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;(setq dt2(read-line fp))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq dt3(read-line fp))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (close fp)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; (setq listmcode dt1)&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );end progn<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; (princ(strcat"\n failed Open file:"filename "!!!\n "))<br/>&nbsp;) ;end if&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; <br/>&nbsp; ) <br/>&nbsp;;;读取数束 </p><p>;生成随数 <br/>&nbsp;&nbsp; (defun rnd(n1 n2)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (setq ra 66791 rb 17 nn 30)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq imin(expt 2 31) imax(1- imin))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (if (&gt; n1 n2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n3 n1 n1 n2 n2 n3)<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq rn(atoi(substr(rtos(getvar "cdate")2 7)14)))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (repeat nn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq rn(+(* rn ra)rb))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (minusp rn)(setq rn(- rn imin)))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(setq pwdstr"")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq rn(rem rn imax))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq rn(/ rn imax 1.0))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq rn(+(fix(* rn(1+ (- n2 n1))))n1)) <br/>&nbsp;&nbsp;&nbsp;&nbsp; )</p><p>;888888888888888888888888888</p><p>(defun&nbsp; psaveoldsysarg ()&nbsp;&nbsp; ;保存系统变量<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; (setq oldcmde (getvar "cmdecho")<br/>&nbsp;&nbsp;&nbsp; oldblip (getvar "blipmode")<br/>&nbsp;&nbsp;&nbsp; oldosmo (getvar "osmode")<br/>&nbsp;&nbsp;&nbsp; oldclay (getvar "clayer")<br/>&nbsp;&nbsp;&nbsp; oldcolo (getvar "cecolor")<br/>&nbsp;&nbsp;&nbsp; oldltyp (getvar "celtype")<br/>&nbsp;&nbsp;&nbsp; oldchec (getvar "limcheck")<br/>&nbsp;&nbsp;&nbsp; oldrege (getvar "regenmode")<br/>&nbsp;&nbsp;&nbsp; oldstyl (getvar "textstyle")<br/>&nbsp;&nbsp;&nbsp; oldtxte (getvar "texteval")&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; olderr&nbsp; *error*<br/>&nbsp; <br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; ;;在所有的程序中使用<br/>&nbsp;&nbsp; (setq pxl_osmode (getvar "osmode"))&nbsp;&nbsp; </p><p>&nbsp;;;&nbsp; (if (tblsearch "ucs" "olducs") <br/>;;&nbsp;&nbsp;&nbsp;&nbsp; (command "._ucs" "s" "olducs" "y")<br/>;;&nbsp;&nbsp;&nbsp;&nbsp; (command "._ucs" "s" "olducs")<br/>;;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; (setvar "cmdecho" 0)<br/>&nbsp;&nbsp; (setvar "blipmode" 0)<br/>&nbsp;&nbsp; (setvar "osmode" 0)<br/>&nbsp;&nbsp; (setvar "limcheck" 0)<br/>&nbsp;&nbsp; (setvar "regenmode" 1)<br/>&nbsp;&nbsp; (setvar "texteval" 1)<br/>&nbsp;&nbsp; ;;(command "handles" "on")<br/>&nbsp;&nbsp; (setq *error* pmterror) <br/>&nbsp;&nbsp; ;(pxl_undo_push)<br/>)</p><p><br/>(defun prestoreoldsysarg ()&nbsp;&nbsp; ;恢复系统变量<br/>&nbsp;&nbsp; ;(pxl_undo_pop)<br/>&nbsp;<br/>&nbsp;&nbsp; (if (= (type oldcmde) 'int) (setvar "cmdecho" oldcmde))<br/>&nbsp;&nbsp; (if (= (type oldblip) 'int) (setvar "blipmode" oldblip))<br/>&nbsp;&nbsp; (if (= (type oldosmo) 'int) (setvar "osmode" oldosmo))<br/>&nbsp;&nbsp; (if (= (type oldchec) 'int) (setvar "limcheck" oldchec))<br/>&nbsp;&nbsp; (if (= (type oldrege) 'int) (setvar "regenmode" oldrege))<br/>&nbsp;&nbsp; (if (= (type oldtxte) 'int) (setvar "texteval" oldtxte))<br/>&nbsp;&nbsp; (if (= (type oldcolo) 'str) (setvar "cecolor" oldcolo))<br/>&nbsp;&nbsp; (if (= (type oldclay) 'str) (setvar "clayer" oldclay))<br/>&nbsp;&nbsp; (if (= (type oldltyp) 'str) (setvar "celtype" oldltyp))<br/>&nbsp;&nbsp; (if (= (type oldstyl) 'str) (setvar "textstyle" oldstyl))<br/>&nbsp; ;; (if (tblsearch "ucs" "olducs") (command "._ucs" "r" "olducs"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; (setq *error* olderr)<br/>&nbsp;&nbsp; (menucmd"s=screen")<br/>&nbsp;&nbsp; (redraw)<br/>&nbsp;&nbsp; (princ)<br/>)<br/>(defun pmterror(s)<br/>&nbsp;&nbsp;&nbsp; (princ"\n程序运行条件不足, 程序自动退出.")<br/>&nbsp;&nbsp;&nbsp; ;; (princ"\n错误是:") (princ s)<br/>&nbsp;&nbsp;&nbsp; (command ^c)<br/>&nbsp;&nbsp;&nbsp; ;(pxl_undo_pop)<br/>&nbsp;&nbsp;&nbsp; (command "._u")<br/>&nbsp;&nbsp;&nbsp; (prestoreoldsysarg) <br/>&nbsp;&nbsp;&nbsp; (setq *error* olderr)<br/>&nbsp;&nbsp;&nbsp; (princ)<br/>)</p><p></p><p></p><p>;DCL 文件</p><p>//ddpass.dcl<br/>&nbsp;&nbsp; pwd: dialog{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label="注册码";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :edit_box{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key="mcode";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label="注册码:";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // password_char="*";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :edit_box{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key="password";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; edit_limit=19;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label="授权号:";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //password_char="*";<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; ok_cancel;<br/>&nbsp; }</p><p>&nbsp; <br/>///:::::&nbsp;&nbsp;&nbsp; ddtoggle.dcl<br/></p>

xbkxbk 发表于 2008-1-13 20:35:00

[注意]从程式表面上看,加密存在一些漏洞

<p>楼上的加密,相信花了不少时间研究...只是有些函数没有提供...无法断定好坏....</p><p>(先声明:说实话,解密工具我不会用,只是了解有这么一种东东,例如:winHEX之类的=&gt;不知道是不是这样写)</p><p>(1) 先排除专业解密的工具不说,只要成功注册了你的程式,用最基本的硬盘备份工具(如GHOST之类),就有[可能]不再需要你提供注册码,就能无限制使用,但上面也提到过了,有些函数没有提供,无法断定好坏/无法断定加密是否有效/是否能排除硬盘备份这类功能....</p><p>(2) 如果你的程式很重要,加密技术最好由自己创新,毕竟自己写的加密技术,只有自己最了解是否存在漏洞,才能把漏洞机率降至最低......</p><p>(3) 另外,从加密程式的严密性来说,重要的变量没有考虑清空/用第3方软件可以拦截得到,例如变量dt2,是全局变量吗?这个应该是用来比较的注册码,而且是正确的注册码,要是我在对话框那,按ESC取清,那dt2变量应该还存在值,那么用(princ dt2),就能得到注册码,你说是不?</p><p>以上几点仅供参考, 希望对你的加密程式有所帮助....</p><p>对了,上次多亏兄的指点,对lisp加密技术这块,有深入的研究,实在很感谢呀...</p><p></p>

yjsksjscn 发表于 2008-1-14 16:14:00

<p>佩服!佩服!</p><p>原来LSP还可以这样玩!</p><p>受教了</p>

173375424 发表于 2008-1-15 11:48:00

<p>好东东,但是我不懂,学习中..............</p>

chenbh2 发表于 2010-4-13 22:08:00

我也在学习中

haiyunzhou 发表于 2011-12-31 16:08:18

又学习好东西了
页: 1 [2] 3
查看完整版本: 为LSP加密的新思路