找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4976|回复: 24

[原创] Lisp 混淆程序,对抗反编译的有力工具

[复制链接]

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2013-11-24 13:55:44 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 zhang8755 于 2013-11-24 13:57 编辑

  本程序用于将lisp程序中的变量用随机生成的字符串进行替换,使程序难以读懂,作为应对反编译的方法。
特点:可以一次完成多个文件的混淆;可以分别保存变量、替换变量和项目文件;指定混淆用的字符和变量长度;

      支持行注释和段注释,支持跨行的引号和引号中的引号的处理。引号和换行符也作为分隔符。
使用:先将要混淆的程序加载在ACAD中,使用户的自定义函数名登记在lisp的函数表中;

     "扫描生成保留串" 采用atoms-family函数将已加载的函数名加入保留串表,并扫描lisp文件中引号范围
      内的字符串,加到保留串表中,主要是考虑到控制DCL对话框的部分代码可能在引号范围内,替换会导致
      程序混乱;

     "扫描生成变量表" 扫描lisp文件,将字符串提取出来,将不在保留串表中的字符串加入替换表中;

     "变  换 ->" 生成变量替换对照表

     "混淆另存lisp文件" 扫描lisp文件并按照变量替换对照表替换其中的变量,完成混淆!

键入命令 LSPRP

   QQ图片20131124135415.jpg
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:混淆.rar 
下载次数:158  文件大小:28.84 KB  售价:10D豆 [记录]
下载权限: 学生 以上  [免费赚D豆]


评分

参与人数 2D豆 +10 贡献 +2 收起 理由
xshrimp + 5 + 1 很给力!经验;技术要点;资料分享奖!
炫翔 + 5 + 1 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

 楼主| 发表于 2013-11-24 15:44:28 | 显示全部楼层
;;; FLATTEN.LSP version 2k.0, 25-May-1999
;;;
;;;-----------------------------------------------------------------------
;;;*How to Use FLATTEN
;;;
;;; This version of FLATTEN works with AutoCAD R12 through 2000.
;;;
;;; To run FLATTEN, load it using AutoCAD's APPLOAD command, or type:
;;;   (load "FLATTEN")
;;; at the AutoCAD command prompt. Once you've loaded FLATTEN.LSP, type:
;;;   FLATTEN
;;; to run it. FLATTEN will tell you what it's about to do and ask you
;;; to confirm that you really want to flatten objects in the current
;;; drawing. If you choose to proceed, FLATTEN prompts you to select objects
;|;; to be flattened (press ENTER to flatten all objects in the drawing).
;;; After you've selected objects and pressed ENTER, FLATTEN goes to work.
;;; It reports the number of objects it flattens and the number left
;;; unflattenened (because they were objects not recognized by FLATTEN; see
;;; the list of supported objects above).
;;;
;;; If you don't like the results, just type U to undo FLATTEN's work.
;;;
;;;-----------------------------------------------------------------------
;;;*Known limitations
;;;  1) FLATTEN doesn't support all of AutoCAD's object types. See above
;;;     for a list of the object types that it does work on.
;;;  2) FLATTEN doesn't flatten objects nested inside of blocks.
;;;     (You can explode blocks before flattening. Alternatively, you can
;;;     WBLOCK block definitions to separate DWG files, run FLATTEN in
;;;     each of them, and then use INSERT in the parent drawing to update
;;;     the block definitions. Neither of these methods will flatten
;;;     existing attributes, though.
;;;  3) FLATTEN flattens objects onto the Z=0 X-Y plane in AutoCAD's
;;;     World Coordinate System (WCS). It doesn't currently support
;;;     flattening onto other UCS planes.
;;|;
;;;=======================================================================

(defun C:FLAT (/       8*@1#2@61*%%$7*  51$1_&31&1#52%0  6@3@773#32*068@   339#_$5749#67$1     0&8&&8_7*7382_3  4092_@%13#$903&
                  616&$48%439_%87  9538$5#0$*&#287  1&62801@1_&20_*  &*62500%_&10597   8_&63055792&#86   874509@*_0$*1%5   65%214__25@2_$7
                  %564%@_3#@7_33@    25*%%*9#3@8&17%     $07#3*#%3&7400&
                 )
  ;;Error handler
  (setq 8*@1#2@61*%%$7* *error*)
  (defun *error* (%6*$#7458#**03*)
    (if (= %6*$#7458#**03* "quit / exit abort")
      (princ)
      (princ (strcat "error: " %6*$#7458#**03*))
    )
    (setq *error* 8*@1#2@61*%%$7*)
    (command "._UCS"           "_Restore"        "$FLATTEN-TEMP$"
             "._UCS"           "_Delete"         "$FLATTEN-TEMP$"
            )
    (command "._UNDO" "_End")
    (setvar "CMDECHO" 51$1_&31&1#52%0)
    (princ)
  )

  ;;Function to change Z coordinate to 0

  (defun 6@3@773#32*068@ (7&5*4@0&53%0@33 &98801634799#0_ / 3&@%_89#55&73&% 4$%1#00_39$_8@9)
    (setq 3&@%_89#55&73&% (assoc 7&5*4@0&53%0@33 &98801634799#0_)
          4$%1#00_39$_8@9 (reverse (append '(0.0) (cdr (reverse 3&@%_89#55&73&%))))
          &98801634799#0_ (subst 4$%1#00_39$_8@9 3&@%_89#55&73&% &98801634799#0_)
    )
    (entmod &98801634799#0_)
  )

  ;;Setup
  (setq 51$1_&31&1#52%0 (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (command "._UNDO" "_Group")
  (command "._UCS"         "_Delete"       "$FLATTEN-TEMP$"
           "._UCS"         "_Save"         "$FLATTEN-TEMP$"
           "._UCS"         "World"
          )                             ;set World UCS

  ;;Get input
  (prompt
    (strcat
      "\nFLATTEN sets the Z coordinates of most objects to zero."
    )
  )

  (initget "Yes No")
  (setq %564%@_3#@7_33@ (getkword "\nDo you want to continue : "))
  (cond ((/= %564%@_3#@7_33@ "No")
         (graphscr)
         (prompt "\nChoose objects to FLATTEN ")
         (prompt
           "[press return to select all objects in the drawing]"
         )
         (setq 339#_$5749#67$1 (ssget))
         (if (null 339#_$5749#67$1)                 ;if enter...
           (setq 339#_$5749#67$1 (ssget "X"))       ;select all entities in database
         )


         ;;*initialize variables
         (setq 0&8&&8_7*7382_3 (sslength 339#_$5749#67$1)    ;length of selection set
               4092_@%13#$903&      0                 ;loop counter
               616&$48%439_%87 0                 ;number changed counter
               9538$5#0$*&#287 0                 ;number not changed counter
               1&62801@1_&20_* 0                 ;number not changed and Z /= 0 counter
               &*62500%_&10597  (ssadd)           ;selection set of unchanged entities
         )                              ;setq

         ;;*do the work
         (prompt "\nWorking.")
         (while (< 4092_@%13#$903& 0&8&&8_7*7382_3)            ;while more members in the SS
           (if (= 0 (rem 4092_@%13#$903& 10))
             (prompt ".")
           )
           (setq 8_&63055792&#86 (ssname 339#_$5749#67$1 4092_@%13#$903&)   ;entity name
                 874509@*_0$*1%5 (entget 8_&63055792&#86)   ;entity data list
                 65%214__25@2_$7 (cdr (assoc 0 874509@*_0$*1%5)) ;entity type
           )

           ;;*Keep track of entities not flattened
           (if (not (member 65%214__25@2_$7
                            '("3DFACE"     "ARC"        "ATTDEF"
                              "CIRCLE"     "DIMENSION"  "ELLIPSE"
                              "HATCH"      "INSERT"     "LINE"
                              "LWPOLYLINE" "MTEXT"      "POINT"
                              "POLYLINE"   "SOLID"      "TEXT"
                             )
                    )
               )
             (progn                     ;leave others alone
               (setq 9538$5#0$*&#287 (1+ 9538$5#0$*&#287))
               (if (/= 0.0 (car (reverse (assoc 10 874509@*_0$*1%5))))
                 (progn                 ;add it to special list if Z /= 0
                   (setq 1&62801@1_&20_* (1+ 1&62801@1_&20_*))
                   (ssadd 8_&63055792&#86 &*62500%_&10597)
                 )
               )
             )
           )

           ;;Change group 10 Z coordinate to 0 for listed entity types.
           (if (member 65%214__25@2_$7
                       '("3DFACE"    "ARC"       "ATTDEF"    "CIRCLE"
                         "DIMENSION" "ELLIPSE"   "HATCH"     "INSERT"
                         "LINE"      "MTEXT"     "POINT"     "POLYLINE"
                         "SOLID"     "TEXT"
                        )
               )
             (setq 874509@*_0$*1%5  (6@3@773#32*068@ 10 874509@*_0$*1%5) ;change entities in list above
                   616&$48%439_%87 (1+ 616&$48%439_%87)
             )
           )

           ;;Change group 11 Z coordinate to 0 for listed entity types.
           (if (member 65%214__25@2_$7
                       '("3DFACE" "ATTDEF" "DIMENSION" "LINE" "TEXT" "SOLID")
               )
             (setq 874509@*_0$*1%5 (6@3@773#32*068@ 11 874509@*_0$*1%5))
           )

           ;;Change groups 12 and 13 Z coordinate to 0 for SOLIDs and 3DFACEs.
           (if (member 65%214__25@2_$7 '("3DFACE" "SOLID"))
             (progn
               (setq 874509@*_0$*1%5 (6@3@773#32*068@ 12 874509@*_0$*1%5))
               (setq 874509@*_0$*1%5 (6@3@773#32*068@ 13 874509@*_0$*1%5))
             )
           )

           ;;Change groups 13, 14, 15, and 16
           ;;Z coordinate to 0 for DIMENSIONs.
           (if (member 65%214__25@2_$7 '("DIMENSION"))
             (progn
               (setq 874509@*_0$*1%5 (6@3@773#32*068@ 13 874509@*_0$*1%5))
               (setq 874509@*_0$*1%5 (6@3@773#32*068@ 14 874509@*_0$*1%5))
               (setq 874509@*_0$*1%5 (6@3@773#32*068@ 15 874509@*_0$*1%5))
               (setq 874509@*_0$*1%5 (6@3@773#32*068@ 16 874509@*_0$*1%5))
             )
           )

           ;;Change each polyline vertex Z coordinate to 0.
           ;;Code provided by Vladimir Livshiz, 09-Oct-1998
           (if (= 65%214__25@2_$7 "POLYLINE")
             (progn
               (setq 25*%%*9#3@8&17% 8_&63055792&#86)
               (while (not (equal (cdr (assoc 0 (entget 25*%%*9#3@8&17%))) "SEQEND"))
                 (setq 874509@*_0$*1%5 (entget (entnext 25*%%*9#3@8&17%)))
                 (setq $07#3*#%3&7400& (cadddr (assoc 10 874509@*_0$*1%5)))
                 (if (/= $07#3*#%3&7400& 0)
                   (progn
                     (6@3@773#32*068@ 10 874509@*_0$*1%5)
                     (entupd 8_&63055792&#86)
                   )
                 )
                 (setq 25*%%*9#3@8&17% (cdr (assoc -1 874509@*_0$*1%5)))
               )
             )
           )

           ;;Special handling for LWPOLYLINEs
           (if (member 65%214__25@2_$7 '("LWPOLYLINE"))
             (progn
               (setq 874509@*_0$*1%5  (subst (cons 38 0.0) (assoc 38 874509@*_0$*1%5) 874509@*_0$*1%5)
                     616&$48%439_%87 (1+ 616&$48%439_%87)
               )
               (entmod 874509@*_0$*1%5)
             )
           )

           (setq 4092_@%13#$903& (1+ 4092_@%13#$903&))              ;next entity
         )
         (prompt " Done.")

         ;;Print results
         (prompt (strcat "\n" (itoa 616&$48%439_%87) " object(s) flattened."))
         (prompt
           (strcat "\n" (itoa 9538$5#0$*&#287) " object(s) not flattened.")
         )

         ;;If there any entities in ssno0, show them
         (if (/= 0 1&62801@1_&20_*)
           (progn
             (prompt (strcat "  ["
                             (itoa 1&62801@1_&20_*)
                             " with non-zero base points]"
                     )
             )
             (getstring
               "\nPress enter to see non-zero unchanged objects... "
             )
             (command "._SELECT" &*62500%_&10597)
             (getstring "\nPress enter to \"unhighlight them... ")
             (command "")
           )
         )
        )
  )

  (command "._UCS"           "_Restore"        "$FLATTEN-TEMP$"
           "._UCS"           "_Delete"         "$FLATTEN-TEMP$"
          )
  (command "._UNDO" "_End")
  (setvar "CMDECHO" 51$1_&31&1#52%0)
  (setq *error* 8*@1#2@61*%%$7*)
  (princ)
)

(prompt
  "\nFLATTEN version 2k.0 loaded.  Type FLATTEN to run it."
)
(princ)

;;;eof

点评

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

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-24 16:42:31 | 显示全部楼层
zhang8755 发表于 2013-11-24 15:44
;;; FLATTEN.LSP version 2k.0, 25-May-1999
;;;
;;;------------------------------------------------- ...

混淆的是不是还可以编译?

点评

楼主的意思应该是混淆,然后编译,不怕反编译,反编译出来也是乱七八糟的。不方便人修改,但应该能用。  详情 回复 发表于 2013-11-24 16:49
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-11-24 16:49:00 | 显示全部楼层
st788796 发表于 2013-11-24 16:42
混淆的是不是还可以编译?

楼主的意思应该是混淆,然后编译,不怕反编译,反编译出来也是乱七八糟的。不方便人修改,但应该能用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3256个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 1489个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

 楼主| 发表于 2013-11-25 22:06:51 | 显示全部楼层
本帖最后由 zhang8755 于 2013-11-25 22:11 编辑

哈哈!忘了混淆自己了。现在的混淆方式就是替换变量,而且保留引号内的内容,这样DCL就不用混淆了。
混淆的量不够大,再增加老猫的ASCII码变换强度就大了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2013-11-26 10:46:10 | 显示全部楼层
超级复杂啊
有反人要卖给我见人工具箱7.8的源码
要一千元,破解的要200元(比原版还贵,这人真黑啊)
还说5K以下的可免费偿试
好象文件更大的是不是就不能完全反编译出来?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2013-11-28 00:00:00 | 显示全部楼层
你这样写容易查找替换
以前网上下了程序是这样的:

              Q%Q Q?l Qjl Q@l QQl Qll Q&l Q1l Q#l Q0l Q$l
             QOl Q|l Q%l Q?& Qj& Q@& QQ& Ql& Q&& Q1& Q#& Q0& Q$& QO& Q|& Q%&
             Q?1 Qj1 Q@1 QQ1 Ql1 Q&1 Q11 Q#1 Q01 Q$1 QO1
             Q|1 Q%1 Q?# Qj# Q@# QQ# Ql# Q&# Q1# Q## Q0# Q$# QO# Q|# Q%# Q?0

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 03:51 , Processed in 0.205337 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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