【发布时间】:2017-07-07 21:48:09
【问题描述】:
我想应用一种算法来添加水印,该算法基本上对编程语言的等效术语进行重新排序:
假设T1, T2,...,Tn是语言的等价词,那么水印是f的排列,使得f(Ti) = Tj。
在这种情况下,编程语言是 LLVM IR,它是一种中间语言。
本书提供了一个通过应用排列重新编号寄存器的示例。但是,寄存器不在 LLVM IR 的范围内,因为它们是较低级别的细节?
我一直在考虑 LLVM 的等效术语,但想不出一些。越多越好,因为这意味着更灵活的水印程度。
你能想出 LLVM IR 的等价术语,这样每个术语都可以替换为其他术语吗?还是只能在机器码级别做这种水印?
【问题讨论】:
标签: security llvm obfuscation watermark llvm-ir