本帖最后由 baitang36 于 2022-7-22 14:31 编辑

发现一个很有趣的东西,可以把一个字符串藏到一个符号中。

比如有个变量a,它的值是 “12345”,可以再把一个字符串如“abcd”放到符号a中保存,可以分别读取。(setq a nil)不会影响隐藏字符串的内容。
做了一个syz-set-string.fas,里面定义了两个函数 syz-set-string和syz-get-string
syz-set-string的用法是 (syz-set-string '符号 字符串 )   把字符串藏到一个符号中。成功返回T,不成功返回nil。
syz-get-string的用法是 (syz-get-string '符号  )  成功返回符号中隐藏的字符串,不成功返回空字符串""。

试验方法如下:

命令: (LOAD "C:/00/syz-set-string.fas")

命令: (setq A "1234")
"1234"

命令: (syz-set-string 'A "abcd" )
T

命令: (syz-get-string 'A )
"abcd"

命令: !a
"1234"


甚至还可以把字符串藏到系统函数中:

命令: (syz-set-string 'princ "test princ" )
T

命令: (syz-get-string 'princ )
"test princ"






网友答: 本帖最后由 llsheng_73 于 2022-7-22 14:29 编辑

这样一来的话,完全可以搞出很多不敢想象的东西。。。
比如先把一些系统函数的真正意义放进去,然后重定义它,甚至让它成为nil或者其它。。。总之就是看懂它也没 用,因为它已经不是所看到的了。。。

反正就是把它的皮囊放进灵魂,然后破坏皮囊,使之看起来已经死了,但实际上还能救活
甚至直接搞些张冠李戴的东西,谁都看不明白。。。


网友答:
llsheng_73 发表于 2022-7-22 14:37
可以把一些关键的小函数放进去,或者关键的全局变量放进去。。。适当时候才取出来。。。

感觉可以通过错误处理函数来搞一些乱七八糟的事情,比如把setq放入变量a ,把(setq n '(1 2))写成(a n '(1 2))
程序出错的时候去取a隐藏的setq出来,使之能运行,但看不懂

网友答: 本帖最后由 baitang36 于 2022-7-22 14:33 编辑
llsheng_73 发表于 2022-7-22 14:16
这样一来的话,完全可以搞出很多不敢想象的东西。。。
比如先把一些系统函数的真正意义放进去,然后重定义 ...

可以充分发挥想象力。常规方法无法抹掉隐藏的字符串的,它总是存在的

网友答: 厉害 总能发现稀奇玩意

网友答: 变量a必须是系统变量,不然会消失。字符串是函数定义,用elva让其运行。

网友答:
自贡黄明儒 发表于 2022-7-22 12:42
变量a必须是系统变量,不然会消失。字符串是函数定义,用elva让其运行。

想法不错,试试

网友答: 应该可以做成注册功能了,注册码藏起来

网友答: 本帖最后由 baitang36 于 2022-7-22 18:56 编辑
hhh454 发表于 2022-7-22 14:31
应该可以做成注册功能了,注册码藏起来

当初研究这个,就是考虑暂时隐藏敏感信息。常规方法无法抹掉它。

网友答:
hhh454 发表于 2022-7-22 14:31
应该可以做成注册功能了,注册码藏起来

可以把一些关键的小函数放进去,或者关键的全局变量放进去。。。适当时候才取出来。。。

网友答: 试了下可以放 2305个字符
  • 上一篇:SLdesign V3.0 表格居中代码原理探讨
  • 下一篇:没有了