首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >挂钩NSFileManager::fileExistsAtPath (越狱调整学习)

挂钩NSFileManager::fileExistsAtPath (越狱调整学习)
EN

Stack Overflow用户
提问于 2015-04-08 18:26:49
回答 1查看 878关注 0票数 0

我正在(尝试)学习开发越狱调整。目标是在应用程序中摆脱越狱保护(拒绝与越狱一起工作)。

我已经对应用程序进行了反编译,并将以下代码标识为“越狱检查”:

代码语言:javascript
运行
复制
  v24 = objc_msgSend(&OBJC_CLASS___NSMutableDictionary, "new");
  v0 = "defaultManager";
  v1 = objc_msgSend(&OBJC_CLASS___NSFileManager, "defaultManager");
  v2 = objc_retainAutoreleasedReturnValue(v1);
  v3 = (void *)v2;
  v23 = v2;
  v4 = (int)"stringWithFormat:";
  v5 = objc_msgSend(
         &OBJC_CLASS___NSString,
         "stringWithFormat:",
         CFSTR("/%@%@%@%@%@%@%@"),
         CFSTR("App"),
         CFSTR("lic"),
         CFSTR("ati"),
         CFSTR("ons/"),
         CFSTR("Cyd"),
         CFSTR("ia."),
         CFSTR("app"));
  v6 = objc_retainAutoreleasedReturnValue(v5);
  v7 = v6;
  v8 = objc_msgSend(v3, "fileExistsAtPath:", v6);
  if ( (unsigned __int8)v8 )
  {
    v9 = 1;
    v10 = 0;
    v21 = v8;
    v11 = 0;
    v22 = (void *)v8;
  }

应用程序检查/Applications/Cydia.app是否存在

下面是Tweak.xm的代码:

代码语言:javascript
运行
复制
%hook NSFileManager

- (BOOL)fileExistsAtPath:(NSString *)path{
    if ([path rangeOfString:@"cydia"].location == NSNotFound) {
        return %orig (path);
    } else {
        %log
        return FALSE;
    }
}

%end

尽管我可以从syslog中看到正在检查其他文件,但我没有看到我们正在检查/Applications/Cydia.app。这是不是我的代码有问题,或者仅仅是因为其他原因,这段代码从来没有执行过?

EN

回答 1

Stack Overflow用户

发布于 2019-05-03 20:59:13

您只需更改“越狱检查”方法即可什么也不做。

代码语言:javascript
运行
复制
%hook ClassName
- (void)jailbreakCheck {
}
%end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29512104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档