百人牛牛棋牌

您好,迎接脱离[百人牛牛棋牌-牛牛娱乐棋牌赢现金]浏览室  笑话大全  编程问答  问答大全  移夷易近之家  文娱之家  范文之家  源码下载  电子书籍  软件下载  专题
ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
以后职位:百人牛牛棋牌 >> 群集编程 >> IOS开发 >> iOS 若何取得 Mach-O 的 UUID

iOS 若何取得 Mach-O 的 UUID(1/3)

泉源:群集整理     时间:2018-11-01     要害词:

百人牛牛棋牌 本篇文章主要简介了" iOS 若何取得 Mach-O 的 UUID",主要触及到方面的内容,关于IOS开发感兴趣的同砚可以参考一下: LC_UUID 浅易简称为 UUID,是用来标示 Mach-O 文件的,做过瓦解客栈符号化回复的同砚应当都知道有 UUID 这个器械,你在阻拦符号剖析的时间,就...

LC_UUID 浅易简称为 UUID,是用来标示 Mach-O 文件的,做过瓦解客栈符号化回复的同砚应当都知道有 UUID 这个器械,你在阻拦符号剖析的时间,就须要找到与系统库和你 APP 的 UUID 类似的 dSYM 文件来阻拦客栈地址回复。

取得 dSYM 文件的 UUID 较量质朴,随便用一个工具便可以检查 UUID,那么若何取得 APP 及其静态库的 UUID 呢?


$ xcrun dwarfdump --uuid 
UUID: E73A4300-F6E5-3124-98DF-1578B8D4F96A (armv7) GYMonitorExample.app.dSYM/Contents/Resources/DWARF/GYMonitorExample
UUID: 44E27054-508E-37EF-9296-44400C5F19E1 (arm64) GYMonitorExample.app.dSYM/Contents/Resources/DWARF/GYMonitorExample

取得 APP 的 UUID

百人牛牛棋牌现在想只取得 APP 的 dSYM 文件的 UUID 和客栈发生时对应装备的 APP UUID,以是直接 Google 一搜就有谜底:https://stackoverflow.com/questions/10119700/how-to-get-mach-o-uuid-of-a-running-process


#import 
NSString *executableUUID()
{
    const uint8_t *command = (const uint8_t *)(&_mh_execute_header + 1);
    for (uint32_t idx = 0; idx < _mh_execute_header.ncmds; ++idx) {
        if (((const struct load_command *)command)->cmd == LC_UUID) {
            command += sizeof(struct load_command);
            return [NSString stringWithFormat:@"XXXX-XX-XX-XX-XXXXXX",
                    command[0], command[1], command[2], command[3],
                    command[4], command[5],
                    command[6], command[7],
                    command[8], command[9],
                    command[10], command[11], command[12], command[13], command[14], command[15]];
        } else {
            command += ((const struct load_command *)command)->cmdsize;
        }
    }
    return nil;
}

把上述措施放在 AppDelegate 中阻拦测试,测试效果完全准确,喜出望外。上述代码的或许意思是取得 MH_EXECUTE (可推行的主 image )文件的 Load Command,而且应用 For 循环遍历所有的 Load Command,找到类型为 LC_UUID 的 Load Command,进而取得 UUID。

在 Pod 中取得 APP 的 UUID

由于瓦解搜集是在一个自力的库中阻拦的,在瓦解时想要搜集 UUID 的话也应当在以后库中取得 UUID,由于 Pod 应用了 use_frameworks ,以是效果就酿成了怎样在一个静态库中取得 APP 的 UUID,静态库会把代码复制到主 APP 中,而静态库是一个自力的 Mach-O 文件。把下面代码直接丢在 Pod 中应用是行不通的,由于 _mh_execute_header 在 MH_DYLIB 中没法应用。

相关图片

相关文章

鑫乐棋牌-鑫乐棋牌游戏-鑫乐棋牌乐游网 JDB老虎机-jdb老虎机游戏 AQP捕鱼-金蟾捕鱼-千炮捕鱼下现金手游 通比牛牛棋牌-牛牛棋牌真人提现 AG捕鱼王-捕鱼王3D网页版-红包捕鱼游戏手游 亲朋棋牌-亲朋棋牌游戏-亲朋棋牌手游版 网上手游-网上手游棋牌-网上手游app注册 彩票幸运飞艇-幸运飞艇计划网页版 分分快三计划软件-分分快三计划网页版 二八杠棋牌-二八杠真人棋牌-二八杠棋牌游戏