萌新求助退出APP的所有方式

背景:现在手头正在逆向一个APP,砸壳重签名都成功了。但是砸壳后的APP,打开后会触发某种反逆向保护,导致APP自动退出。因为是萌新,刚开始逆向的学习,所以论坛里的反反逆向方法暂时没搞懂,没法挨个尝试。但有个想法,即不反反逆向,而是通过hook退出代码的方式,阻止APP的退出。

目前APP退出时没有崩溃报告,且系统日志如下:

Application 'XXXX.TestAPP[0x322f]' exited voluntarily.

已经尝试hook过的退出方法,有下面几种:

  • exit()
  • [NSThread exit]
  • [UIApplication _terminateWithStatus:]
  • [UIApplication terminateWithSuccess]

这几种方式,都能退出app,而且既没有崩溃日志的生成,又系统日志显示exited voluntarily。但却都不成功,hook后app依然自动退出。

所以求助各位大神,还有什么可以让APP退出的方式。满足既不生成崩溃日志,又系统日志显示exited voluntarily这两个条件。

自己找到一种符合条件的退出方式,使用内联汇编。

static __attribute__((always_inline)) void asm_exit() {
#ifdef __arm64__
    __asm__("mov X0, #0\n"
            "mov w16, #1\n"
            "svc #0x80\n"

            "mov x1, #0\n"
            "mov sp, x1\n"
            "mov x29, x1\n"
            "mov x30, x1\n"
            "ret");
#endif
}

具体细节看这里:https://github.com/jmpews/HookZzModules/tree/master/AntiDebugBypass

1 Like