61bcdefg / Hikari-LLVM15

A fork of Hikari Obfuscator [WIP]
575 stars 160 forks source link

关于编译arm64e问题 #119

Closed LiuSky closed 2 months ago

LiuSky commented 2 months ago

Xcode15.4 ollvm 分支:https://github.com/61bcdefg/Hikari-LLVM15/tree/apple-arm64e-upstream-next build: cmake ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS="bolt;clang;clang-tools-extra;cross-project-tests;libclc;lld;lldb;mlir;polly;pstl" -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp" -DLLVM_ENABLE_ASSERTIONS=On -DPython3_EXECUTABLE="/usr/bin/python3" -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_BUILD_TYPE=Debug -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_INSTALL_PREFIX=/Library/Developer/Toolchains -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_EH=ON -DLLVM_INCLUDE_TESTS=OFF -DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DDEBUG=ON -DCMAKE_VERBOSE_MAKEFILE=ON

提示Hikari-LLVM15/lldb/source/API/CMakeLists.txt 错误 第7行的:SwiftAddCustomCommandTarget 没找到 还有add_custom_command_target这个命令

截屏2024-07-29 17 27 12

61bcdefg commented 2 months ago

-DLLVM_ENABLE_PROJECTS="bolt;clang;clang-tools-extra;cross-project-tests;libclc;lld;lldb;mlir;polly;pstl" -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp"

混淆用的工具链不需要把这些项目全加,只写clang

LiuSky commented 2 months ago

好的。谢谢

LiuSky commented 2 months ago

改成了cmake ../Hikari-LLVM15/llvm -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp" -DLLVM_ENABLE_ASSERTIONS=On -DPython3_EXECUTABLE="/usr/bin/python3" -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_BUILD_TYPE=Debug -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_INSTALL_PREFIX=/Library/Developer/Toolchains -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_EH=ON -DLLVM_INCLUDE_TESTS=OFF -DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DDEBUG=ON -DCMAKE_VERBOSE_MAKEFILE=ON 出现下面这个错误。

截屏2024-07-30 09 21 08 /Volumes/Disk/Ollvm-arm64e/Hikari-LLVM15/llvm/include/llvm/Transforms/Obfuscation/compat/CallSite.h:136:18: error: no member named 'isOpaqueOrPointeeTypeMatches' in 'llvm::PointerType'

61bcdefg commented 2 months ago

-DLLVM_ENABLE_ASSERTIONS=On OFF

你为什么要加这么多选项?workflow里的构建命令是100%能正常构建的

LiuSky commented 2 months ago

好的,我参考下workflow构建,谢谢。

LiuSky commented 2 months ago

用workflow的那个是可以的。但是我加了compiler-rt 就不行。

61bcdefg commented 2 months ago

用workflow的那个是可以的。但是我加了compiler-rt 就不行。

Apple的原分支就是有问题的,不加就行。从XcodeDefault.xctoolchain复制静态库到自己的工具链里

LiuSky commented 2 months ago

好的。

LiuSky commented 2 months ago

-mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-splitobf -mllvm -enable-subobf -mllvm -enable-acdobf -mllvm -enable-indibran -mllvm -enable-strcry

arm64e 编译出来的,很多函数在IDA都找不到了。在arm64是正常。

试了下只设置-mllvm -enable-strcry 是正常的。其他的在arm64e上面就是都会丢失函数。用IDA打开没找到函数了

61bcdefg commented 2 months ago

为什么你要在混淆后在ida里看能不能找到函数?你这样做的意义是什么?混淆后程序能正常运行那不就是ok的?

LiuSky commented 2 months ago

为什么你要在混淆后在ida里看能不能找到函数?你这样做的意义是什么?混淆后程序能正常运行那不就是ok的?

还没走看看能不能跑。😂。马上试下

LiuSky commented 2 months ago

为什么你要在混淆后在ida里看能不能找到函数?你这样做的意义是什么?混淆后程序能正常运行那不就是ok的?

不行。😂。

61bcdefg commented 2 months ago

-mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-splitobf -mllvm -enable-subobf -mllvm -enable-indibran -mllvm -enable-strcry 去掉-mllvm -enable-acdobf

LiuSky commented 2 months ago

-mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-splitobf -mllvm -enable-subobf -mllvm -enable-indibran -mllvm -enable-strcry 去掉-mllvm -enable-acdobf

太酷啦。搞定了。还有 Apple的原分支就是有问题的,不加就行。从XcodeDefault.xctoolchain复制静态库到自己的工具链里 这个工具链具体复制那几个。我目前是直接lib里面的直接copy 过去。不知道会不会有问题。目前还没测试出来有问题