后记文件中的奇怪操作数 (t!)
Weird operand (t!) on postscript file
我正在尝试对一些 postscript 文件进行逆向工程并遇到这组命令:
{/@co18
37 59 63 t! (PROMO) eq
not
def}exec
基本上,我对这一行感到困惑:
37 59 63 t! (PROMO) eq
这个 t!
代表什么?
eq
操作数需要从栈中取出2个对象进行比较。因此,据我了解,t!
对前面的 3 个数字进行了一些计算,并将结果保存在堆栈中。结果可能是某种字符串,因为它稍后将它与 'PROMO' 进行比较。
我没有在代码中的任何地方看到这个 t!
定义,但它出现在许多其他地方:
{@co3{@st2 setfont
186.71 106.80 moveto
59 22 31 t! sr }if}^ap
(另外,仍然不确定这个 ^ap
操作数在做什么)
您需要找到定义,它不是标准的 PostScript,因此必须在程序的某处定义。它可能在 eexec 加密部分。
你需要post一个例子,我才能进一步评论。
所以缺少的命令是代码的 eexec 部分中的 'hidden'。
我在这个问题上使用 Samyak answer 解密了它:
How to "decode" eexec of font file?
我正在尝试对一些 postscript 文件进行逆向工程并遇到这组命令:
{/@co18
37 59 63 t! (PROMO) eq
not
def}exec
基本上,我对这一行感到困惑:
37 59 63 t! (PROMO) eq
这个 t!
代表什么?
eq
操作数需要从栈中取出2个对象进行比较。因此,据我了解,t!
对前面的 3 个数字进行了一些计算,并将结果保存在堆栈中。结果可能是某种字符串,因为它稍后将它与 'PROMO' 进行比较。
我没有在代码中的任何地方看到这个 t!
定义,但它出现在许多其他地方:
{@co3{@st2 setfont
186.71 106.80 moveto
59 22 31 t! sr }if}^ap
(另外,仍然不确定这个 ^ap
操作数在做什么)
您需要找到定义,它不是标准的 PostScript,因此必须在程序的某处定义。它可能在 eexec 加密部分。
你需要post一个例子,我才能进一步评论。
所以缺少的命令是代码的 eexec 部分中的 'hidden'。 我在这个问题上使用 Samyak answer 解密了它: How to "decode" eexec of font file?