[英]unsigned long , unsigned char in Objective C to Swift
[英]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.