61bcdefg / Hikari-Swift

Swift Toolchain of Hikari Obfuscator
36 stars 23 forks source link

Hanabi问题咨询 #4

Closed DaemonSong closed 9 months ago

DaemonSong commented 1 year ago

问一个有点迷的操作,直接按照步骤执行注入、签名是正常使用没问题的, 目前的操作是先将系统的XcodeDefault.toolchain复制了一份,然后更改了名字与内部的Identifier,之后针对副本执行了注入签名操作,然后使用的时候还是走的切换toolchain,但是遇到了不识别flags的错误,请问这种方式有什么区别吗? 这种操作主要是需要部署在机器上,有的需要走混淆有的不需要,不需要混淆的APP担心直接注入会产生影响,解释了工作原理也没用 :)

Naville commented 1 year ago

不要用注入方式 说过了

61bcdefg commented 1 year ago

目前的操作是先将系统的XcodeDefault.toolchain复制了一份,然后更改了名字与内部的Identifier,之后针对副本执行了注入签名操作,然后使用的时候还是走的切换toolchain,但是遇到了不识别flags的错误,请问这种方式有什么区别吗?

可能你应该使用一个新的Info.plist?而不是直接修改XcodeDefault里面的 第三方toolchain的plist格式与XcodeDefault里的是不同的

DaemonSong commented 1 year ago

目前的操作是先将系统的XcodeDefault.toolchain复制了一份,然后更改了名字与内部的Identifier,之后针对副本执行了注入签名操作,然后使用的时候还是走的切换toolchain,但是遇到了不识别flags的错误,请问这种方式有什么区别吗?

可能你应该使用一个新的Info.plist?而不是直接修改XcodeDefault里面的 第三方toolchain的plist格式与XcodeDefault里的是不同的

您好,打扰了,[Hanabi] Looks like you are currently running the process in Rosetta 2 mode, which will prevent DobbyHook from working.\nPlease close it. 这个警告是怎样的逻辑?或者说怎么关闭这个模式...不太懂,还望指教 查了一下Rosetta 2的作用: 「通过 Rosetta 2,搭载 Apple 芯片的 Mac 可以使用专为配备 Intel 处理器的 Mac 构建的 App」

还有一个问题,看您的release里面libLLVMHanabi的两个动态库是支持arm64跟x86架构的,我用M1编译的只有arm64架构,指定了arch也没用,请问是需要用intel编译一份,然后合并动态库吗?

61bcdefg commented 1 year ago

这个提示已经说了是什么原因了

DaemonSong commented 1 year ago

这个提示已经说了是什么原因了

嗯,使用 Rosetta 2 mode模式,DobbyHook 不起作用,我的意思是怎么关闭这个?没找到有效的方式...另外关于架构的问题可以回复一下吗?

DaemonSong commented 1 year ago

您好,使用hanabi有报错,辛苦帮忙看下。

使用的配置: "-mllvm" "-enable-bcfobf" "-mllvm" "-enable-cffobf" "-mllvm" "-enable-subobf" "-mllvm" "-enable-strcry" "-mllvm" "-enable-splitobf" "-mllvm" "-bcf_prob=30"

具体报错文件添加到了附件: 归档.zip

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 ??? 0x7ff8951529a8 ??? 1 libsystem_kernel.dylib 0x7ff80554f1f2 pthread_kill + 10 2 libsystem_pthread.dylib 0x7ff805586ee6 pthread_kill + 263 3 libsystem_c.dylib 0x7ff8054adbdf abort + 139 4 libsystem_c.dylib 0x7ff8054adb54 abort + 138 5 libsystem_malloc.dylib 0x7ff8053c4752 malloc_vreport + 888 6 libsystem_malloc.dylib 0x7ff8053d9a08 malloc_zone_error + 183 7 libsystem_malloc.dylib 0x7ff8053bd7a1 small_free_list_remove_ptr_no_clear + 1017 8 libsystem_malloc.dylib 0x7ff8053b8949 small_malloc_from_free_list + 200 9 libsystem_malloc.dylib 0x7ff8053b821b small_malloc_should_clear + 241 10 libsystem_malloc.dylib 0x7ff8053b8035 szone_malloc_should_clear + 109 11 libc++abi.dylib 0x7ff805542b7a operator new(unsigned long) + 26 12 clang 0x10130671e llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false>>::CalculateFromScratch(llvm::DominatorTreeBase<llvm::BasicBlock, false>&, llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false>>::BatchUpdateInfo) + 4606 13 clang 0x10130cb73 llvm::DominatorTreeWrapperPass::runOnFunction(llvm::Function&) + 19 14 clang 0x101359109 llvm::FPPassManager::runOnFunction(llvm::Function&) + 1321 15 clang 0x101362624 llvm::FPPassManager::runOnModule(llvm::Module&) + 52 16 clang 0x10135b1f8 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 648 17 clang 0x101cb9c0d clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete>) + 3117 18 clang 0x101f7db1f clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 1631 19 clang 0x1032b8507 clang::ParseAST(clang::Sema&, bool, bool) + 327 20 clang 0x1021f39c4 clang::FrontendAction::Execute() + 52 21 clang 0x102189a04 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 260 22 clang 0x102243351 clang::ExecuteCompilerInvocation(clang::CompilerInstance) + 705 23 clang 0x1005f86c5 cc1_main(llvm::ArrayRef<char const>, char const, void) + 1461 24 clang 0x1005f5440 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) + 1008 25 clang 0x1005f4fa7 main + 4807 26 dyld 0x206e8041f start + 1903