需求:
我现在想实现hook 运营商相关对 MNC,MCC,运营商名称,ISO国家码
目前实现对代码能hook住CTTelephonyNetworkInfo这个类中的这个方法subscriberCellularProvider
但是我现在不知道 如何hook 这方法中的属性实现
目前测试App 代码如下
- (NSString )MCC{
CTTelephonyNetworkInfonetInfo = [[CTTelephonyNetworkInfo alloc]init];
CTCarrier*carrier = [netInfo subscriberCellularProvider];
NSLog(@"carrier %@",carrier);
NSString *mcc = [carrier mobileCountryCode];
NSLog(@"MCC %@",mcc);
return @"";
}
运行日志如下:
carrier CTCarrier (0x282574900) {
**Carrier name: [Carrier]**
**Mobile Country Code: [<nil>]**
**Mobile Network Code:[<nil>]**
**ISO Country Code:[<nil>]**
**Allows VOIP? [YES]**
**}**
tweak.x 代码如下
#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <NetworkExtension/NetworkExtension.h>
%hook CTTelephonyNetworkInfo
-(CTCarrier *)subscriberCellularProvider{
NSLog(@"HOOK-subscriberCellularProvider");
CTCarrier *carrier =%orig;
NSLog(@"carriercarriercarriercarrier %@",carrier);
return %orig;
}
%end
hook 运行日志如下
carriercarriercarriercarrier CTCarrier (0x282567f30) {
**Carrier name: [Carrier]**
**Mobile Country Code: [<nil>]**
**Mobile Network Code:[<nil>]**
**ISO Country Code:[<nil>]**
**Allows VOIP? [YES]**
**}**