首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LLVM IR的等价项用于重新编号水印?

LLVM IR的等价项用于重新编号水印?
EN

Stack Overflow用户
提问于 2017-02-18 17:56:43
回答 1查看 59关注 0票数 1

我想应用一种水印算法,基本上对编程语言的等价术语进行重新排序:

https://books.google.dk/books?id=mig-bH3u0Z0C&pg=PT595&lpg=PT595&dq=obfuscation+renumbering+register&source=bl&ots=b3vMhp-yTq&sig=RERdnDNewRqBi7ZmSNMlsnPy-Hw&hl=da&sa=X&ved=0ahUKEwiLw-zWrpnSAhWEHJoKHXCpAkMQ6AEIGTAA#v=onepage&q=obfuscation%20renumbering%20register&f=false

比方说,T1, T2,...,Tn是语言的等价术语,那么水印就是一个置换f,比如f(Ti) = Tj

在本例中,编程语言是LLVM IR,它是一种中间语言。

这本书给出了一个通过应用排列对寄存器进行重新编号的例子。然而,寄存器不在LLVM IR的范围内,因为它们是较低级别的详细信息?

我一直在考虑LLVM的等效术语,但没有想出一些。越多越好,因为这意味着水印的程度更灵活。

您能想出LLVM IR的等价术语,以便每个术语都可以替换其他术语吗?或者,这样的水印只能在机器代码级别进行吗?

EN

回答 1

Stack Overflow用户

发布于 2017-02-20 12:41:25

即使您在IR级别执行此操作(您可以通过更改模式),您也不会走得太远,因为机器指令级别将重新洗牌所有内容。您最好编写一个(可能是在RA之后)机器指令级pass。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42313663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档