最新消息:

[iOS Hacker] obfuscator-llvm Theos 集成配置

iOS/MacOSX/移动安全 exchen 2244浏览 0评论

之前我写过一篇文章是关于在 Xcode 里怎么集成配置 obfuscator-llvm
obfuscator-llvm Xcode集成配置

有些情况下我们使用 Theos 开发 tweak,需要将 obfuscator-llvm 集成到 Theos 里,这样编译出来的 dylib 也是混淆的。通过 官方的使用说明 了解,使用 obfuscator-llvm 的 clang 去编译程序,后面添加 -mllv -fla 参数就可以混淆,那这样只要在 Makefile 将 clang 的路径修改成 obfuscator-llvm 的,然后再添加参数不就行了吗?

——————————————————–
来对比看看混淆和不混淆的效果,写一个最简单的代码

使用命令行编译,clang 得用 obfuscator 版

如果提示没找到 stdio.h,使用大写的 I 添加 include 路径

或者也可以写一个 Makefile,使用 make 命令编译。

用 IDA 的 F5 功能看看混淆之后效果:

转载请注明:exchen's blog » [iOS Hacker] obfuscator-llvm Theos 集成配置

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (5)

  1. 您好,我用您之前obfuscator-llvm的教程,一直到最后我编译的时候报 “error: can't exec '/path/to/obfuscator_bin/clang' (No such file or directory)”是为什么
    Arvinnnma1年前 (2017-11-10)回复
    • /path/to/obfuscator_bin/clang,我在文章里这样写只是举例 因为每个人电脑上的 clang 的路径不一定一样,你编译 obfuscator-llvm 成功之后,看一下 clang 是在哪个路径就写成哪个路径。
      exchen1年前 (2017-12-08)回复
  2. 使用了 clang test.c -o test -mllvm -fla 后,提示《clang (LLVM option parsing): Unknown command line argument '-fla'. Try: 'clang (LLVM option parsing) -help'》
    YjAdair1年前 (2017-12-19)回复
    • 你没有写绝对路径,应该要写 obfuscator 的 clang 绝对路径,因为 Xcode 已经有一个 clang 了,clang test.c -o test -mllvm -fla 可能是使用的是 Xcode 的。
      exchen12个月前 (12-24)回复
  3. 你好,看了你的教程后我试了一下我用theos创建的app模板工程,编译都没有问题,但是一链接静态库就报错,不知如何解决。 Undefined symbols for architecture armv7: “std::__1::__vector_base_common::__throw_length_error() const”, referenced from: l049 in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::vector::allocate(unsigned long) in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::enable_if<(__is_forward_iteratorMAHeatMapTileProviderTools::color*::value) && (is_constructible::value), void>::type std::__1::vector::assignMAHeatMapTileProviderTools::color*(MAHeatMapTileProviderTools::color*, MAHeatMapTileProviderTools::color*) in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::vector::allocate(unsigned long) in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::enable_if<(__is_forward_iterator::value) && (is_constructible<float, std::__1::iterator_traits::reference>::value), void>::type std::__1::vector::assign(float*, float*) in libMAMapKit.a(MAMapKit-armv7-master.o) void std::__1::vector::__push_back_slow_path(MAHeatMapTileProviderTools::Gradient::ColorInterval* const&&&) in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::vector::allocate(unsigned long) in libMAMapKit.a(MAMapKit-armv7-master.o) … “std::__1::__next_prime(unsigned long)”, referenced from: std::__1::__hash_table<std::__1::__hash_value_type, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type, std::__1::hash, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type, std::__1::equal_to, true>, std::__1::allocator<std::__1::__hash_value_type > >::rehash(unsigned long) in libMAMapKit.a(MAMapKit-armv7-master.o) “operator delete”, referenced from: l048 in libMAMapKit.a(MAMapKit-armv7-master.o) “operator delete(void*)”, referenced from: l045 in libMAMapKit.a(MAMapKit-armv7-master.o) l049 in libMAMapKit.a(MAMapKit-armv7-master.o) l434 in libMAMapKit.a(MAMapKit-armv7-master.o) l436 in libMAMapKit.a(MAMapKit-armv7-master.o) l437 in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::__vector_base::~__vector_base() in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::vector::deallocate() in libMAMapKit.a(MAMapKit-armv7-master.o) … “operator new[](unsigned long)”, referenced from: l048 in libMAMapKit.a(MAMapKit-armv7-master.o) “operator new(unsigned long)”, referenced from: l049 in libMAMapKit.a(MAMapKit-armv7-master.o) l434 in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::vector::allocate(unsigned long) in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::vector::allocate(unsigned long) in libMAMapKit.a(MAMapKit-armv7-master.o) l440 in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::unordered_map<int, MAHeatMapTileProviderTools::Gradient::ColorInterval*, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair > >::operator in libMAMapKit.a(MAMapKit-armv7-master.o) std::__1::unordered_map<int, MAHeatMapTileProviderTools::Gradient::ColorInterval*, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair > >::operator[](int const&) in libMAMapKit.a(MAMapKit-armv7-master.o) … "___gxx_personality_sj0", referenced from: +[AMapZipArchive unzipFileAtPath:toDestination:] in libAMapFoundationKit.a(AMapFoundationKit-armv7-master.o) … ld: symbol(s) not found for architecture armv7 clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
    qiezi11个月前 (01-14)回复