Je veux appliquer un algorithme de watermarking qui réordonne essentiellement termes équivalents d'un langage de programmation:Termes équivalents de LLVM IR pour le marquage par renumérotation?
Say, T1, T2,...,Tn
sont des termes équivalents de la langue, le filigrane est une permutation f
telle que f(Ti) = Tj
.
Dans ce cas, le langage de programmation est LLVM IR, qui est un langage intermédiaire.
Le livre donne un exemple de renumérotation des registres en appliquant une permutation. Cependant, les registres ne sont pas dans le champ d'application de LLVM IR, car ils sont un détail de niveau inférieur?
Je pensais à des termes équivalents de LLVM, mais je ne peux pas en trouver. Le plus sera le mieux, car cela signifie un degré plus souple de tatouage. Pouvez-vous penser à des termes équivalents de LLVM IR de sorte que chacun pourrait être remplacé par un autre? Ou est-ce seulement possible de faire un tel tatouage au niveau du code machine?
Merci Joky. Qu'est-ce que "post-RA"? Comment écrirais-je une passe d'instruction machine? Est-ce possible en utilisant le framework LLVM? Pourriez-vous me pointer dans la direction sur la façon de faire cela? – Shuzheng
post-RA signifie après l'allocation de registre. Voici le doc: http://llvm.org/docs/WritingAnLLVMPass.html#the-machinefunctionpass-class; et je vous conseille de chercher dans la base de code LLVM pour MachineFunctionPass pour voir plusieurs exemples. – Joky