问题描述
我正在研究一种名为 VMProtect 的代码虚拟化解决方案,该解决方案创建了一个带有虚拟指令集的自定义堆栈机器,以混淆代码。我想做的是将每个虚拟机指令处理程序(其中大部分由基于堆栈的操作组成)提升到 LLVM IR,然后应用优化和重新编译。
我将为此使用 llvm 的 IRBuilder。
我的一些问题是:
- 如何在 IR 中表示 push/pop
- 像这样的处理程序在 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 (将#修改为@)