-
-
Filmage Screen 软件安全风险分析报告
-
发表于: 2023-4-26 09:47 10525
-
软件信息:
运行平台及架构:
MacOS 64-bit x86_64
软件版本:
1.4.2
保护状态:
未保护
开发语言:
ObjectC
包名:
com.filmage.screen.mac
分析目的:
- 明确外挂实现详细原理
- 给出修复对抗详细方案
分析工具和方法:
IDA Pro
静态分析和动态调试
技术亮点:
外挂通过注入模块libConfigure64.dylib实现对FilmageScreen主进程rx可读可执行
的代码段内存修改,其中注入模块经过macho格式篡改,代码段经过加密处理
(运行前解密),静态反编译分析符号信息被隐藏,代码段不可读且隐藏了程
序入口
分析过程:
FilmageScreen 包含两个私有Framework分别为Sparkle和KMDrawViewSDK_Mac
Sparkle的macho格式被篡改静态注入了libConfigurer64.dylib模块
libConfigurer64.dylib通过内存dump后macho格式前后对比如下
还原符号表后通过浏览发现mprotect关键函数,可以猜测出该模块会通过修改内存属性加可写权限后完成目标函数篡改
先按照正常流程分析objc_methodname可以发现load字符串通过交叉引用定位到函数地址
sub_bd27实现如下:明显调用了mprotect修改自身0xf000内存地址开始0x2000长度的属性修改并进行异或解密
交叉引用查看mprotect发现另外三处sub_80ab为篡改Filmage Screen内存函数
app通过post请求地址 https://store.filmagepro.com:3018/api/auth_devices/verify 与服务器验证返回数据如下
主要有三个函数被篡改分别是:[VerificationManager status], [NSDictionary status]和[ASIDownloadCache setStoragePath:]被篡改直接返回
然而即使返回未激活,app同样可以使用4K录制vip功能
移除Sparkle模块的libConfigurer64.dylib依赖后启动app还原为试用版本
修复建议方案: 攻击者明显是对未做保护的Filmage反编译分析,掌握了主要工作流程,通过篡改实现目的。应对手段如下:
1.调整代码逻辑结构;例如新版本大部分逻辑同老版本不一致
2.OC函数符号混淆;防止通过特征字符串定位篡改关键函数
3.Filmage Screen代码保护;防止分析代码逻辑
题外话:发现mac资源的破解站上很多都被注入了libConfigure64.dylib模块,很明显都是同一批次成员所为。
另外有个疑问请教大家,从三方站下载的app二进制篡改后可以直接运行,而从appstore下载的app lipo后直接运行就crash,这个怎么破,
是需要重签名吗,该怎么签呢
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
- Filmage Screen 软件安全风险分析报告 10526
- 2021 KCTF 第五题 华山论剑cc 5375
- fuzzing 函数时, 指针参数的困惑~ 5307
- arm平台二进制文件vmp保护 3693
- crackme一枚 6897