请教如何hook枚举器

以下代码,可以列出指定目录下的文件:

NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:@"/xxx/"];
NSString *filename;
while ((filename = [direnum nextObject] )) {
    NSLog(@"%@", filename);
}

现在想通过hook隐藏特定的文件,试过对NSEnumerator的nextObject方法进行hook,发现没有效果,求高手指点怎么写这个hook

我的建议是从更底层的地方入手: )

请教LS,更底层的地方是指?

没记错的话这玩意儿实际调用的是[NSFileManager contentsOfDirectoryAtPath:error:] 在这里hook把对应的记录从nsarray里删掉就可以啦

大把纯c的api怎么办呢。看NSFileManager底层是用的哪些c api。

我试了不行。contentsOfDirectoryAtPath这个函数我hook了,然后也生效了,但是并没有影响到enumeratorAtPath。还有LS说的hook底层api,fopen我也hook了也生效了,但是也没有影响到enumeratorAtPath。