清除我的马克 叉 4.11.5 简单优化
清除我的马克 叉 4.11.5 简单优化
首先声明
首先我是良民,国内代·里·商别在这理发店。
文章来自国外大佬QiuChenly的分享,我反正不认识这个人。
文章仅供技术研究交流,不得用于非法牟利并谢绝任何形式的传播。可能造成的一切法律责任由使用者、传播者承担,文章仅用于技术研究交流,其他一切责任作者概不负责。
没有图是否不够精彩,所以我选择先来个大的。
973E6C508E6C7B6C69F5ADC9ADD551FD.jpg
有一说一不吹不黑纯路人
- 准备IDA Pro 7
- Hopper Disassmbler Demo 版本即可。
HD用来可视化伪代码,IDA的伪代码有误导。如果IDA中的伪代码令人困惑,可以使用HD查看后在IDA中修改。 - 这可能是一片废话不多但是细节也不多的分析,被起诉太可怕了。
- 仅用于技术研究交流不得进行牟利或任何形式的传播!!!!
破解主程序
找到.app/MacOS中CleanMyMac-X二进制文件载入IDA,搜索isAppActivated,找到此函数。
__text:0000000100033339 __CMMacPawAccountActivationManager_isAppActivated_ proc near__text:0000000100033339 ; DATA XREF: __objc_const:0000000100627320↓o__text:0000000100033339__text:0000000100033339 var_8 = byte ptr -8__text:0000000100033339__text:0000000100033339 push rbp__text:000000010003333A mov rbp, rsp__text:000000010003333D sub rsp, 10h__text:0000000100033341 lea rdi, [rbp+var_8]__text:0000000100033345 mov qword ptr [rdi], 0FFFFFFFFFFFFFF9Ch__text:000000010003334C call sub_100373380__text:0000000100033351 test al, al__text:0000000100033353 jnz short loc_100033368__text:0000000100033355 mov edi, 1__text:000000010003335A xor esi, esi__text:000000010003335C call sub_100013463__text:0000000100033361 cmp rax, 9__text:0000000100033365 setz al
sub_100373380函数只要返回true就会认为激活撑过,所以可以patch掉此函数
__text:0000000100373380 sub_100373380 proc near ; CODE XREF: sub_10001FDCA+28↑p__text:0000000100373380 ; +[CMLinkBuilder standardURLTrackingParametersDictionary]+21F↑p ...__text:0000000100373380 push 1__text:0000000100373382 pop rax__text:0000000100373383 retn__text:0000000100373383 sub_100373380 endp
patch后需要重新签名二进制文件
codesign -f -s - --timestamp=none /Applications/CleanMyMac\ X.app/Contents/MacOS/CleanMyMac-X
状态栏组件
打开CleanMyMac-X Menu.app中的MacOS文件夹,IDA载入CleanMyMac-X Menu。
搜索isMainAppActivated找到函数 发现是调用了CMMFoundation.framework,遂打开。
CleanMyMac\ X.app/Contents/Library/LoginItems/CleanMyMac-X\ Menu.app/Contents/Frameworks/CMMFoundation.framework