后记文件中的奇怪操作数 (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?