goron
goron copied to clipboard
ObjC字符串加密支持
我在https://github.com/apple/llvm-project apple/stable/20190619稳定分支上的 llvm 9上对string pass进行了测试,未在llvm-8.0.0-cse上进行测试
产生的异常
2. Per-module optimization passes
3. Running pass 'Obfuscation Pass Manager' on module '/TestEaxmple/main.m'.
0 clang-9 0x0000000110962d84 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1 clang-9 0x000000011096317d SignalHandler(int) + 188
2 libsystem_platform.dylib 0x00007fff5ab7fb5d _sigtramp + 29
3 libsystem_platform.dylib 0x000000011e59f938 _sigtramp + 3282173432
4 libsystem_c.dylib 0x00007fff5aa396a6 abort + 127
5 libsystem_c.dylib 0x00007fff5aa0220d basename_r + 0
6 clang-9 0x000000011244a6e2 llvm::SmallVectorTemplateBase<char, true>::push_back(char const&) (.cold.1) + 0
7 clang-9 0x000000011051dc61 llvm::StructType::getName() const + 37
8 clang-9 0x0000000111306a85 (anonymous namespace)::StringEncryption::runOnModule(llvm::Module&) + 5021
9 clang-9 0x00000001112ff528 llvm::ObfuscationPassManager::run(llvm::Module&) + 90
10 clang-9 0x00000001112ff4bb llvm::ObfuscationPassManager::runOnModule(llvm::Module&) + 525
11 clang-9 0x00000001104eb58b llvm::legacy::PassManagerImpl::run(llvm::Module&) + 695
12 clang-9 0x0000000110afc1fb clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream> >) + 11368
13 clang-9 0x0000000110cbc5f8 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 1006
14 clang-9 0x00000001117cb62c clang::ParseAST(clang::Sema&, bool, bool) + 545
15 clang-9 0x0000000110e7a22a clang::FrontendAction::Execute() + 84
16 clang-9 0x0000000110e435fe clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1128
17 clang-9 0x0000000110ebfcc8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1410
18 clang-9 0x000000010f5ee96e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1471
19 clang-9 0x000000010f5ed90c main + 7833
20 libdyld.dylib 0x00007fff5a9943d5 start + 1
21 libdyld.dylib 0x00000000000000a5 start + 2774973649
clang-9: error: unable to execute command: Abort trap: 6
clang-9: error: clang frontend command failed due to signal (use -v to see invocation)
不加这个patch是正常的?
测试了下 别的pass暂时未发现问题,不开启stringEncrypt就可以正常编译
已修复
稍后我给你提个pr吧
好像 我开启后 没效果 使用的是 swift-llvm-5.1分支 不知道你们有没有效果