明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1633|回复: 20

[资源] 【工具】给AutoLisp语言增加goto函数(高速修正版)

[复制链接]
发表于 2020-6-20 23:47 | 显示全部楼层 |阅读模式
本帖最后由 t18-13nil 于 2020-6-25 23:44 编辑

参考这俩个帖子
baitang36的帖子
http://bbs.mjtd.com/thread-181143-1-1.html

tryhi的帖子
http://bbs.mjtd.com/thread-181151-1-1.html

算法和tryhi的帖子中一样,只是lisp操纵二进制速度相对较慢,尤其文件较大的情况。因此用vb.net写了这个工具
说实话单靠这工具想让搞破解人不能破解是不现实的。这个反过来修改一下就又可以破解了。
这个只是让那些买工具的要多花点钱请人写新的工具而已。

程序修正了一下,旧程序只能识别fas程序段最多9kb,现在可以最多9T。9M的程序应该都很少吧。


本帖子中包含更多资源

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

x
发表于 2020-6-21 22:19 | 显示全部楼层
本帖最后由 tryhi 于 2020-6-21 22:20 编辑

你可以参考我的帖子,我很早发过lsp的源码,读一遍理解了思路就能转换为任何你懂的语言程序了
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-21 11:46 | 显示全部楼层
本帖最后由 tryhi 于 2020-6-21 22:22 编辑

;;从表的第n个索引起截取m个元素
;;(try-lst-n-m '(1 2 3 4 5) 2 3);=>(3 4 5)
(defun try-lst-n-m (lst n m / i lstr ns)
        (if(> (+ n m) (setq ns(length lst)))(setq m (- ns n)))
        (repeat n
                (setq lst(cdr lst))
        )
        (setq i 0)
        (repeat m
                (setq
                        lstr (cons (nth i lst) lstr)
                        i(1+ i))
        )
        (reverse lstr)
)

;;===========加密上面这个函数的例子=================


这里例子有5个句子,把它们分开存放,改成这样子
;;从表的第n个索引起截取m个元素
;;(try-lst-n-m '(1 2 3 4 5) 2 3);=>(3 4 5)
(defun try-lst-n-m (lst n m / i lstr ns)
        (setq a 1122334400 a 1)(princ)
)

(defun a ()
        (setq a 1122334401 a 4)
        (repeat m;句子4
                (setq
                        lstr (cons (nth i lst) lstr)
                        i(1+ i))
        )
        (setq a 1122334400 a 5)(princ)
)
(defun a ()
        (setq a 1122334401 a 5)
        (reverse lstr);句子5
)
(defun a ()
        (setq a 1122334401 a 1)
        (if(> (+ n m) (setq ns(length lst)))(setq m (- ns n)));句子1
        (setq a 1122334400 a 2)(princ)
)
(defun a ()
        (setq a 1122334401 a 2)
        (repeat n;句子2
                (setq lst(cdr lst))
        )
        (setq a 1122334400 a 3)(princ)
)
(defun a ()
        (setq a 1122334401 a 3)
        (setq i 0);句子3
        (setq a 1122334400 a 4)(princ)
)


加载之后可以看出,函数是正常的,里面用了5个同名函数“a”,普通情况同名函数会被覆盖,但是这里例子显示,每一个同名函数都各自执行了一段代码,以完成主函数try-lst-n-m的功能

命令: (LOAD "C:/Users/YQH/Desktop/d.fas.fas") A
命令: (try-lst-n-m '(1 2 3 4 5) 2 3) (3 4 5)


我不认为在没有标志的情况这段代码还能还原出来,逐字分析fas指令吗?那不是多花点钱请人写新的工具就能解决的
发表于 2020-6-21 22:18 | 显示全部楼层
t18-13nil 发表于 2020-6-21 16:21
所反编译的只需写一个本程序的逆向程序就可以反编译了 ,修改编译后,再用本程序处理一下就恢复了。所以你 ...

原来的程序里面有那么多的原生57,如何确定哪个57是特殊的,哪个是原生的?
发表于 2020-6-21 07:49 | 显示全部楼层
这个可以,操作更简单了,也不容易出错了。
发表于 2020-6-21 07:50 | 显示全部楼层
这个可以,操作更简单了,也不容易出错了。
发表于 2020-6-21 08:20 | 显示全部楼层
好东西啊,指令号和标记号数值不一定是接近的吧。
 楼主| 发表于 2020-6-21 08:53 来自手机 | 显示全部楼层
不一样就行,注意看自己设置的和识别的标记是否一致,不一致就跟其它命令干涉了,换个就行。
发表于 2020-6-21 08:53 | 显示全部楼层
转换后,为什么跳转指令和跳转标记都是0呢?
 楼主| 发表于 2020-6-21 08:59 来自手机 | 显示全部楼层
零就是没识别到,注意范围,一个是32位int一个是16位int的正值部分
 楼主| 发表于 2020-6-21 09:05 来自手机 | 显示全部楼层
(setq a 128-2147483647 a 0-127)
发表于 2020-6-21 11:27 | 显示全部楼层
意思先在LISP里面添加跳转标记和跳转指令,然后再用这个程序转换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 19:09 , Processed in 0.182094 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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