首页 > 其他分享 >【原创】vs2022配置切换多个ollvm环境

【原创】vs2022配置切换多个ollvm环境

时间:2024-12-03 12:44:42浏览次数:4  
标签:混淆 llvm 控制流 加载 vs2022 ollvm irobf mllvm 切换

不同的ollvm的混淆效果不一样,不同魔改版的命令参数也不一样,有的支持迭代多次混淆,有的不支持。

我想使用ollvm不同的版本,怎么办?
我不想替换vs安装的原装llvm,怎么办?

直接下载别人编译好的文件,不用自己编译了:

https://github.com/KomiMoe/Arkari/releases/tag/Win64-MT-19.1.3-obf1.6.0
这个版本的参数是
Akira:
混淆过程间相关
间接跳转,并加密跳转目标(-mllvm -irobf-indbr)
间接函数调用,并加密目标函数地址(-mllvm -irobf-icall)
间接全局变量引用,并加密变量地址(-mllvm -irobf-indgv)
字符串(c string)加密功能(-mllvm -irobf-cse)
过程相关控制流平坦混淆(-mllvm -irobf-cff)
整数常量加密(-mllvm -irobf-cie) (Win64-MT-19.1.3-obf1.6.0 or later)
浮点常量加密(-mllvm -irobf-cfe) (Win64-MT-19.1.3-obf1.6.0 or later)
全部 (-mllvm -irobf-indbr -mllvm -irobf-icall -mllvm -irobf-indgv -mllvm -irobf-cse -mllvm -irobf-cff -mllvm -irobf-cie -mllvm -irobf-cfe)

然后我们再下载一个官方替换版
https://github.com/DreamSoule/ollvm17/tree/main
下载官方的llvm,然后把DreamSoule的clang.exe替换原有文件
这个版本就支持迭代多次混淆
参数是

  • bcf # 虚假控制流
  • bcf_prob # 虚假控制流混淆概率 1~100, 默认70
  • bcf_loop # 虚假控制流重复次数, 无限制, 默认2
  • fla # 控制流平坦化
  • sub # 指令替换(add/and/sub/or/xor)
  • sobf # 字符串混淆(仅窄字符)
  • split # 基本块分割
  • split_num # 将原基本块分割数量, 无限制, 默认3
  • ibr # 间接分支
  • icall # 间接调用 (call 寄存器)
  • igv # 间接全局变量

我把上述的两个文件夹放到了c盘的llvm目录下,然后我们准备两个文件(属性表)
ArkariLLVM.build.props
内容为


C:\llvm\ArkariLLVM
19.1.3
$(LLVMInstallDir)\bin;
$(LLVMInstallDir)\bin;$(VC_ExecutablePath_x86);$(CommonExecutablePath)
$(LLVMInstallDir)\lib\clang$(LLVMIncludeVersion)\include;


一个official1706.build.props
内容为


C:\llvm\official1706
17.0.6
$(LLVMInstallDir)\bin;$(VC_ExecutablePath_x86);$(CommonExecutablePath)


用的时候去加载属性表就行了,只能加载我们准备的两个属性表中的一个。

有时候加载了,但是属性设置还是会出问题,这里确认一下llvm工具集是否加载正确了:

然后根据你加载不同版本的属性表,就选择不同的混淆参数。

不想混淆了,就删除自己加载的那个属性表,顺便去参数里给混淆参数删掉。

标签:混淆,llvm,控制流,加载,vs2022,ollvm,irobf,mllvm,切换
From: https://www.cnblogs.com/coolfan/p/18583841

相关文章

  • 切换标签窗口后js定时器自动停止了,如何在激活标签后又继续呢?
    JavaScript定时器在标签页失去焦点(例如切换到其他标签页或最小化浏览器)时,会被浏览器降低优先级或暂停,以节省资源。这会导致定时器不准确,甚至看起来停止了。要解决这个问题,你需要使用requestAnimationFrame或手动调整时间差。1.使用requestAnimationFrame(推荐)requestAnim......
  • YOLOv8改进,YOLOv8引入SAConv可切换空洞卷积,二次创新C2f结构
    摘要作者提出的技术结合了递归特征金字塔和可切换空洞卷积,通过强化多尺度特征学习和自适应的空洞卷积,显著提升了目标检测的效果。理论介绍空洞卷积(AtrousConvolution)是一种可以在卷积操作中插入“空洞”来扩大感受野的技术,更有效地捕捉到图像中的大范围上下文信息......
  • YOLOv11改进,YOLOv11添加SAConv可切换空洞卷积,二次创新C3k2结构
    摘要作者提出的技术结合了递归特征金字塔和可切换空洞卷积,通过强化多尺度特征学习和自适应的空洞卷积,显著提升了目标检测的效果。理论介绍空洞卷积(AtrousConvolution)是一种可以在卷积操作中插入“空洞”来扩大感受野的技术,更有效地捕捉到图像中的大范围上下文信息......
  • npm切换镜像源
    https://www.baidu.com/s?wd=npm%E5%88%87%E6%8D%A2%E9%95%9C%E5%83%8F%E6%BA%90&rsv_spt=1&rsv_iqid=0xa19732e100e93e87&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_dl=tb&rsv_enter=1&oq=css......
  • 用CSS实现tab切换
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Tab切换</title>&......
  • 树莓派上手攻略:轻松切换至默认Python 3环境,解锁更多编程可能
    树莓派上手攻略:轻松切换至默认Python3环境,解锁更多编程可能前言树莓派作为一款开源的微型计算机,因其低成本和高灵活性而受到广泛欢迎。Python作为树莓派的官方编程语言,以其简洁的语法和强大的功能,成为了许多初学者和开发者的首选。然而,默认情况下,树莓派可能预装了Python2,这......
  • 【ElementPlus】el-form使用技巧:动态切换校验规则的最佳实践
    喵~今天分享一篇在ElementPlus中使用el-form动态切换校验规则的实用方法。一、问题概述作为前端开发人员,在开发项目中,特别是后台管理系统,表单的使用是必不可少的。当业务需求复杂时,常常需要根据不同的参数动态切换校验规则。当动态切换校验规则时,可能会出现一些意想不......
  • vs2022中windows窗体winform没有窗体设计器问题处理
    环境:vs2022,.net8,winfrom项目。问题:这几天重新换了个代码托管库,上传拉取代码后(换了本地目录),发现所有窗体都只能打开代码,不能打开窗体设计器进行控件的调整修改等。网上找了n多资料都无效。无意中发现是.user文件导致,这个文件一般在源码管理中是排除的。处理如下:项目名:WinForms......
  • NVM-nvm工具切换node版本
    NVM工具切换node版本nvm工具安装包:通过百度网盘分享的文件:NVM链接:https://pan.baidu.com/s/1HkXGajyB1jQCNLTV_CEDdQ提取码:sky1卸载已经安装的node1、 打开控制面板2、 找到node.js右键卸载3、 确保删除Node.js的安装目录,通常位于C:\ProgramFiles\nodejs。删除C:\Use......
  • 一台电脑如何安装多个不同版本的Node并能自由切换(NVM)
    使用场景:在做前端开发时公司有vue2和vue3的项目需要维护或自学,vue2大多只需要Node14版本,而vue3则是16以上版本,但电脑只能装一个Node,可我全都要。比如一会切到Node14vue2开发,一会切到Node16+vue3开发,所以我就想如果一台电脑能装多个不同Node版本,同时能自由切换,于是就查到了神器......