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.pswp.cn/bicheng/80042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80042.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【EasyPan】loadDataList方法及checkRootFilePid方法解析

【EasyPan】項目常見問題解答(自用&持續更新中…)匯總版 一、loadDataList方法概覽 /*** 文件列表加載接口* param session HTTP會話對象* param shareId 必須參數,分享ID(使用VerifyParam進行非空校驗)* param …

Vue3渲染引擎:虛擬DOM與響應式原理

Vue3渲染引擎:虛擬DOM與響應式原理 在當今的前端開發中,Vue.js作為一種流行的JavaScript框架,經常被用來構建用戶界面。而Vue.js 3作為其最新版本,在性能和功能上進行了許多優化和改進。其中,Vue3渲染引擎的核心原理—…

【論文閱讀】Attentive Collaborative Filtering:

Attentive Collaborative Filtering: Multimedia Recommendation with Item- and Component-Level Attention Attentive Collaborative Filtering (ACF)、隱式反饋推薦、注意力機制、貝葉斯個性化排序 標題翻譯:注意力協同過濾:基于項目和組件級注意力的…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】2.1 數據查詢基礎(SELECT/WHERE/GROUP BY/HAVING)

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 第2章 SQL語法進階:數據查詢基礎(SELECT/WHERE/GROUP BY/HAVING)2.1 數據查詢基礎2.1.1 SELECT 語句:從表中提取數據2.1.1.1 基礎語法與列選擇2.1.1.2 列別名與表達式2.1.1.3 去重與排序2.1.2 WHERE…

深度解析:基于Python的微信小程序自動化操作實現

引言 在當今數字化時代,自動化技術正在改變我們與軟件交互的方式。本文將深入解析一個使用Python實現的微信小程序自動化操作腳本,該腳本能夠自動識別屏幕上的特定圖像并執行點擊操作。這種技術在自動化測試、批量操作和效率工具開發中有著廣泛的應用前…

layui下拉框輸入關鍵字才出數據

html里這樣放 <div class"layui-form-item"><label class"layui-form-label">合同方&#xff1a;</label><div class"layui-input-block rightinline"><input type"text" name"select_text" ids…

bash和zsh的區別

Bash&#xff08;Bourne-Again SHell&#xff09;和 Zsh&#xff08;Z Shell&#xff09;都是 Unix/Linux 系統中的主流 Shell&#xff0c;但它們在功能、配置和用戶體驗上有顯著區別。以下是兩者的詳細對比&#xff1a; 1. 歷史與兼容性 特性BashZsh誕生時間1989 年&#xff…

組件通信-v-model

概述&#xff1a;實現 父?子 之間相互通信。 前序知識 —— v-model的本質 <!-- 使用v-model指令 --> <input type"text" v-model"userName"><!-- v-model的本質是下面這行代碼 --> <input type"text" :value"use…

虛擬機(Virtual Machine, VM)的簡單介紹

目錄 一、虛擬機的基本概念 二、虛擬化技術的分類 三、虛擬機的核心架構 四、虛擬機的核心應用場景 五、虛擬機的優缺點分析 六、虛擬機與容器技術的對比 七、虛擬機的未來趨勢 八、總結 一、虛擬機的基本概念 虛擬機&#xff08;VM&#xff09;是一種通過軟件模擬的完…

Xcode16提交App Store審核時提示bitcode報錯

提交AppStore時出現bitcode報錯&#xff0c;內容如下&#xff1a; Upload was cancelled. 2025-04-30 02:15:48.349 [ContentDelivery.Uploader.600000DB4380] Show Progress: Upload failed. Validation failed Invalid Executable. The executable Blockolot.app/Frameworks/…

Flutter TabBar / TabBarView 詳解

目錄 一、引言 二、基本用法 代碼解析 三、主要屬性 3.1 TabBar 3.2 TabBarView 四、進階定制&#xff1a;突破默認樣式 4.1 視覺樣式深度定制 4.2 自定義指示器與標簽 4.3 動態標簽管理 五、工程實踐關鍵技巧 5.1 性能優化方案 5.2 復雜手勢處理 5.3 響應式布局…

mathtype轉化

mathtype轉latex 點擊預置 選擇剪切和復制預置 點擊MathML 或 TeX&#xff0c;選擇 LaTeX 2.09 and later mathtype轉word自帶編碼器 與前面都相同&#xff0c;選擇 MathML2.0&#xff08;m namespace&#xff09;

AI檢測的荒謬性:當規則淪為一場概率游戲

當今高校對AI檢測工具的依賴&#xff0c;已經演變成一場標準混亂的鬧劇。有的學校指定格子達&#xff0c;有的迷信維普&#xff0c;而同一篇論文在不同的系統里竟能得出天差地別的結果——在格子達AI檢測率僅12%的文章&#xff0c;放到維普卻可能飆升到60%。這意味著&#xff0…

react-14defaultValue(僅在首次渲染時生效)和value(受 React 狀態控制)

在 React 中&#xff0c;defaultChecked/checked 和 defaultValue/value 是用于處理表單元素初始值和受控值的屬性對。區別在于表單元素是否受 React 組件狀態控制。 1. defaultValue 作用&#xff1a;設置表單元素的初始值&#xff08;僅在首次渲染時生效&#xff09;。特點…

Go語言基礎學習詳細筆記

文章目錄 初步了解Go語言Go語言誕生的主要問題和目標Go語言應用典型代表Go語言開發環境搭建經典HelloWorld 基本程序結構編寫學習變量常量數據類型運算符 條件語句if語句switch 語句 跳轉語句常用集合和字符串數組切片Map實現Set**字符串** 函數**基本使用用例驗證** 面向對象編…

wrod生成pdf。[特殊字符]改背景

import subprocess import os,time from rembg import remove, new_session from PIL import Image import io from docxtpl import DocxTemplate, InlineImage from docx.shared import Inches input_folder ‘tupian’ # 輸入文件夾 kouchu_folder ‘kouchu’ # 去背景圖像…

基于SpringBoot和PostGIS的應急運輸事件影響分析-以1.31側翻事故為例

目錄 前言 一、技術實現路徑 1、需要使用的數據 2、空間分析方法 二、相關模塊設計與實現 1、運輸路線重現開發 2、事故點影響范圍實現 3、WebGIS可視化實現 三、討論 1、界面結果展示 2、影響范圍分析 四、總結 前言 在交通運輸發達的當今社會&#xff0c;應急運輸…

NetBox:運維利器,網絡與數據中心管理平臺

NetBox 詳細介紹&#xff1a;開源 IPAM 和 DCIM 工具的全面解析 1. 引言 在現代網絡和數據中心管理中&#xff0c;基礎設施的復雜性不斷增加&#xff0c;傳統的電子表格或手動記錄方式已無法滿足高效、準確和可擴展的管理需求。NetBox 作為一個開源的 IP 地址管理&#xff08…

澳鵬干貨 | 動態判斷:如何用“群體智慧“優化AI數據標注流程?

20世紀初&#xff0c;800人集體猜測一頭公牛的重量&#xff0c;結果與真實數值誤差不足1%——這就是著名的"群體智慧"效應。如今&#xff0c;這一古老智慧正以全新形態賦能AI訓練&#xff1a;通過動態優化標注流程&#xff0c;讓AI訓練結果像人群一樣達成精準共識。 …

go.mod沒有自動緩存問題

今天在安裝Gin框架的時候遇到了一個問題 在Terminal運行下面命令安裝時&#xff0c;包已經被下載安裝到了GoPath中的bkg/mod go get -u github.com/gin-gonic/gin但是由于使用的是Go Modules&#xff0c;GPT以及大多數人給的說法是 運行完這個依賴包會被自動同步更新到go.mod…