gpt4 book ai didi

objective-c - 启用 ARC 的模糊内存错误

转载 作者:行者123 更新时间:2023-12-02 05:31:12 27 4
gpt4 key购买 nike

我正在创建一个 Objective-C 库以通过 USB 与一些外部设备通信。当调用某个方法时,它在方法内部或某些 C 系统函数(与 malloc 或 pthread 相关)内部的随机位置崩溃,并出现以下错误之一“释放对象的校验和无效”、“自动释放池页面 0x1102032 已损坏”、甚至是未知的选择器错误(而选择器确实存在)。

使用 Guard Malloc 功能,它在出现 EXEC_BAD_ACCESS 错误的这一行停止:

- (void)theMethod {

// some code

NSMutableData *payloads_pool = [NSMutableData dataWithLength:0x800];
NSUInteger payloads_pool_length = [payloads_pool length];

void *buffer = [payloads_pool mutableBytes];

memset(buffer, 0xCC, payloads_pool_length);

for (i = 0; i < 0x800; i += 0x40) {

unsigned int *buf = [payloads_pool mutableBytes];

(buf+i)[0] = 0x405; <==== STOP ON THIS LINE
(buf+i)[1] = 0x101;
(buf+i)[2] = 0x8402B001;
(buf+i)[3] = 0x8402EB01;
}

// some code
}

最佳答案

既然bufunsigned int*,那么buf+i中的指针+是不是加上unsigned整数而不是字节,因此在内存中寻找太远?

关于objective-c - 启用 ARC 的模糊内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com