分析 IDA
1)
TelephonyUtilities
NSURL-Telephony.h
var url = [NSURL telephonyURLWithDestinationID:@“10010”,-1,0,1,0] URLBySettingQueryParameterValue:@“dialer” forKey:@“TelURLOriginatingUIKey”];
#“tel:10010?TelURLOriginatingUIKey=dialer”
UIKit 模块
/System/Library/Frameworks/UIKit.framework/UIKit
cache 中 直接拖入 cache
[UIApplication sharedApplication] openURL:url]
找到
UIApplication openURL:url
找到关键函数
LSApplicationWorkspace openURL:
/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 这个模块上
但是 这个arm64 二进制文件 拖入IDA 后 没有多少符号了? 这个已经是 cache 直接拖入IDA 后的解析了 不能再精确了?
用LLDB 慢慢找 因为有些函数存在 那么
- (id)operationToOpenResource:(id)arg1 usingApplication:(id)arg2 userInfo:(id)arg3;
- (id)operationToOpenResource:(id)arg1 usingApplication:(id)arg2 uniqueDocumentIdentifier:(id)arg3 userInfo:(id)arg4;
- (id)operationToOpenResource:(id)arg1 usingApplication:(id)arg2 uniqueDocumentIdentifier:(id)arg3 userInfo:(id)arg4 delegate:(id)arg5; 这个是1)
- (id)operationToOpenResource:(id)arg1 usingApplication:(id)arg2 uniqueDocumentIdentifier:(id)arg3 sourceIsManaged:(BOOL)arg4 userInfo:(id)arg5 delegate:(id)arg6;
- (BOOL)openSensitiveURL:(id)arg1 withOptions:(id)arg2;
- (BOOL)openURL:(id)arg1;
- (BOOL)openURL:(id)arg1 withOptions:(id)arg2;
- (BOOL)openApplicationWithBundleID:(id)arg1; 这个是2)
这个之间的函数都试试
找到了函数
这个函数退出后 5s 手机就进入打电话状态了 但是这里的函数全是 无符号型的
然后又层层深入
最后深入到了 libsystem_kernel.dylib`mach_msg
这个明显是消息机制的应用了 就更不能深入了
虽然 我已经知道了 怎么调用打电话,但是完全看不到哪里调用的 电话窗口显示等等
而且分析的结果都不一样了
问题
1)我测试 CTCallDialWithID(@“10010”,-1) 也能成功打电话 就是不知道怎么探测到这个函数的~~~而且连分析结果都不一样
我的结果是
var url = [NSURL telephonyURLWithDestinationID:@“10010”,-1,0,1,0] URLBySettingQueryParameterValue:@“dialer” forKey:@“TelURLOriginatingUIKey”];
[UIApplication sharedApplication] openURL:url]
CTCallDialWithID(@“10010”,-1) 这个是书上分析出来的
层层分析都没有得到 CTCallDialWithID
2)我得arm64 没有直接的函数调用 而是转而发送消息机制调用函数
这类型的 分析怎么进行?
3) 是不是可以直接分析 armv7 然后里面的函数在 arm64 里都有,只是arm64 不一样的调用方法