美文网首页
判断app是什么架构

判断app是什么架构

作者: i诺离 | 来源:发表于2020-02-17 15:41 被阅读0次

读取app可执行文件的前四个字节,来判断(这四个字节存放在可执行文件中的头部文件)
根据内核源码查看mach-o文件可发现,不同文件的前四个字节,有自己的宏定义代表

// FAT文件
FAT_CIGAM
FAT_MAGIC
//非64bit架构文件
MH_CIGAM
MH_MAGIC
//64bit架构文件
MH_CIGAM_64
MH_MAGIC_64

代码实现:

NSString *apppath = ".../xxx.app/xxx"
// 使用这个读取文件,可部分读取文件字节,减少内存的占用
NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath: apppath];
int length = sizeof(uint32_t);
// 读取最前面的4个字节(magic number, 魔数,用来表示文件类型)
NSData *magicData = [handle readDataOfLength: length];
// 魔数, 用来标识文件类型
uint32_t magicNumber;
[magicData getBytes: &magicNumer length: length];

if (magicNumner == FAT_CIGAM || magicNumner == FAT_MAGIC) {
    printf(" FAT文件\n");
}else if (magicNumner == MH_CIGAM || magicNumner == MH_MAGIC) {
    printf(" 非64bit架构文件\n");
}else if (magicNumner == MH_CIGAM_64 || magicNumner == MH_MAGIC_64) {
    printf("64bit架构文件\n");
}else {
    printf("读取失败 - 0x%x", magicNumber);
}

[handle closeFile];

相关文章

  • 判断app是什么架构

    读取app可执行文件的前四个字节,来判断(这四个字节存放在可执行文件中的头部文件)根据内核源码查看mach-o文件...

  • 架构

    android app架构 android app架构 应用架构指南-官方 Data Binding

  • App架构设计

    App架构设计经验谈:技术选型 App架构设计经验谈:接口的设计 App架构设计经验谈:数据层的设计 App架构设...

  • Android APP首次/首次今日启动判断

    1.APP首次启动判断 2.APP今日启动判断 上菜:

  • keeganlee 谈 App 架构设计

    目录: App架构设计经验谈:接口的设计 App架构设计经验谈:技术选型 App架构设计经验谈:数据层的设计 Ap...

  • APP消息推送功能之前端后台设计

    APP消息推送功能之前端后台设计 最近有不少小伙伴问APP消息推送功能,前端、后台如何设计的?消息系统的架构是什么...

  • Android:一个完整app开发流程

    一.给出功能文档 二.APP架构选择 可选MVP,MVVM 三.APP目录结构设置 本app基于mvp架构。除了m...

  • 架构之路

    1. 架构之路 (一) —— iOS原生系统架构(一)2. 架构之路 (二) —— APP架构分析(一)3. 架构...

  • App 架构

    https://xiaozhuanlan.com/app-architecture/8072591634

  • APP架构

网友评论

      本文标题:判断app是什么架构

      本文链接:https://www.haomeiwen.com/subject/bqwbfhtx.html