本帖最后由 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或者其它。。。总之就是看懂它也没 用,因为它已经不是所看到的了。。。
反正就是把它的皮囊放进灵魂,然后破坏皮囊,使之看起来已经死了,但实际上还能救活
甚至直接搞些张冠李戴的东西,谁都看不明白。。。
网友答:
感觉可以通过错误处理函数来搞一些乱七八糟的事情,比如把setq放入变量a ,把(setq n '(1 2))写成(a n '(1 2))
程序出错的时候去取a隐藏的setq出来,使之能运行,但看不懂
网友答:
本帖最后由 baitang36 于 2022-7-22 14:33 编辑
可以充分发挥想象力。常规方法无法抹掉隐藏的字符串的,它总是存在的网友答: 厉害 总能发现稀奇玩意网友答: 变量a必须是系统变量,不然会消失。字符串是函数定义,用elva让其运行。网友答:
想法不错,试试网友答: 应该可以做成注册功能了,注册码藏起来网友答: 本帖最后由 baitang36 于 2022-7-22 18:56 编辑
当初研究这个,就是考虑暂时隐藏敏感信息。常规方法无法抹掉它。网友答:
可以把一些关键的小函数放进去,或者关键的全局变量放进去。。。适当时候才取出来。。。网友答: 试了下可以放 2305个字符
发现一个很有趣的东西,可以把一个字符串藏到一个符号中。
比如有个变量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个字符