找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8491|回复: 35

[每日一码] 加密一个lisp文件,保护你的成果

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2017-6-21 10:05:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
今天用TT4命令测试了一下,对一个lisp文件加密,加密后文件一样可以使用,就是看不到源码了,还真是不错。
tt4源码如下
  1. ;;加密一个lisp文件
  2. (defun C:TT4 (/ FF FNAME LST TMP)
  3.   ;;读文件
  4.   (if (setq fname (getfiled "***选择Lsp文件***" "" "lsp" 16))
  5.     (progn
  6.       (setq FF (open fname "r"))
  7.       (while (setq TMP (read-char FF))
  8.         (setq LST (cons TMP LST))
  9.       )
  10.       (close FF)
  11.       (setq Lst (reverse Lst))
  12.       
  13.       (setq FF (open fname "w"))
  14.       ;;写入文件头
  15.       (foreach N (vl-string->list "AutoCAD PROTECTED LISP file")
  16.         (write-char N FF)
  17.       )
  18.       (write-char 13 FF)
  19.       (write-char 10 FF)
  20.       (write-char 26 FF)
  21.       ;;写入
  22.       (write-char 65 FF)
  23.       (setq LST (++++ LST 65))
  24.       (foreach N LST (write-char N FF))
  25.       (close FF)
  26.     )
  27.   )
  28.   (princ)
  29. )

  30. ;;;========================================================
  31. ;;;功能:定义函数,实现 左移一位操作
  32. ;|;;测试:(setq lst (vl-string->list "(princ)"))
  33.           (++++ lst  65)
  34. |;
  35. ;;转入十进制,输入十进制
  36. (defun F+ (INT / TMP)
  37.     ;;十进制转化为二进制
  38.     (setq TMP (DEG->BIN INT))
  39.     ;;补齐为 8 位
  40.     (while (< (strlen TMP) 8)
  41.         (setq TMP (strcat "0" TMP))
  42.     )
  43.     ;;将首位移动到末位
  44.     (setq TMP (strcat (substr TMP 2 7) (substr TMP 1 1)))
  45.     ;;返回
  46.     (BIN->DEG TMP)
  47. )
  48. ;;;========================================================
  49. ;;;功能:仿autolisp加密文本
  50. (defun ++++ (LST KEYSCI / LST1 N TMP)   
  51.     (foreach N LST
  52.         (progn            
  53.             ;;异或操作
  54.             (setq TMP (boole 6 KEYSCI N))
  55.             (setq LST1 (cons TMP LST1))            
  56.             ;;计算下一个 密匙
  57.             (setq KEYSCI (F+ TMP))
  58.         )
  59.     )   
  60.     ;;(vl-list->string (reverse LST1))
  61.     (reverse LST1)
  62. )

  63. ;;;======================================================================================
  64. ;;;十进制转化为二进制
  65. ;;;例如:(deg->bin 3) 返回"11"
  66. ;;;      (deg->bin 5) 返回"101"
  67. (defun DEG->BIN        (INT / A B)
  68.     (if        (< INT 1)
  69.         "0"
  70.         (if (= INT 1)
  71.             "1"
  72.             (progn
  73.                 (setq A        (/ INT 2)
  74.                       B        (- INT (* A 2))
  75.                 )
  76.                 (strcat        (DEG->BIN A)
  77.                         (itoa B)
  78.                 )
  79.             )
  80.         )
  81.     )
  82. )
  83. ;;;======================================================================================
  84. ;;;二进制转化为十进制
  85. ;;;例如:(bin->deg "11")  返回 3
  86. ;;;      (deg->bin "101") 返回 5
  87. (defun BIN->DEG        (STR)
  88.     (if        (<= (strlen STR) 1)
  89.         (if (= STR "1")
  90.             1
  91.             0
  92.         )
  93.         (if (= (substr STR 1 1) "1")
  94.             (+ (expt 2 (- (strlen STR) 1))
  95.                (BIN->DEG (substr STR 2))
  96.             )
  97.             (BIN->DEG (substr STR 2))
  98.         )
  99.     )
  100. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2017-6-21 10:12:44 | 显示全部楼层
(vl-string->list "AutoCAD PROTECTED <a href="http://bbs.xdcad.net/forum-14-1.html" target="_blank">LISP</a> file")
这是什么意思??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2017-6-21 10:21:48 | 显示全部楼层

这是论坛直动转换的
原是这样的
(foreach N (vl-string->list "AutoCAD PROTECTED LISP file")
        (write-char N FF)
      )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2017-6-21 10:25:00 | 显示全部楼层

错误: 读入的 (八进制) 字符不正确: 35

点评

是不是因为64位的缘故,我是32位的。  发表于 2017-6-21 10:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2017-6-21 10:37:39 | 显示全部楼层

那就怪了,我又运行了一下,是正确的。下面压缩包里a.lsp是未加密的,test.lsp是加密后的。

Desktop.rar

245 Bytes, 下载次数: 72, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-6-21 11:04:34 | 显示全部楼层
令: tt4 ; 错误: 参数太多
再看原文件
原来的内容全部被删除
一片空白啊

点评

确实奇怪!  发表于 2017-6-21 11:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2017-6-21 11:09:40 | 显示全部楼层

我不懂....是的64位
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-6-21 11:15:32 | 显示全部楼层
命令: (LOAD "C:/最小包围盒.lsp") ; 错误: 读入的 (八进制) 字符不正确: 1
我这32位Win7
有的能改为乱码
但不能加载
看来是有问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-6-21 11:21:14 | 显示全部楼层

出现这种提示,一般是编辑器的代码格式的问题,换个编辑器保存,后者直接从论坛粘贴。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2126个

财富等级: 金玉满堂

发表于 2017-6-21 11:57:40 | 显示全部楼层
谢谢黄大师的好程序。。。

点评

是别人的,我测试一下。  发表于 2017-6-21 12:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2017-6-21 12:42:56 | 显示全部楼层
看了一下,果然掉入陷阱,hehe:::::


Note that write-char cannot write a NULL character (ASCII code 0) to a file.

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2017-6-21 13:55:00 | 显示全部楼层
能用吗?              
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 475个

财富等级: 日进斗金

发表于 2017-6-21 15:47:16 | 显示全部楼层
本帖最后由 laiz3000 于 2017-6-21 15:51 编辑

64位2014加密后显示这样   错误: 读入的 (八进制) 字符不正确: 35 2007测试ok
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 217个

财富等级: 日进斗金

发表于 2017-6-21 15:55:52 | 显示全部楼层
只能加密不能解密?
跟编译有啥区别?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-6-21 18:03:39 | 显示全部楼层
发两个程序砸个场子(坏笑一下),其中LSPPRO是编译程序,UNLSP是反编译程序,都是早期的DOS程序,UNLSP使用起来稍麻烦,要在CMD模式下,而且输入不能带扩展名。

Lsp文件保护模式.rar

17.14 KB, 下载次数: 198, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-20 05:16 , Processed in 0.461233 second(s), 68 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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