Closed DaemonSong closed 9 months ago
不要用注入方式 说过了
目前的操作是先将系统的XcodeDefault.toolchain复制了一份,然后更改了名字与内部的Identifier,之后针对副本执行了注入签名操作,然后使用的时候还是走的切换toolchain,但是遇到了不识别flags的错误,请问这种方式有什么区别吗?
可能你应该使用一个新的Info.plist?而不是直接修改XcodeDefault里面的 第三方toolchain的plist格式与XcodeDefault里的是不同的
目前的操作是先将系统的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编译一份,然后合并动态库吗?
这个提示已经说了是什么原因了
这个提示已经说了是什么原因了
嗯,使用 Rosetta 2 mode模式,DobbyHook 不起作用,我的意思是怎么关闭这个?没找到有效的方式...另外关于架构的问题可以回复一下吗?
您好,使用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
问一个有点迷的操作,直接按照步骤执行注入、签名是正常使用没问题的, 目前的操作是先将系统的XcodeDefault.toolchain复制了一份,然后更改了名字与内部的Identifier,之后针对副本执行了注入签名操作,然后使用的时候还是走的切换toolchain,但是遇到了不识别flags的错误,请问这种方式有什么区别吗? 这种操作主要是需要部署在机器上,有的需要走混淆有的不需要,不需要混淆的APP担心直接注入会产生影响,解释了工作原理也没用 :)