iOS 逆向获取手机硬件参数
一、获取手机相关的参数
#import <AdSupport/AdSupport.h>#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h> NSString *idfa = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];NSString *idfaStr = [NSString stringWithFormat:@"%@:%@\n",@"IDFA", idfa];NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];NSString *idfvStr = [NSString stringWithFormat:@"%@:%@\n",@"IDFV", idfv];NSString *iPhoneName = [UIDevice currentDevice].name;NSString *iPhoneNameStr = [NSString stringWithFormat:@"%@:%@\n",@"设备名称", iPhoneName];NSString *appVerion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];NSString *appVerionStr = [NSString stringWithFormat:@"%@:%@\n",@"版本号", appVerion];NSString *localizedModel = [UIDevice currentDevice].localizedModel;NSString *localizedModelStr = [NSString stringWithFormat:@"%@:%@\n",@"Model", localizedModel];NSString *systemName = [UIDevice currentDevice].systemName;NSString *systemNameStr = [NSString stringWithFormat:@"%@:%@\n",@"systemName", systemName];NSString *systemVersion = [UIDevice currentDevice].systemVersion;NSString *systemVersionStr = [NSString stringWithFormat:@"%@:%@\n",@"systemVersion", systemVersion];NSString *deviceName = [NSString stringWithFormat:@"%@:%@\n",@"deviceName", [AppInfo getDeviceName]];CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; CTCarrier *carrier = [info subscriberCellularProvider]; NSString *mCarrier = [NSString stringWithFormat:@"%@",[carrier carrierName]];NSString *mCarrierStr = [NSString stringWithFormat:@"%@:%@\n",@"运营商", mCarrier];NSString *macAddress = [NSString stringWithFormat:@"%@:%@\n",@"macAddress", [AppInfo getCurrentLocalIP]];NSString *wifiName = [NSString stringWithFormat:@"%@:%@\n",@"wifiName", [AppInfo getCurreWiFiName]];NSString *bssid = [NSString stringWithFormat:@"%@:%@\n",@"BSSID", [AppInfo getCurreBSSID]];NSString* identifierNumber = [[UIDevice currentDevice].identifierForVendor UUIDString] ;NSString *identifierNumberStr = [NSString stringWithFormat:@"%@:%@\n",@"手机序列号", identifierNumber];
二、获取手机相关的IP地址
#import "sys/utsname.h"
#import <ifaddrs.h>
#import <arpa/inet.h>
#import <SystemConfiguration/CaptiveNetwork.h>/ 获取设备型号然后手动转化为对应名称
+ (NSString *)getDeviceName
{struct utsname systemInfo;uname(&systemInfo);NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4";if ([deviceString isEqualToString:@"iPhone3,2"]) return @"iPhone 4";if ([deviceString isEqualToString:@"iPhone3,3"]) return @"iPhone 4";if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";if ([deviceString isEqualToString:@"iPhone5,1"]) return @"iPhone 5";if ([deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)";if ([deviceString isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)";if ([deviceString isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)";if ([deviceString isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)";if ([deviceString isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)";if ([deviceString isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";if ([deviceString isEqualToString:@"iPhone7,2"]) return @"iPhone 6";if ([deviceString isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";if ([deviceString isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";if ([deviceString isEqualToString:@"iPhone8,4"]) return @"iPhone SE";// 日行两款手机型号均为日本独占,可能使用索尼FeliCa支付方案而不是苹果支付if ([deviceString isEqualToString:@"iPhone9,1"]) return @"国行、日版、港行iPhone 7";if ([deviceString isEqualToString:@"iPhone9,2"]) return @"港行、国行iPhone 7 Plus";if ([deviceString isEqualToString:@"iPhone9,3"]) return @"美版、台版iPhone 7";if ([deviceString isEqualToString:@"iPhone9,4"]) return @"美版、台版iPhone 7 Plus";if ([deviceString isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";if ([deviceString isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";if ([deviceString isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";if ([deviceString isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";if ([deviceString isEqualToString:@"iPod5,1"]) return @"iPod Touch (5 Gen)";if ([deviceString isEqualToString:@"iPad1,1"]) return @"iPad";if ([deviceString isEqualToString:@"iPad1,2"]) return @"iPad 3G";if ([deviceString isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)";if ([deviceString isEqualToString:@"iPad2,2"]) return @"iPad 2";if ([deviceString isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";if ([deviceString isEqualToString:@"iPad2,4"]) return @"iPad 2";if ([deviceString isEqualToString:@"iPad2,5"]) return @"iPad Mini (WiFi)";if ([deviceString isEqualToString:@"iPad2,6"]) return @"iPad Mini";if ([deviceString isEqualToString:@"iPad2,7"]) return @"iPad Mini (GSM+CDMA)";if ([deviceString isEqualToString:@"iPad3,1"]) return @"iPad 3 (WiFi)";if ([deviceString isEqualToString:@"iPad3,2"]) return @"iPad 3 (GSM+CDMA)";if ([deviceString isEqualToString:@"iPad3,3"]) return @"iPad 3";if ([deviceString isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)";if ([deviceString isEqualToString:@"iPad3,5"]) return @"iPad 4";if ([deviceString isEqualToString:@"iPad3,6"]) return @"iPad 4 (GSM+CDMA)";if ([deviceString isEqualToString:@"iPad4,1"]) return @"iPad Air (WiFi)";if ([deviceString isEqualToString:@"iPad4,2"]) return @"iPad Air (Cellular)";if ([deviceString isEqualToString:@"iPad4,4"]) return @"iPad Mini 2 (WiFi)";if ([deviceString isEqualToString:@"iPad4,5"]) return @"iPad Mini 2 (Cellular)";if ([deviceString isEqualToString:@"iPad4,6"]) return @"iPad Mini 2";if ([deviceString isEqualToString:@"iPad4,7"]) return @"iPad Mini 3";if ([deviceString isEqualToString:@"iPad4,8"]) return @"iPad Mini 3";if ([deviceString isEqualToString:@"iPad4,9"]) return @"iPad Mini 3";if ([deviceString isEqualToString:@"iPad5,1"]) return @"iPad Mini 4 (WiFi)";if ([deviceString isEqualToString:@"iPad5,2"]) return @"iPad Mini 4 (LTE)";if ([deviceString isEqualToString:@"iPad5,3"]) return @"iPad Air 2";if ([deviceString isEqualToString:@"iPad5,4"]) return @"iPad Air 2";if ([deviceString isEqualToString:@"iPad6,3"]) return @"iPad Pro 9.7";if ([deviceString isEqualToString:@"iPad6,4"]) return @"iPad Pro 9.7";if ([deviceString isEqualToString:@"iPad6,7"]) return @"iPad Pro 12.9";if ([deviceString isEqualToString:@"iPad6,8"]) return @"iPad Pro 12.9";if ([deviceString isEqualToString:@"AppleTV2,1"]) return @"Apple TV 2";if ([deviceString isEqualToString:@"AppleTV3,1"]) return @"Apple TV 3";if ([deviceString isEqualToString:@"AppleTV3,2"]) return @"Apple TV 3";if ([deviceString isEqualToString:@"AppleTV5,3"]) return @"Apple TV 4";if ([deviceString isEqualToString:@"i386"]) return @"Simulator";if ([deviceString isEqualToString:@"x86_64"]) return @"Simulator";return deviceString;
}+ (NSString*)getCurrentLocalIP
{NSString *address = nil;struct ifaddrs *interfaces = NULL;struct ifaddrs *temp_addr = NULL;int success = 0;// retrieve the current interfaces - returns 0 on successsuccess = getifaddrs(&interfaces);if (success == 0) {// Loop through linked list of interfacestemp_addr = interfaces;while(temp_addr != NULL) {if(temp_addr->ifa_addr->sa_family == AF_INET) {// Check if interface is en0 which is the wifi connection on the iPhoneif([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {// Get NSString from C Stringaddress = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];}}temp_addr = temp_addr->ifa_next;}}// Free memoryfreeifaddrs(interfaces);return address;
}+ (NSString *)getCurreWiFiName {NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces());NSLog(@"Supported interfaces: %@", ifs);id info = nil;for (NSString *ifnam in ifs) {info = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam));NSLog(@"%@ => %@", ifnam, info);if (info && [info count]) { break; }}return [(NSDictionary*)info objectForKey:@"SSID"];
}+ (NSString *)getCurreBSSID {NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces());NSLog(@"Supported interfaces: %@", ifs);id info = nil;for (NSString *ifnam in ifs) {info = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam));NSLog(@"%@ => %@", ifnam, info);if (info && [info count]) { break; }}return [(NSDictionary*)info objectForKey:@"BSSID"];
}
iOS 逆向获取手机硬件参数相关推荐
- ios逆向越狱手机必备工具篇
1.手机越狱 ps:越狱前用xcode调试手机断点一次.这样手机里就会生成以后debugServer文件. 手机版本ios12.4 https://www.abcydia.com/read-16031 ...
- iOS之获取手机的系统信息
iOS的APP应用开发过程中,为了bug跟踪或者获取用户反馈,需要自动收集用户设备.系统信息.应用信息等.当然这些信息是用户的非隐私信息,是通过开发api可以获取到的.那么通过哪些api可以获取这些信 ...
- Android开发——跳转到应用商店以及app详情页、获取手机硬件信息、验证app是否存在
普通跳转 Tip:该跳转可适配普通的跳转,比如跳转豌豆荚 //appPkg是你要跳转的包名//marketPkg是你使用的应用商店,如果传空,则会把你手机上的应用商店全部列出来try {if (Tex ...
- 【爬虫】获取手机详细参数爬虫脚本详细解析
起始初衷 朋友工作需要手机的性能详细列表,本来以为网络上应该已经有很多相关的文件可以直接下载了,但是依旧没有找到比较满意的.这时候正好被推荐了PCOnline上的手机详细参数,突发奇想闲着没事用Pyt ...
- ios开发-获取手机相关信息
今天在做客户端的时候,里面有个意见反馈功能. 调用系统带的邮件功能,发送邮件到指定邮箱. 然后我就想,应该在邮件正文部分添加手机相关内容,比如型号,版本,应用程序的版本等等,这样不仅使用者方便,开发者 ...
- iOS 如何获取手机型号、系统版本、电池电量
1.手机型号:iPhone 6 NSString* phoneModel = [self iphoneType]; //方法在下面 2.手机系统版本:9.1 NSString* phoneVersio ...
- Android 获取手机硬件信息
/*** 获取当前手机系统语言.** @return 返回当前系统语言.例如:当前设置的是"中文-中国",则返回"zh-CN"*/public static S ...
- 手机的CPU架构简述及SO兼容(Android/iOS)及手机硬件等,手机IMEI
CPU(计算)+RAM(内存)+ROM(内置存储卡)+ GPU(图像处理等)等参数. 手机芯片制造商高通:英特尔Intel芯片,服务器芯片. > CPU类型与SO文件 -- 手机的CPU,多 ...
- 测试手机硬件参数软件b站,OnePlus 7T评测:什么是硬件优秀,软件有料,它就是...
氢OS 10系统:跟进安卓大版本,自由度高 软件方面,一加7T搭载基于Android 10的氢OS 10.0系统,关于氢OS10相信很多一加用户在谷歌发布Android10的那一刻开始就已经在一加社区 ...
最新文章
- matlab光滑曲线连接散点图
- 为什么一些机器学习模型需要对数据进行归一化?——1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度...
- 如何阅读苹果开发文档
- Python数据类型方法总结
- [ JavaScript ] 数据结构与算法 —— 链表
- 幸福秘诀 男女必须要看哦
- c++ sendmessage 鼠标 坐标是相对自身吗_【科普】你真的足够了解五轴加工吗?看完豁然开朗!...
- php 规则配置,模块Config配置规则
- loadedapk.java_android,_java.lang.ClassCastException: android.os.BinderProxy,android - phpStudy
- Java如何隐藏控制按键动画_Java动画短片当不移动鼠标光标时
- 安装CUDA时出现黑屏的现象解决办法
- 基于pytorch实现线性回归
- 建行u盾弹不出来_建设银行网银盾检测不到怎么解决
- m基于迫零ZF准则的通信均衡器的matlab仿真
- 华为充电的效果_华为充电特效主题插件下载-华为炫酷充电特效插件1.0.1安卓版-精品下载...
- INTEL CPU 内核漏洞问题该如何处理?
- 查询和01号的同学学习的课程完全相同的其他同学的信息的优化
- 当远程工作成为未来的工作方式......
- BZOJ1022: [SHOI2008]小约翰的游戏John
- 剪辑视频怎么赚钱怎么做?一个人0资金怎么创业?