Мое приложение временно хранит много конфиденциальных данных, и я хочу снова перезаписать данные в памяти.
Я нашел пост, ранее предлагавший это:
char* block = malloc(200);
NSString* string = [[NSString alloc] initWithBytesNoCopy:length:encoding:freeWhenDone];
//use string
memset(block, 0, 200);// overwrite block with 0
[string release];
free(block);
но это не работает для меня. Потому что я собираю данные разными способами. Например:
mySensibleString = [anotherString substringWithRange:NSMakeRange(5,15)];
или даже получить его через HTTPS-соединение:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// Append the new data to receivedData.
// receivedData is an instance variable declared elsewhere.
[receivedData appendData:data];
}
Поэтому мне интересно, есть ли способ найти конфиденциальные данные, хранящиеся в объекте в памяти, узнать их длину и перезаписать эту память (неважно, насколько это сложно)?