立即注册 登录
晓东CAD家园-论坛 返回首页

eachy的个人空间 http://bbs.xdcad.net/?14 [收藏] [复制] [分享] [RSS]

日志

收藏: 一种"解密'Dwglock的方法

已有 335 次阅读2013-5-6 17:38 |个人分类:Lisp

                                     
;;http://www.xdcad.net/forum/showthread.php?s=&threadid=229597&perpage=15&display=&pagenumber=3
;;;针对于网上加密的解密程序。推测加密方法为对所有物体设为不可见,然后对物体行
;;;一系列的变形,设置永久反应器,就是ealock.vlx的主要工作。
;;;永久反应器的回调函数就放在与加密图形一个目录下的*.vlx文件,先对物体还原,
;;;然后设置一系列的禁止反应器,物体不能修改,也不能存盘。
;;;解密思路是打开加密图形时不加载*.vlx,而加载本文件,对每个物体设置反应,
;;;只要物体可见时输出物体数据,并禁止输出-1和330组码,这个在jm命令完。
;;;然后加载*.vlx,即可得到data.lsp文件,关闭此加密dwg文件,不存。
;;;重新不加载*.vlx打开加密dwg文件,加载本文件,运行xug命令,生成data01.lsp
;;;文件,去除了60组码,全是可见图形,加载data01.lsp,生成解密后的所有dwg
;;;物体。所强调的是要在加密的dwg文件下完成这些操作,是因为有可能块定等
;;;不会出错。
(princ
"解密命令:JM生成data.lsp;XUG生成data01.lsp,然后加载data01.lsp"
)
(defun c:jm ()
(vl-load-com)
(setq
doc (vlax-get-property (vlax-get-acad-object) 'activedocument)
)
(vlax-map-collection
(vlax-get-property doc 'modelspace)
'(lambda (x)
(vlr-object-reactor
(list x)
nil
'((:vlr-objectClosed . putdata))
)
)
)
)
(defun putdata (notifier-object reactor-object parameter-list / enti)
(if (vla-get-visible notifier-object)
(progn
(setq p (open "c:\\data.lsp" "a"))
(setq enti (vlax-vla-object->ename notifier-object))
(setq enti1 (entget enti))
(princ "\n" p)
(princ "(entmake '" p)
(setq enti1 (vl-remove (assoc -1 enti1) enti1))
(setq enti1 (vl-remove (assoc 330 enti1) enti1))
(prin1 enti1 p)
(princ ")" p)
(close p)
)
)
)

(defun c:xug ()
(setq q (open "c:\\data.lsp" "r")
w (open "c:\\data01.lsp" "a")
)
(while (setq rdl (read-line q))
(setq fno (listp rdl))
(IF (not (wcmatch rdl "*(60 . 1)*"))
(write-line rdl w)
)
)
(close q)
(close w)
(princ)

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-13 16:00 , Processed in 0.162769 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部