当前位置: 首页 > news >正文

c++混淆工具Hikari-LLVM15-llvm-18.1.8rel编译安装

目录

  • 1. windows 编译
    • 1. 2 编译工具安装
      • 1.2.1 下载w64devkit
      • 1.2.2 添加环境变量
      • 1.2.3 验证一下
    • 1.3 下载llvm-18.1.8rel
    • 1.4 编译
  • 2. Android studio增加混淆编译
    • 2.1 替换NDK中clang
    • 2.2 配置混淆编译项
  • 3. Linux编译安装
  • 4. Linux下增加混淆编译
    • 4.1 在CMakeLists.txt中设置clang编译器
    • 4.2 CMakeLists.txt中设置混淆编译选项

1. windows 编译

1. 2 编译工具安装

1.2.1 下载w64devkit

w64devkit

1.2.2 添加环境变量

在这里插入图片描述

1.2.3 验证一下

在这里插入图片描述

1.3 下载llvm-18.1.8rel

百度网盘地址:
链接: https://pan.baidu.com/s/1hbXmOxqc1Vln-CWLXT5Ulw?pwd=ur9m 提取码: ur9m

1.4 编译

cmake -S llvm -B build -G "MinGW Makefiles" -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF
cd build
mingw32-make.exe -j8

在这里插入图片描述

2. Android studio增加混淆编译

2.1 替换NDK中clang

将Hikari-LLVM15-llvm-18.1.8rel\build\bin下的clang.exe、clang++.exe、clang-cl.exe
替换到ndk\27.1.12297006\toolchains\llvm\prebuilt\windows-x86_64\bin目录
注意:Hikari-LLVM15对应ndk27

2.2 配置混淆编译项

android {ndkVersion = "27.1.12297006"
}

CMakeLists.txt增加编译选项

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)

注意:当配置选项-mllvm -enable-allobf时报错,原因未知
更多编译选项参考:
https://github.com/HikariObfuscator/Hikari/wiki/Usage

3. Linux编译安装

unzip Hikari-LLVM15-llvm-18.1.8rel.zip
cd Hikari-LLVM15-llvm-18.1.8relrm -rf build/*
cmake -S llvm -B build -G "Unix Makefiles" -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_NEW_PASS_MANAGER=OFFcd build
make -j8
make install

4. Linux下增加混淆编译

4.1 在CMakeLists.txt中设置clang编译器


set(CMAKE_C_COMPILER "clang")
set(CMAKE_CXX_COMPILER "clang++")

4.2 CMakeLists.txt中设置混淆编译选项

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)

参考:
https://blog.csdn.net/weixin_45582916/article/details/141965485
https://www.cnblogs.com/maiiiii/p/17553519.html

http://www.xdnf.cn/news/323569.html

相关文章:

  • Android 蓝牙开发调试总结
  • 多模态学习(一)——从 Image-Text Pair 到 Instruction-Following 格式
  • Java学习手册:数据库事务相关知识
  • 护照阅读器简介
  • 算法导论第7章思考题
  • 16.Three.js 中的 RectAreaLight 全面详解 + Vue 3 实战案例
  • 动态规划之01背包——三道题助你理解01背包
  • 深入浅出之FPN (Feature Pyramid Networks for Object Detection)
  • vue3 element-plus 输入框回车跳转页面问题处理
  • 拒绝服务攻击(DoS/DDoS/DRDoS)详解:洪水猛兽的防御之道
  • 嵌入式学习--江协51单片机day2
  • 基于英特尔 RealSense D455 结构光相机实现裂缝尺寸以及深度测量
  • STM32基础教程——硬件SPI
  • OpenMVS 的编译与运行
  • 2025年链游行业DDoS与CC攻击防御全解析:高带宽时代的攻防博弈
  • 算法-时间复杂度和空间复杂度
  • 【Python 函数】
  • 【c++】 我的世界
  • 【EasyPan】saveShare代码分析
  • 部署Prometheus+Grafana简介、监控及设置告警(一)
  • ChromeDriverManager的具体用法
  • uni-app实现完成任务解锁拼图功能
  • 数字康养新范式:七彩喜平台重构智慧养老生态的深度实践
  • 【Python 实战】---- 使用Python批量将 .ncm 格式的音频文件转换为 .mp3 格式
  • 加速项目落地(Trae编辑器)
  • 知识图谱:AI大脑中的“超级地图”如何炼成?
  • MCU缓存架构设计与优化策略
  • 【工具】HandBrake使用指南:功能详解与视频转码
  • IBM BAW(原BPM升级版)使用教程Toolkit介绍
  • MATLAB中去除噪声