明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: baitang36

[经验] [原创]给AutoLisp语言增加goto指令

  [复制链接]
发表于 2020-3-21 22:05:51 | 显示全部楼层
请教大佬如何获取修改的57 33 00 00 00 20 20 20,结合大佬以前帖子fas文件中的if和goto指令 理解:57为goto指令,33为跳转字节长度(51个,十进制https://tool.oschina.net/hexconvert/ 在线转的),前一个记号为绿色背景部分,字节数8个(理解应是前5个字节,不清楚后3个字节06 07 00为何也算为前一记号的一部分),两个记号之间的间隔大小理解为黄色背景部分,字节数40个,合计48个,与33h((51个,十进制)不相等,请问那个地方理解错了?另请问修改段的20 20 20 的含义,如何才能获取到?谢谢

00000040   0E 00 00 35 02 08 00 03  67 0D 00 00 00 33 31 37      5    g    317
00000050   30 39 06 07 00 57 09 00  00 00 09 06 00 35 01 05   09   W       5  
00000060   00 03 0A 35 00 05 00 03  16 14 00 00 00 00 09 04      5            
00000070   00 35 01 05 00 03 0A 35  00 03 00 03 0A 33 32 37    5     5     327
00000080   30 39 06 02 00 09 01 00  35 01 05 00 03 0A 35 00   09      5     5

发表于 2020-3-22 00:09:32 | 显示全部楼层
佩服,要好好学习楼主的,
发表于 2020-3-22 08:47:20 | 显示全部楼层
大神,看懂这些怎么入门,零基础,这方法太好了,吸粉无数啊............ Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000   0D 0A 20 46 41 53 34 2D  46 49 4C 45 20 3B 20 44
 楼主| 发表于 2020-3-22 12:10:56 | 显示全部楼层
本帖最后由 baitang36 于 2020-3-22 12:31 编辑
Kye 发表于 2020-3-21 22:05
请教大佬如何获取修改的57 33 00 00 00 20 20 20,结合大佬以前帖子fas文件中的if和goto指令 理解:57为goto ...

06就是setq。33 32 37  30 39 06 02 00这是完整的setq语句,跳转要跳过一条完整的语句,如果跳过半个语句会造成堆栈不平衡,结果或出错,或变量混乱。
20h指令是空操作,nop,用它占位置,什么也不干

点评

Kye
谢谢老师指点  发表于 2020-3-22 14:09
 楼主| 发表于 2020-3-22 12:27:39 | 显示全部楼层
434939575 发表于 2020-3-22 08:47
大神,看懂这些怎么入门,零基础,这方法太好了,吸粉无数啊............ Offset      0  1  2  3 ...

熟练使用winhex,逐渐了解每个字节的含义

点评

谢谢,有空逐步了解下,看着挺好玩.  发表于 2020-3-22 22:03
发表于 2020-3-25 10:49:30 | 显示全部楼层
很高深,先支持下楼主的分享
发表于 2020-5-19 08:48:34 | 显示全部楼层
会反破解的,必然首先是破解高手。
 楼主| 发表于 2020-5-20 15:45:06 | 显示全部楼层
rocking2008 发表于 2020-5-19 08:48
会反破解的,必然首先是破解高手。

不会用矛,怎会做盾?
发表于 2020-7-3 02:07:41 | 显示全部楼层
本帖最后由 yxp 于 2020-7-3 04:42 编辑

老哥老当益壮,志在千里啊。照猫画虎改造成功,不知道能否跨程序 goto ?

另外请教 33 31 37 30 39 06 07 00 中
31 37 30 39  是小端法存储的  h39303731,也就是十进制的 959,461,169
06 07 其中 06 是 setq , 07 是什么意思? 00  是结束符

57 后紧跟的跳转字节数,如果大于256怎么办,用两个字节存储?

(defun c:test ()
  (princ "\n跳转测试 --1")
  (setq firstData 321654987)
  (princ "\n跳转测试 --2")
  (setq secondData 321654987)
  (princ "\n跳转测试 --3")  
  (princ)
)

改造完成,测试完全没问题!

本帖子中包含更多资源

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

x
 楼主| 发表于 2020-7-6 14:09:50 | 显示全部楼层
yxp 发表于 2020-7-3 02:07
老哥老当益壮,志在千里啊。照猫画虎改造成功,不知道能否跨程序 goto ?

另外请教 33 31 37 30 39 06 0 ...

33 xx xx xx xx 06 yy yy
xxxxxxxx是个数字
yyyy是变量的编号,是两个字节。也就是说变量数不能超过65535,还是16位时代的规矩
也就是(setq yyyy xxxxxxxx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 01:45 , Processed in 0.202607 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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