将混淆的堆栈机器提升到 LLVM IR

问题描述

我正在研究一种名为 VMProtect 的代码虚拟化解决方案,该解决方案创建了一个带有虚拟指令集的自定义堆栈机器,以混淆代码。我想做的是将每个虚拟机指令处理程序(其中大部分由基于堆栈的操作组成)提升到 LLVM IR,然后应用优化和重新编译。

我将为此使用 llvm 的 IRBuilder。

我的一些问题是:

  1. 如何在 IR 中表示 push/pop
  2. 像这样的处理程序在 IR 中会是什么样子
  mov     rdx,[rbp] ; get virtual stack operand
  add     rbp,8         ; add to stack pointer
  mov     [rax+rdi],rdx ; move to scratch space

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...