machobfuscator混淆器
machobfuscator是一个apple macos平台上与编程语言无关的mach-o二进制符号混淆器。专业术语:
(1).混淆器
一种使软件难以逆向的工具
(2).二进制混淆器
一种混淆器,它在机器代码上运行,而不是在源代码上运行
(3).符号混淆器
一种仅混淆符号名称的混淆器,不会改变程序控制流。
machobfuscator直接转换mach-o文件中的符号。mach-o格式主要用于apple平台,作为可执行文件和库的机器代码容器。machobfuscator不需要访问应用程序源代码以对其进行模糊处理。
machobfuscator混淆器,演示效果 machobfuscator混淆sampleapp.app应用
通过在machoview中打开app的主要可执行文件可以看到结果。machoview显示模糊的objc选择器:
混淆的objc类名:
上面仅显示了样本部分混淆前后的效果。
使用说明 $ ./machobfuscatorusage: ./machobfuscator [-qvdhtd] [-m mangler_key] app_bundle obfuscates application app_bundle in-place.options: -h, --help help screen (this screen) -q, --quiet quiet mode, no output to stdout -v, --verbose verbose mode, output verbose info to stdout -d, --debug debug mode, output more verbose info to stdout --dry-run analyze only, do not save obfuscated files --erase-methtype erase methtype section (objc/runtime.h methods may work incorrectly) -d, --machoview-doom machoviewdoom, machoview crashes after trying to open your binary (doesn't work with caesarmangler) --swift-reflection obfuscate swift reflection sections (typeref and reflstr). may cause problems for swift >= 4.2 --objc-blacklist-selector name[,name...] do not obfuscate given selectors --objc-blacklist-selector-regex regexp do not obfuscate selectors matching given regular expression --preserve-symtab do not erase symtab strings --erase-section segment,section erase given section, for example: __text,__swift5_reflstr --erase-source-file-names prefix erase source file paths from binary. erases paths starting with given prefix by replacing them by constant string --replace-cstring string replace arbitrary __cstring with given replacement (use with caution). matches entire string, --replace-cstring-with string adds padding 0's if needed. these options must be used as a pair. --skip-all-frameworks do not obfuscate frameworks --skip-framework framework do not obfuscate given framework --obfuscate-framework framework obfuscate given framework (whitelist for --skip-all-frameworks) -m mangler_key, --mangler mangler_key select mangler to generate obfuscated symbolsdevelopment options: --xx-no-analyze-dependencies do not analyze dependenciesavailable manglers by mangler_key: caesar - rot13 all objc symbols and dyld info realwords - replace objc symbols with random words (dyld info obfuscation supported)
machobfuscator混淆 (1).查找应用包中的所有可执行文件,
(2).以递归方式搜索所有依赖库,这些库的依赖关系等等,
(3).搜索应用包中的所有nib文件,
(4).区分可模糊文件(应用程序包中的文件)和不可模糊文件(应用程序包外部的文件)
(5).从整个依赖图中收集obj-c符号,导出尝试和导入列表,
(6).创建符号白名单和符号黑名单(在不可混淆的文件中使用的符号),
(7).使用选定的漫游器修改白名单符号,导出尝试和导入列表,
(8).替换可混淆文件中的符号,
(9).清除可选的部分,
(10).一次保存所有文件。
https://github.com/nigel193/ios-developer-toolshttps://github.com/kam800/machobfuscatorhttps://github.com/zayki/machobfuscator
兽药残留快速检测仪的主要参数
车电分离模式可以一定程度上解决充电和续航痛点
Pixelworks TrueCut平台荣获2019娱乐技术卢米埃尔奖
2018年生物特征识别技术大会上,Herta表现优异进入最高分数行列
城市内涝积水实时监测系统方案
MacOS/iOS Mach-O应用程序代码混淆
蓝光播放器中应用的触摸芯片
燃料电池领域新动态的简单解析
齿轮减速机正常温度多少
什么是“密码散列”?如何正确使用PassGan?
意法半导体做了什么让物联网变得更简单
物联网世界中我们该怎样保护自己的隐私
如何营造合适的光环境 LED调光有什么奥秘
特斯拉连续第六个季度实现盈利,意味着公司走出亏损泥潭
中国工业机器人销量首次下滑 未来增长空间在哪里?
OPPO新机型产品专利图曝光,摄像采用头侧面弹出方式设计
接线端子的故障与什么有关系呢?
长安CS55蓝动版配置升级,实力不输竞品车型
对话王坚:为什么只有YunOS才能给智能手机产业带来实质性改变?
iPhone 8或将提供千兆LTE速度