繁体   English   中英

目标 C class 方法 `(unsigned long long)`

[英]Objective C class method `(unsigned long long)`

我目前正在对一个用于渗透测试的应用程序进行逆向工程。

我遇到了一个名为“hash”的方法名称,但我很难理解这个 function 的类型。

/* @class 搜索请求 */

-(unsigned long long)hash {
    r0 = [self terms];
    r0 = [r0 retain];
    r20 = r0;
    r22 = [r0 hash];
    r0 = [self searchFilters];
    r0 = [r0 retain];
    r23 = r0;
    r22 = [r0 hash] ^ r22;
    r0 = [self categoryFilters];
    r0 = [r0 retain];
    r21 = r22 ^ [r0 hash];
    [r0 release];
    [r23 release];
    [r20 release];
    r0 = r21;
    return r0;
}

我能够拆卸的东西。

看来它调用了方法searchFilters、categoryFilters、terms。

我不确定发布,保留代表什么。 而且我也不太明白-(unsigned long long)hash ,是 unsgined long long 方法类型吗? 全面了解此 function 试图实现的目标或输出的目标将很有帮助。 我几乎没有使用 Objective-C 作为背景的背景。

使用 Frida,我看到这个 function 的返回值通常是 0x0,我假设这意味着nil

保留/释放是编译器插入的调用,用于添加对象的自动引用计数,以知道它们应该何时- [NSObject dealloc] ,最初保留/释放/自动释放是由程序员手动完成的,但我认为不会很少人们不再手动进行。 - [NSObject hash]是所有对象从基础NSObject class 获取的一种方法,它们最终来自它们,默认情况下我认为只使用对象地址,你覆盖它- [NSObject isEqual:]如果你想改变它的意思两个对象相等。 NSSet , NSDictionary这样的对象,使用- [NSObject hash]来加速- [NSObject isEqual:]比较并将它们插入到 hash 表中, - [NSObject hash]的值用于查找 object 和- [NSObject isEqual:]用于进一步区分具有相同- [NSObject hash]值但可能或可能不相等的两个对象,两个对象可能不相等但仍具有相同的 hash 值,但对象不可能相等但具有不同的 hash 值,这将是一个错误,所有被认为相等的对象都应具有相同的 hash 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM