app运行一段时间自动闪退我想继续使用通过hook来解决闪退问题

就是有个app运行一两个月就自动执行闪退需要更新才能继续使用!我想通过hook的方式让app不执行闪退!大佬们请问我这思路能实现吗!怎么写hook exit(0); 代码才能实现这种效果

  • 我觉得可以断点exit函数看看堆栈找到调用exit函数的地方修改逻辑!直接hook exit函数可能达不到你想要的预期效果

看看退出信息

在哪里可以看

用啥工具可以断点

xcode lldb br set -n "exit"

1 个赞

自动执行闪退

如果确定是崩溃,则可以通过崩溃日志找到具体原因,以便于为后续找到具体的hook的入口点提供精确的入口和思路

注:崩溃日志在iPhone-》设置-》隐私-》分析与改进-》分析数据-》会看到很多.ips崩溃日志文件,找到和你app对应的即可(如果有的话)

需要更新才能继续使用

那也可以根据此更新,找到去找hook的入口点。

怎么写hook exit(0);

你直接提到了hook的入口点exit,但是我倒是觉得,你怎么确定,app崩溃,就一定是:调用了exit函数而退出的?
万一不是呢?那岂不是始终无法hook到?所以觉得你应该是:
根据上述建议,找app退出的真正所调用的函数,然后再去hook

具体如何逆向分析,就是体现你的逆向的技术了。没法直接给出答案。只能给出上述思路,供你参考。

具体逆向技术,总体来说,就2类:静态分析动态调试

详见我的教程: iOS逆向开发:静态分析iOS逆向开发:动态调试

用啥工具可以断点

简单说,iOS逆向的动态调试的工具,多数都可以加断点 或 (通过hook对应函数)实现类似加断点的效果

比如:

  • Xcode图形界面
    • Xcode中的lldb命令行
  • (debugserver+)lldb命令行
  • frida
    • frida-trace

等等。

可以看看崩溃日志