在写一个ios app游戏的插件时候出现的卡死问题

想修改一个游戏,随机写了一个插件,但是插件被加载后,游戏直接卡死在LOGO界面,并且重启,继续卡死 无限循环.

随即测试写了一个空的dylib 重新启动游戏,还是这个问题,用mach-0 view工具查看 是否有__RESTRICT/__restrict,发现并没有 ,随即IDA 查看可执行文件,发现被加密, 解密后 查找了一些东西有没有找到原因,请问发生这种情况通常是什么原因?
有知道的吗???

我猜想是不是枚举了 进程加载的dylib ? 如果有多的话程序就卡死?
还是其他思路?

发现几个可以的函数 一个是关于检测是否被附加, 我是光写的插件还没有GDB 附加进去
if ( sysctl(&v7, 4u, &v5, &v4, 0, 0) )
{
CLSSafeLogToStderr(“sysctl failed while trying to get kinfo_proc\n”, v0, v1, v2);
result = 0;
}
else
{
result = (BYTE1(v6) & 8u) >> 3;
}
第二个可疑的是一个函数

 char __cdecl +[FlurryUtil appIsCracked](struct FlurryUtil_meta *self, SEL a2)
{
  int v2; // r0@1
  int v3; // r4@1
  int v4; // r6@1
  int v5; // r0@3
  int v6; // r0@3
  int v7; // r5@3

  v2 = objc_msgSend_island(&OBJC_CLASS___NSMutableString, "alloc");
  v3 = objc_msgSend_island((void *)v2, "initWithCapacity:", 14);
  v4 = 0;
  do
    objc_msgSend_island(
      (void *)v3,
      "appendFormat:",
      CFSTR("%C"),
      (unsigned __int16)(+[FlurryUtil appIsCracked].letters[v4++] + 9918));
  while ( v4 != 14 );
  v5 = objc_msgSend_island(&OBJC_CLASS___NSBundle, "mainBundle");
  v6 = objc_msgSend_island((void *)v5, "infoDictionary");
  v7 = objc_msgSend_island((void *)v6, "objectForKey:", v3);
  objc_msgSend_island((void *)v3, "release");
  if ( v7 )
    LOBYTE(v7) = 1;
  return v7;
}

从这个名字来看,很有可能是做了防护。你可以试试用LLDB直接启动,然后从最一开始调试,看看有没有什么线索