明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 412|回复: 14

[函数] 内部函数_byte@读内存

[复制链接]
发表于 2022-8-3 20:33 | 显示全部楼层 |阅读模式
写内存就是_byte@<-,但是这两个函数有个局限性,系统部分没办法读写。

评分

参与人数 1明经币 +1 金钱 +30 收起 理由
highflybird + 1 + 30 很给力!

查看全部评分

 楼主| 发表于 2022-8-4 12:12 | 显示全部楼层
_$ (_addr-of car)
59290240
_$
(defun AYL-read-memory (PEntry Offset Number / CodLst)
  (setq CodLst nil)
  (setq PEntry (+ PEntry Offset))
  (while (> Number 0)
    (setq CodLst (cons (_byte@ PEntry) CodLst))
    (setq PEntry (1+ PEntry))
    (setq Number (1- Number))
  )
  (reverse CodLst)
)
_$ (AYL-READ-MEMORY 59290240 0 32)
(64 57 87 96 0 0 0 0 192 81 114 3 128 113 80 96 1 0 0 0 64 57 87 96 0 0 0 0 152 110 114 3)
_$
发表于 2022-8-4 20:44 | 显示全部楼层
本帖最后由 baitang36 于 2022-8-4 20:49 编辑
nzl1116 发表于 2022-8-3 21:26
总不能随便给个指针去读内存,象无头苍蝇一样去猜,那毫无意义,再提供一个数据在内存中的数据块_addr-of

其实不需要_addr-of,直接(_byte@ car)读出来的结果一样。

【原创】按实现方法给autolisp函数分类 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)
这个帖子的函数类型就是用类似(_byte@ car)这样的方法读出来的。200类型的函数,就是这么来的。
发表于 2022-8-8 10:00 | 显示全部楼层
64位版本CAD2018测试
_$ (syz-_addr-of car)
1237819328
_$ (AYL-READ-MEMORY (syz-_addr-of car) 0 32)
(72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72)
_$ (AYL-READ-MEMORY 00001237819328 0 32)
(72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72)
_$ (syz-_byte@ car  )
168
_$
 楼主| 发表于 2022-8-3 20:38 | 显示全部楼层
本帖最后由 nzl1116 于 2022-8-3 20:40 编辑

还有_word@和_word@<-
_ptr@和_ptr@<-
 楼主| 发表于 2022-8-3 21:26 | 显示全部楼层
总不能随便给个指针去读内存,象无头苍蝇一样去猜,那毫无意义,再提供一个数据在内存中的数据块_addr-of
发表于 2022-8-4 09:12 | 显示全部楼层
希望能看到应用实例
发表于 2022-8-4 10:40 | 显示全部楼层

希望能看到应用实例 +1
发表于 2022-8-4 15:16 | 显示全部楼层
这些是系统内部函数吗?
发表于 2022-8-4 22:58 | 显示全部楼层
都是大佬跟着学习
发表于 2022-8-5 07:49 | 显示全部楼层
本帖最后由 baitang36 于 2022-8-5 07:53 编辑

楼主如果能解释一下从内存中读出来的数据的含义就更好了。
(64 57 87 96    0 0 0 0    192 81 114 3    128 113 80 96     1 0 0 0)
我研究了好久,才能明白这第一个字节是表示函数的类型。64 是函数类型,不同版本不同,但同一类函数是相同的。我用acad2008试验,这里是200。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2022-8-8 17:48 , Processed in 0.145694 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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